|
|
|
@ -194,7 +194,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
here->VDMOSgbd * delvbd + |
|
|
|
here->VDMOSgbs * delvbs; |
|
|
|
/* |
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
#ifndef NOBYPASS |
|
|
|
@ -258,7 +258,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
#endif /*NOBYPASS*/ |
|
|
|
|
|
|
|
/* |
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
/* ok - bypass is out, do it the hard way */ |
|
|
|
@ -301,7 +301,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
} |
|
|
|
#endif /*NODELIMITING*/ |
|
|
|
/* |
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
} |
|
|
|
@ -330,7 +330,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
} |
|
|
|
} |
|
|
|
/* |
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
/* |
|
|
|
@ -377,7 +377,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
here->VDMOSmode = -1; |
|
|
|
} |
|
|
|
/* |
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
{ |
|
|
|
@ -414,7 +414,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
* saturation region |
|
|
|
*/ |
|
|
|
betap = Beta*(1 + model->VDMOSlambda*(vds*here->VDMOSmode)); |
|
|
|
if (vgst <= (vds*here->VDMOSmode)) { |
|
|
|
if (vgst <= (vds * here->VDMOSmode)) { |
|
|
|
cdrain = betap*vgst*vgst*.5; |
|
|
|
here->VDMOSgm = betap*vgst; |
|
|
|
here->VDMOSgds = model->VDMOSlambda*Beta*vgst*vgst*.5; |
|
|
|
@ -424,14 +424,14 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
/* |
|
|
|
* linear region |
|
|
|
*/ |
|
|
|
cdrain = betap*(vds*here->VDMOSmode)* |
|
|
|
(vgst - .5*(vds*here->VDMOSmode)); |
|
|
|
here->VDMOSgm = betap*(vds*here->VDMOSmode); |
|
|
|
here->VDMOSgds = betap*(vgst - (vds*here->VDMOSmode)) + |
|
|
|
model->VDMOSlambda*Beta* |
|
|
|
(vds*here->VDMOSmode)* |
|
|
|
(vgst - .5*(vds*here->VDMOSmode)); |
|
|
|
here->VDMOSgmbs = here->VDMOSgm*arg; |
|
|
|
cdrain = betap * (vds * here->VDMOSmode) * |
|
|
|
(vgst - .5 * (vds * here->VDMOSmode)); |
|
|
|
here->VDMOSgm = betap * (vds * here->VDMOSmode); |
|
|
|
here->VDMOSgds = betap * (vgst - (vds * here->VDMOSmode)) + |
|
|
|
model->VDMOSlambda * Beta * |
|
|
|
(vds * here->VDMOSmode) * |
|
|
|
(vgst - .5 * (vds * here->VDMOSmode)); |
|
|
|
here->VDMOSgmbs = here->VDMOSgm * arg; |
|
|
|
} |
|
|
|
} |
|
|
|
/* |
|
|
|
@ -439,7 +439,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
*/ |
|
|
|
} |
|
|
|
/* |
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
/* now deal with n vs p polarity */ |
|
|
|
@ -462,7 +462,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
*(ckt->CKTstate0 + here->VDMOSqbd) = 0; |
|
|
|
here->VDMOScapbd = 0; |
|
|
|
/* |
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
} |
|
|
|
@ -477,7 +477,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
*(ckt->CKTstate0 + here->VDMOSvds) = vds; |
|
|
|
|
|
|
|
/* |
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
/* |
|
|
|
@ -517,7 +517,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
*(ckt->CKTstate1 + here->VDMOScapgb)); |
|
|
|
} |
|
|
|
/* |
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
#ifndef PREDICTOR |
|
|
|
@ -553,7 +553,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
#endif /*PREDICTOR*/ |
|
|
|
} |
|
|
|
#ifndef NOBYPASS |
|
|
|
bypass : |
|
|
|
bypass : |
|
|
|
#endif |
|
|
|
|
|
|
|
if ((ckt->CKTmode & (MODEINITTRAN)) || |
|
|
|
|