diff --git a/src/spicelib/devices/bsim3v32/b3v32temp.c b/src/spicelib/devices/bsim3v32/b3v32temp.c index d8fb780e1..4f69250f9 100644 --- a/src/spicelib/devices/bsim3v32/b3v32temp.c +++ b/src/spicelib/devices/bsim3v32/b3v32temp.c @@ -963,6 +963,7 @@ int Size_Not_Found; + here->BSIM3v32drainPerimeter * model->BSIM3v32jctSidewallTempSatCurDensity; } +#if 0 if ((DrainSatCurrent > 0.0) && (model->BSIM3v32ijth > 0.0)) { here->BSIM3v32vjdm = Nvtm * log(model->BSIM3v32ijth / DrainSatCurrent + 1.0); @@ -980,6 +981,7 @@ int Size_Not_Found; break; } } +#endif } else { @@ -1025,6 +1027,7 @@ int Size_Not_Found; } DrainSatCurrent = DrainSatCurrent + here->BSIM3v32drainPerimeter * model->BSIM3v32jctSidewallTempSatCurDensity; if (DrainSatCurrent <= 0.0) DrainSatCurrent = 1.0e-14; +#if 0 if ((DrainSatCurrent > 0.0) && (model->BSIM3v32ijth > 0.0)) { here->BSIM3v32vjdm = Nvtm * log(model->BSIM3v32ijth / DrainSatCurrent + 1.0); @@ -1042,7 +1045,27 @@ int Size_Not_Found; break; } } +#endif } + + if ((DrainSatCurrent > 0.0) && (model->BSIM3v32ijth > 0.0)) + { here->BSIM3v32vjdm = Nvtm * log(model->BSIM3v32ijth + / DrainSatCurrent + 1.0); + /* Added revision dependent code */ + switch (model->BSIM3v32intVersion) { + case BSIM3v32V324: + case BSIM3v32V323: + case BSIM3v32V322: + here->BSIM3v32IsEvjdm = + DrainSatCurrent * exp(here->BSIM3v32vjdm / Nvtm); + break; + case BSIM3v32V32: + default: + /* Do nothing */ + break; + } + } + } } return(OK);