devices/bsim3v32: single out duplicate `SourceSatCurrent' block

This commit is contained in:
dwarning 2013-05-16 22:22:51 +02:00 committed by rlar
parent 85b072f2bb
commit af0361d5b4
1 changed files with 22 additions and 0 deletions

View File

@ -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);