devices/bsim3v32: reposition DrainSatCurrent block
This commit is contained in:
parent
05a9a8931d
commit
959ee9cfbb
|
|
@ -351,6 +351,15 @@ for (; model != NULL; model = model->BSIM3v32nextModel)
|
|||
+ here->BSIM3v32sourcePerimeter
|
||||
* model->BSIM3v32jctSidewallTempSatCurDensity;
|
||||
}
|
||||
if ((here->BSIM3v32drainArea <= 0.0) && (here->BSIM3v32drainPerimeter <= 0.0))
|
||||
{ DrainSatCurrent = 1.0e-14;
|
||||
}
|
||||
else
|
||||
{ DrainSatCurrent = here->BSIM3v32drainArea
|
||||
* model->BSIM3v32jctTempSatCurDensity
|
||||
+ here->BSIM3v32drainPerimeter
|
||||
* model->BSIM3v32jctSidewallTempSatCurDensity;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -366,6 +375,18 @@ for (; model != NULL; model = model->BSIM3v32nextModel)
|
|||
}
|
||||
SourceSatCurrent = SourceSatCurrent + here->BSIM3v32sourcePerimeter * model->BSIM3v32jctSidewallTempSatCurDensity;
|
||||
if (SourceSatCurrent <= 0.0) SourceSatCurrent = 1.0e-14;
|
||||
DrainSatCurrent = 0.0;
|
||||
if (!here->BSIM3v32drainAreaGiven)
|
||||
{
|
||||
here->BSIM3v32drainArea = 2.0 * model->BSIM3v32hdif * pParam->BSIM3v32weff;
|
||||
}
|
||||
DrainSatCurrent = here->BSIM3v32drainArea * model->BSIM3v32jctTempSatCurDensity;
|
||||
if (!here->BSIM3v32drainPerimeterGiven)
|
||||
{
|
||||
here->BSIM3v32drainPerimeter = 4.0 * model->BSIM3v32hdif + 2.0 * pParam->BSIM3v32weff;
|
||||
}
|
||||
DrainSatCurrent = DrainSatCurrent + here->BSIM3v32drainPerimeter * model->BSIM3v32jctSidewallTempSatCurDensity;
|
||||
if (DrainSatCurrent <= 0.0) DrainSatCurrent = 1.0e-14;
|
||||
}
|
||||
if (SourceSatCurrent <= 0.0)
|
||||
{ here->BSIM3v32gbs = ckt->CKTgmin;
|
||||
|
|
@ -408,34 +429,6 @@ for (; model != NULL; model = model->BSIM3v32nextModel)
|
|||
}
|
||||
}
|
||||
|
||||
/* acm model */
|
||||
if (model->BSIM3v32acmMod == 0)
|
||||
{
|
||||
if ((here->BSIM3v32drainArea <= 0.0) && (here->BSIM3v32drainPerimeter <= 0.0))
|
||||
{ DrainSatCurrent = 1.0e-14;
|
||||
}
|
||||
else
|
||||
{ DrainSatCurrent = here->BSIM3v32drainArea
|
||||
* model->BSIM3v32jctTempSatCurDensity
|
||||
+ here->BSIM3v32drainPerimeter
|
||||
* model->BSIM3v32jctSidewallTempSatCurDensity;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DrainSatCurrent = 0.0;
|
||||
if (!here->BSIM3v32drainAreaGiven)
|
||||
{
|
||||
here->BSIM3v32drainArea = 2.0 * model->BSIM3v32hdif * pParam->BSIM3v32weff;
|
||||
}
|
||||
DrainSatCurrent = here->BSIM3v32drainArea * model->BSIM3v32jctTempSatCurDensity;
|
||||
if (!here->BSIM3v32drainPerimeterGiven)
|
||||
{
|
||||
here->BSIM3v32drainPerimeter = 4.0 * model->BSIM3v32hdif + 2.0 * pParam->BSIM3v32weff;
|
||||
}
|
||||
DrainSatCurrent = DrainSatCurrent + here->BSIM3v32drainPerimeter * model->BSIM3v32jctSidewallTempSatCurDensity;
|
||||
if (DrainSatCurrent <= 0.0) DrainSatCurrent = 1.0e-14;
|
||||
}
|
||||
if (DrainSatCurrent <= 0.0)
|
||||
{ here->BSIM3v32gbd = ckt->CKTgmin;
|
||||
here->BSIM3v32cbd = here->BSIM3v32gbd * vbd;
|
||||
|
|
|
|||
Loading…
Reference in New Issue