From 11a3711d86f8a09c4361ab16e84fd180d3b192b1 Mon Sep 17 00:00:00 2001 From: dwarning Date: Thu, 13 Jun 2024 18:02:18 +0200 Subject: [PATCH] revert commit ea4c438 and db85dead by removing VJ and M limiting --- src/spicelib/devices/dio/diotemp.c | 31 ------------------------------ 1 file changed, 31 deletions(-) diff --git a/src/spicelib/devices/dio/diotemp.c b/src/spicelib/devices/dio/diotemp.c index f2e3d0bd3..697e9d1d6 100644 --- a/src/spicelib/devices/dio/diotemp.c +++ b/src/spicelib/devices/dio/diotemp.c @@ -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){