Browse Source

devices/bsim3v32: single out duplicate `SourceSatCurrent' block

pre-master-46
dwarning 13 years ago
committed by rlar
parent
commit
af0361d5b4
  1. 22
      src/spicelib/devices/bsim3v32/b3v32temp.c

22
src/spicelib/devices/bsim3v32/b3v32temp.c

@ -935,6 +935,7 @@ int Size_Not_Found;
+ here->BSIM3v32sourcePerimeter
* model->BSIM3v32jctSidewallTempSatCurDensity;
}
#if 0
if ((SourceSatCurrent > 0.0) && (model->BSIM3v32ijth > 0.0))
{ here->BSIM3v32vjsm = Nvtm * log(model->BSIM3v32ijth
/ SourceSatCurrent + 1.0);
@ -952,6 +953,7 @@ int Size_Not_Found;
break;
}
}
#endif
if ((here->BSIM3v32drainArea <= 0.0) &&
(here->BSIM3v32drainPerimeter <= 0.0))
@ -978,6 +980,7 @@ int Size_Not_Found;
}
SourceSatCurrent = SourceSatCurrent + here->BSIM3v32sourcePerimeter * model->BSIM3v32jctSidewallTempSatCurDensity;
if (SourceSatCurrent <= 0.0) SourceSatCurrent = 1.0e-14;
#if 0
if ((SourceSatCurrent > 0.0) && (model->BSIM3v32ijth > 0.0))
{ here->BSIM3v32vjsm = Nvtm * log(model->BSIM3v32ijth
/ SourceSatCurrent + 1.0);
@ -995,6 +998,7 @@ int Size_Not_Found;
break;
}
}
#endif
DrainSatCurrent = 0.0;
if (!here->BSIM3v32drainAreaGiven)
@ -1010,6 +1014,24 @@ int Size_Not_Found;
if (DrainSatCurrent <= 0.0) DrainSatCurrent = 1.0e-14;
}
if ((SourceSatCurrent > 0.0) && (model->BSIM3v32ijth > 0.0))
{ here->BSIM3v32vjsm = Nvtm * log(model->BSIM3v32ijth
/ SourceSatCurrent + 1.0);
/* Added revision dependent code */
switch (model->BSIM3v32intVersion) {
case BSIM3v32V324:
case BSIM3v32V323:
case BSIM3v32V322:
here->BSIM3v32IsEvjsm =
SourceSatCurrent * exp(here->BSIM3v32vjsm / Nvtm);
break;
case BSIM3v32V32:
default:
/* Do nothing */
break;
}
}
if ((DrainSatCurrent > 0.0) && (model->BSIM3v32ijth > 0.0))
{ here->BSIM3v32vjdm = Nvtm * log(model->BSIM3v32ijth
/ DrainSatCurrent + 1.0);

Loading…
Cancel
Save