re-introdeuce parameter phi Resulting temperature dependency of vto still not available

This commit is contained in:
Holger Vogt 2018-04-06 08:28:11 +02:00 committed by rlar
parent 070b448420
commit 0dc0aa06c4
3 changed files with 11 additions and 1 deletions

View File

@ -57,6 +57,7 @@ typedef struct sVDMOSinstance {
double VDMOSdtemp; /* operating temperature of the instance relative to circuit temperature*/
double VDMOStTransconductance; /* temperature corrected transconductance*/
double VDMOStPhi; /* temperature corrected Phi */
double VDMOStVto; /* temperature corrected Vto */
double VDMOStSatCur; /* temperature corrected saturation Cur. */
double VDMOStBulkPot; /* temperature corrected Bulk potential */

View File

@ -282,7 +282,7 @@ VDMOSdSetup(GENmodel *inModel, CKTcircuit *ckt)
phi = 0.6;
phi = here->VDMOStPhi;
cox = 0;/*FIXME: can we do disto without knowing the oxide thickness?*/
if (vgst <= -phi) {
lcapgb2=lcapgb3=lcapgs2=lcapgs3=lcapgd2=lcapgd3=0;

View File

@ -22,6 +22,7 @@ VDMOStemp(GENmodel *inModel, CKTcircuit *ckt)
double kt,kt1;
double arg1;
double ratio,ratio4;
double phio;
double pbfact1,pbfact;
double vt,vtnom;
/* loop through all the resistor models */
@ -43,6 +44,12 @@ VDMOStemp(GENmodel *inModel, CKTcircuit *ckt)
/* now model parameter preprocessing */
if (model->VDMOSphi <= 0.0) {
SPfrontEnd->IFerrorf(ERR_FATAL,
"%s: Phi is not positive.", model->VDMOSmodName);
return(E_BADPARM);
}
model->VDMOSoxideCapFactor = 0;
@ -80,6 +87,8 @@ VDMOStemp(GENmodel *inModel, CKTcircuit *ckt)
ratio4 = ratio * sqrt(ratio);
here->VDMOStTransconductance = model->VDMOStransconductance / ratio4;
phio = (model->VDMOSphi - pbfact1) / fact1;
here->VDMOStPhi = fact2 * phio + pbfact;
here->VDMOStVto = model->VDMOSvt0;
here->VDMOSCbd = 0;