re-introdeuce parameter phi Resulting temperature dependency of vto still not available
This commit is contained in:
parent
070b448420
commit
0dc0aa06c4
|
|
@ -57,6 +57,7 @@ typedef struct sVDMOSinstance {
|
||||||
double VDMOSdtemp; /* operating temperature of the instance relative to circuit temperature*/
|
double VDMOSdtemp; /* operating temperature of the instance relative to circuit temperature*/
|
||||||
|
|
||||||
double VDMOStTransconductance; /* temperature corrected transconductance*/
|
double VDMOStTransconductance; /* temperature corrected transconductance*/
|
||||||
|
double VDMOStPhi; /* temperature corrected Phi */
|
||||||
double VDMOStVto; /* temperature corrected Vto */
|
double VDMOStVto; /* temperature corrected Vto */
|
||||||
double VDMOStSatCur; /* temperature corrected saturation Cur. */
|
double VDMOStSatCur; /* temperature corrected saturation Cur. */
|
||||||
double VDMOStBulkPot; /* temperature corrected Bulk potential */
|
double VDMOStBulkPot; /* temperature corrected Bulk potential */
|
||||||
|
|
|
||||||
|
|
@ -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?*/
|
cox = 0;/*FIXME: can we do disto without knowing the oxide thickness?*/
|
||||||
if (vgst <= -phi) {
|
if (vgst <= -phi) {
|
||||||
lcapgb2=lcapgb3=lcapgs2=lcapgs3=lcapgd2=lcapgd3=0;
|
lcapgb2=lcapgb3=lcapgs2=lcapgs3=lcapgd2=lcapgd3=0;
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ VDMOStemp(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
double kt,kt1;
|
double kt,kt1;
|
||||||
double arg1;
|
double arg1;
|
||||||
double ratio,ratio4;
|
double ratio,ratio4;
|
||||||
|
double phio;
|
||||||
double pbfact1,pbfact;
|
double pbfact1,pbfact;
|
||||||
double vt,vtnom;
|
double vt,vtnom;
|
||||||
/* loop through all the resistor models */
|
/* loop through all the resistor models */
|
||||||
|
|
@ -43,6 +44,12 @@ VDMOStemp(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
|
|
||||||
/* now model parameter preprocessing */
|
/* 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;
|
model->VDMOSoxideCapFactor = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -80,6 +87,8 @@ VDMOStemp(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
|
|
||||||
ratio4 = ratio * sqrt(ratio);
|
ratio4 = ratio * sqrt(ratio);
|
||||||
here->VDMOStTransconductance = model->VDMOStransconductance / ratio4;
|
here->VDMOStTransconductance = model->VDMOStransconductance / ratio4;
|
||||||
|
phio = (model->VDMOSphi - pbfact1) / fact1;
|
||||||
|
here->VDMOStPhi = fact2 * phio + pbfact;
|
||||||
here->VDMOStVto = model->VDMOSvt0;
|
here->VDMOStVto = model->VDMOSvt0;
|
||||||
|
|
||||||
here->VDMOSCbd = 0;
|
here->VDMOSCbd = 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue