parent
dd6089c4fc
commit
11a3711d86
|
|
@ -33,12 +33,8 @@ void DIOtempUpdate(DIOmodel *inModel, DIOinstance *here, double Temp, CKTcircuit
|
|||
double egfet1,arg1,fact1,pbfact1,pbo,gmaold,pboSW,gmaSWold;
|
||||
double fact2,pbfact,arg,egfet,gmanew,gmaSWnew;
|
||||
double arg1_dT, arg2, arg2_dT;
|
||||
double gclimit;
|
||||
double lnTRatio, egfet_dT, arg0, vte_dT, vts_dT, vtt_dT, vtr_dT;
|
||||
|
||||
if (!cp_getvar("DIOgradingCoeffMax", CP_REAL, &gclimit, 0))
|
||||
gclimit = 0.9;
|
||||
|
||||
vt = CONSTKoverQ * Temp;
|
||||
vte = model->DIOemissionCoeff * vt;
|
||||
vte_dT = CONSTKoverQ * model->DIOemissionCoeff;
|
||||
|
|
@ -57,16 +53,6 @@ void DIOtempUpdate(DIOmodel *inModel, DIOinstance *here, double Temp, CKTcircuit
|
|||
+ (model->DIOgradCoeffTemp2 * dt * dt);
|
||||
here->DIOtGradingCoeff = model->DIOgradingCoeff * factor;
|
||||
|
||||
/* limit temperature adjusted grading coeff
|
||||
* to max of .9, or set new limit with variable DIOgradingCoeffMax
|
||||
*/
|
||||
if(here->DIOtGradingCoeff>gclimit) {
|
||||
SPfrontEnd->IFerrorf (ERR_WARNING,
|
||||
"%s: temperature adjusted grading coefficient too large, limited to %g",
|
||||
here->DIOname, gclimit);
|
||||
here->DIOtGradingCoeff=gclimit;
|
||||
}
|
||||
|
||||
/* this part gets really ugly - I won't even try to
|
||||
* explain these equations */
|
||||
if ((model->DIOtlev == 0) || (model->DIOtlev == 1)) {
|
||||
|
|
@ -212,23 +198,6 @@ void DIOtempUpdate(DIOmodel *inModel, DIOinstance *here, double Temp, CKTcircuit
|
|||
/* and Vcrit */
|
||||
here->DIOtVcrit = vte * log(vte/(CONSTroot2*here->DIOtSatCur));
|
||||
|
||||
/* limit junction potential to max of 1/FC */
|
||||
if(here->DIOtDepCap > 1.0) {
|
||||
here->DIOtJctPot=1.0/model->DIOdepletionCapCoeff;
|
||||
here->DIOtDepCap=model->DIOdepletionCapCoeff*here->DIOtJctPot;
|
||||
SPfrontEnd->IFerrorf (ERR_WARNING,
|
||||
"%s: junction potential VJ too large, limited to %f",
|
||||
model->DIOmodName, here->DIOtJctPot);
|
||||
}
|
||||
/* limit sidewall junction potential to max of 1/FCS */
|
||||
if(here->DIOtDepSWCap > 1.0) {
|
||||
here->DIOtJctSWPot=1.0/model->DIOdepletionSWcapCoeff;
|
||||
here->DIOtDepSWCap=model->DIOdepletionSWcapCoeff*here->DIOtJctSWPot;
|
||||
SPfrontEnd->IFerrorf (ERR_WARNING,
|
||||
"%s: junction potential VJS too large, limited to %f",
|
||||
model->DIOmodName, here->DIOtJctSWPot);
|
||||
}
|
||||
|
||||
/* and now to compute the breakdown voltage, again, using
|
||||
* temperature adjusted basic parameters */
|
||||
if (model->DIObreakdownVoltageGiven){
|
||||
|
|
|
|||
Loading…
Reference in New Issue