diff --git a/src/spicelib/devices/dio/dioload.c b/src/spicelib/devices/dio/dioload.c index 6d7f0fc7f..586ca724e 100644 --- a/src/spicelib/devices/dio/dioload.c +++ b/src/spicelib/devices/dio/dioload.c @@ -60,7 +60,7 @@ DIOload(GENmodel *inModel, CKTcircuit *ckt) int Check_dio=0, Check_th; int error; int SenCond=0; /* sensitivity condition */ - double diffcharge, diffchargeSW, deplcharge, deplchargeSW, diffcap, diffcapSW, deplcap, deplcapSW; + double diffcharge, deplcharge, deplchargeSW, diffcap, deplcap, deplcapSW; double deldelTemp, delTemp, Temp; double ceqqth=0.0, Ith=0.0, gcTt=0.0, vrs=0.0; @@ -379,19 +379,19 @@ next1: if (vd >= -3*vte) { /* limit forward */ - if( (model->DIOforwardKneeCurrent > 0.0) && (cd > 1.0e-18) ) { + if( (model->DIOforwardKneeCurrentGiven) && (cd > 1.0e-18) ) { ikf_area_m = here->DIOforwardKneeCurrent; sqrt_ikf = sqrt(cd/ikf_area_m); gd = ((1+sqrt_ikf)*gd - cd*gd/(2*sqrt_ikf*ikf_area_m))/(1+2*sqrt_ikf + cd/ikf_area_m) + ckt->CKTgmin; cd = cd/(1+sqrt_ikf) + ckt->CKTgmin*vd; } else { - gd = gd + ckt->CKTgmin; - cd = cd + ckt->CKTgmin*vd; + gd = gd + ckt->CKTgmin; + cd = cd + ckt->CKTgmin*vd; } } else { /* limit reverse */ - if( (model->DIOreverseKneeCurrent > 0.0) && (cd < -1.0e-18) ) { + if( (model->DIOreverseKneeCurrentGiven) && (cd < -1.0e-18) ) { ikr_area_m = here->DIOreverseKneeCurrent; sqrt_ikr = sqrt(cd/(-ikr_area_m)); gd = ((1+sqrt_ikr)*gd + cd*gd/(2*sqrt_ikr*ikr_area_m))/(1+2*sqrt_ikr - cd/ikr_area_m) + ckt->CKTgmin; @@ -433,15 +433,13 @@ next1: deplcapSW = czof2SW*(here->DIOtF3SW+model->DIOgradingSWCoeff*vd/here->DIOtJctSWPot); } - diffcharge = here->DIOtTransitTime*cdb; - diffchargeSW = here->DIOtTransitTime*cdsw; + diffcharge = here->DIOtTransitTime*cd; *(ckt->CKTstate0 + here->DIOcapCharge) = - diffcharge + diffchargeSW + deplcharge + deplchargeSW; + diffcharge + deplcharge + deplchargeSW; - diffcap = here->DIOtTransitTime*gdb; - diffcapSW = here->DIOtTransitTime*gdsw; + diffcap = here->DIOtTransitTime*gd; - capd = diffcap + diffcapSW + deplcap + deplcapSW + here->DIOcmetal + here->DIOcpoly; + capd = diffcap + deplcap + deplcapSW + here->DIOcmetal + here->DIOcpoly; here->DIOcap = capd;