|
|
@ -63,14 +63,14 @@ double vgs_eff, vgd_eff, dvgs_eff_dvg, dvgd_eff_dvg; |
|
|
double dRs_dvg, dRd_dvg, dRs_dvb, dRd_dvb; |
|
|
double dRs_dvg, dRd_dvg, dRs_dvb, dRd_dvb; |
|
|
double dT0_dvg, dT1_dvb, dT3_dvg, dT3_dvb; |
|
|
double dT0_dvg, dT1_dvb, dT3_dvg, dT3_dvb; |
|
|
double vses, vdes, vdedo, delvses, delvded, delvdes; |
|
|
double vses, vdes, vdedo, delvses, delvded, delvdes; |
|
|
double Isestot, cseshat, Idedtot, cdedhat; |
|
|
|
|
|
|
|
|
double Isestot=0.0, cseshat=0.0, Idedtot=0.0, cdedhat=0.0; |
|
|
double tol0, tol1, tol2, tol3, tol4, tol5, tol6; |
|
|
double tol0, tol1, tol2, tol3, tol4, tol5, tol6; |
|
|
|
|
|
|
|
|
double geltd, gcrg, gcrgg, gcrgd, gcrgs, gcrgb, ceqgcrg; |
|
|
double geltd, gcrg, gcrgg, gcrgd, gcrgs, gcrgb, ceqgcrg; |
|
|
double vges, vgms, vgedo, vgmdo, vged, vgmd, delvged, delvgmd; |
|
|
double vges, vgms, vgedo, vgmdo, vged, vgmd, delvged, delvgmd; |
|
|
double delvges, delvgms, vgmb; |
|
|
double delvges, delvgms, vgmb; |
|
|
double gcgmgmb, gcgmdb, gcgmsb, gcdgmb, gcsgmb; |
|
|
|
|
|
double gcgmbb, gcbgmb, qgmb, qgmid, ceqqgmid; |
|
|
|
|
|
|
|
|
double gcgmgmb=0.0, gcgmdb=0.0, gcgmsb=0.0, gcdgmb, gcsgmb; |
|
|
|
|
|
double gcgmbb=0.0, gcbgmb, qgmb, qgmid=0.0, ceqqgmid; |
|
|
|
|
|
|
|
|
double vbd, vbs, vds, vgb, vgd, vgs, vgdo, xfact; |
|
|
double vbd, vbs, vds, vgb, vgd, vgs, vgdo, xfact; |
|
|
double vdbs, vdbd, vsbs, vsbdo, vsbd; |
|
|
double vdbs, vdbd, vsbs, vsbdo, vsbd; |
|
|
@ -78,9 +78,9 @@ double delvdbs, delvdbd, delvsbs; |
|
|
double delvbd_jct, delvbs_jct, vbs_jct, vbd_jct; |
|
|
double delvbd_jct, delvbs_jct, vbs_jct, vbd_jct; |
|
|
|
|
|
|
|
|
double SourceSatCurrent, DrainSatCurrent; |
|
|
double SourceSatCurrent, DrainSatCurrent; |
|
|
double ag0, qgb, von, cbhat, VgstNVt, ExpVgst; |
|
|
|
|
|
double ceqqb, ceqqd, ceqqg, ceqqjd, ceqqjs, ceq, geq; |
|
|
|
|
|
double cdrain, cdhat, ceqdrn, ceqbd, ceqbs, ceqjd, ceqjs, gjbd, gjbs; |
|
|
|
|
|
|
|
|
double ag0, qgb, von, cbhat=0.0, VgstNVt, ExpVgst; |
|
|
|
|
|
double ceqqb, ceqqd, ceqqg, ceqqjd=0.0, ceqqjs=0.0, ceq, geq; |
|
|
|
|
|
double cdrain, cdhat=0.0, ceqdrn, ceqbd, ceqbs, ceqjd, ceqjs, gjbd, gjbs; |
|
|
double czbd, czbdsw, czbdswg, czbs, czbssw, czbsswg, evbd, evbs, arg, sarg; |
|
|
double czbd, czbdsw, czbdswg, czbs, czbssw, czbsswg, evbd, evbs, arg, sarg; |
|
|
double delvbd, delvbs, delvds, delvgd, delvgs; |
|
|
double delvbd, delvbs, delvds, delvgd, delvgs; |
|
|
double Vfbeff, dVfbeff_dVg, dVfbeff_dVb, V3, V4; |
|
|
double Vfbeff, dVfbeff_dVg, dVfbeff_dVb, V3, V4; |
|
|
@ -88,11 +88,11 @@ double gcbdb, gcbgb, gcbsb, gcddb, gcdgb, gcdsb, gcgdb, gcggb, gcgsb, gcsdb; |
|
|
double gcgbb, gcdbb, gcsbb, gcbbb; |
|
|
double gcgbb, gcdbb, gcsbb, gcbbb; |
|
|
double gcdbdb, gcsbsb; |
|
|
double gcdbdb, gcsbsb; |
|
|
double gcsgb, gcssb, MJD, MJSWD, MJSWGD, MJS, MJSWS, MJSWGS; |
|
|
double gcsgb, gcssb, MJD, MJSWD, MJSWGD, MJS, MJSWS, MJSWGS; |
|
|
double qgate, qbulk, qdrn, qsrc, cqgate, cqbody, cqdrn; |
|
|
|
|
|
|
|
|
double qgate=0.0, qbulk=0.0, qdrn=0.0, qsrc, cqgate, cqbody, cqdrn; |
|
|
double Vdb, Vds, Vgs, Vbs, Gmbs, FwdSum, RevSum; |
|
|
double Vdb, Vds, Vgs, Vbs, Gmbs, FwdSum, RevSum; |
|
|
double Igidl, Ggidld, Ggidlg, Ggidlb; |
|
|
double Igidl, Ggidld, Ggidlg, Ggidlb; |
|
|
double Voxacc, dVoxacc_dVg, dVoxacc_dVb; |
|
|
|
|
|
double Voxdepinv, dVoxdepinv_dVg, dVoxdepinv_dVd, dVoxdepinv_dVb; |
|
|
|
|
|
|
|
|
double Voxacc=0.0, dVoxacc_dVg=0.0, dVoxacc_dVb=0.0; |
|
|
|
|
|
double Voxdepinv=0.0, dVoxdepinv_dVg=0.0, dVoxdepinv_dVd=0.0, dVoxdepinv_dVb=0.0; |
|
|
double VxNVt, ExpVxNVt, Vaux, dVaux_dVg, dVaux_dVd, dVaux_dVb; |
|
|
double VxNVt, ExpVxNVt, Vaux, dVaux_dVg, dVaux_dVd, dVaux_dVb; |
|
|
double Igc, dIgc_dVg, dIgc_dVd, dIgc_dVb; |
|
|
double Igc, dIgc_dVg, dIgc_dVd, dIgc_dVb; |
|
|
double Igcs, dIgcs_dVg, dIgcs_dVd, dIgcs_dVb; |
|
|
double Igcs, dIgcs_dVg, dIgcs_dVd, dIgcs_dVb; |
|
|
@ -105,8 +105,8 @@ double Istoteq, gIstotg, gIstotd, gIstots, gIstotb; |
|
|
double Idtoteq, gIdtotg, gIdtotd, gIdtots, gIdtotb; |
|
|
double Idtoteq, gIdtotg, gIdtotd, gIdtots, gIdtotb; |
|
|
double Ibtoteq, gIbtotg, gIbtotd, gIbtots, gIbtotb; |
|
|
double Ibtoteq, gIbtotg, gIbtotd, gIbtots, gIbtotb; |
|
|
double Igtoteq, gIgtotg, gIgtotd, gIgtots, gIgtotb; |
|
|
double Igtoteq, gIgtotg, gIgtotd, gIgtots, gIgtotb; |
|
|
double Igstot, cgshat, Igdtot, cgdhat, Igbtot, cgbhat; |
|
|
|
|
|
double Vgs_eff, Vfb, Vth_NarrowW; |
|
|
|
|
|
|
|
|
double Igstot=0.0, cgshat=0.0, Igdtot=0.0, cgdhat=0.0, Igbtot=0.0, cgbhat=0.0; |
|
|
|
|
|
double Vgs_eff, Vfb=0.0, Vth_NarrowW; |
|
|
double Phis, dPhis_dVb, sqrtPhis, dsqrtPhis_dVb, Vth, dVth_dVb, dVth_dVd; |
|
|
double Phis, dPhis_dVb, sqrtPhis, dsqrtPhis_dVb, Vth, dVth_dVb, dVth_dVd; |
|
|
double Vgst, dVgst_dVg, dVgst_dVb, dVgs_eff_dVg, Nvtms, Nvtmd; |
|
|
double Vgst, dVgst_dVg, dVgst_dVb, dVgs_eff_dVg, Nvtms, Nvtmd; |
|
|
double Vtm; |
|
|
double Vtm; |
|
|
@ -123,13 +123,13 @@ double dVdsat_dVg, dVdsat_dVb, dVdsat_dVd, Vasat, dAlphaz_dVg, dAlphaz_dVb; |
|
|
double dVasat_dVg, dVasat_dVb, dVasat_dVd, Va, dVa_dVd, dVa_dVg, dVa_dVb; |
|
|
double dVasat_dVg, dVasat_dVb, dVasat_dVd, Va, dVa_dVd, dVa_dVg, dVa_dVb; |
|
|
double Vbseff, dVbseff_dVb, VbseffCV, dVbseffCV_dVb; |
|
|
double Vbseff, dVbseff_dVb, VbseffCV, dVbseffCV_dVb; |
|
|
double Arg1, One_Third_CoxWL, Two_Third_CoxWL, Alphaz, CoxWL; |
|
|
double Arg1, One_Third_CoxWL, Two_Third_CoxWL, Alphaz, CoxWL; |
|
|
double T0, dT0_dVg, dT0_dVd, dT0_dVb; |
|
|
|
|
|
|
|
|
double T0=0.0, dT0_dVg, dT0_dVd, dT0_dVb; |
|
|
double T1, dT1_dVg, dT1_dVd, dT1_dVb; |
|
|
double T1, dT1_dVg, dT1_dVd, dT1_dVb; |
|
|
double T2, dT2_dVg, dT2_dVd, dT2_dVb; |
|
|
double T2, dT2_dVg, dT2_dVd, dT2_dVb; |
|
|
double T3, dT3_dVg, dT3_dVd, dT3_dVb; |
|
|
double T3, dT3_dVg, dT3_dVd, dT3_dVb; |
|
|
double T4, dT4_dVd, dT4_dVb; |
|
|
double T4, dT4_dVd, dT4_dVb; |
|
|
double T5, dT5_dVg, dT5_dVd, dT5_dVb; |
|
|
double T5, dT5_dVg, dT5_dVd, dT5_dVb; |
|
|
double T6, dT6_dVg, dT6_dVd, dT6_dVb; |
|
|
|
|
|
|
|
|
double T6=0.0, dT6_dVg, dT6_dVd, dT6_dVb; |
|
|
double T7, dT7_dVg, dT7_dVd, dT7_dVb; |
|
|
double T7, dT7_dVg, dT7_dVd, dT7_dVb; |
|
|
double T8, dT8_dVg, dT8_dVd, dT8_dVb; |
|
|
double T8, dT8_dVg, dT8_dVd, dT8_dVb; |
|
|
double T9, dT9_dVg, dT9_dVd, dT9_dVb; |
|
|
double T9, dT9_dVg, dT9_dVd, dT9_dVb; |
|
|
@ -166,8 +166,8 @@ double Rds, dRds_dVg, dRds_dVb, WVCox, WVCoxRds; |
|
|
double Vgst2Vtm, VdsatCV; |
|
|
double Vgst2Vtm, VdsatCV; |
|
|
double Leff, Weff, dWeff_dVg, dWeff_dVb; |
|
|
double Leff, Weff, dWeff_dVg, dWeff_dVb; |
|
|
double AbulkCV, dAbulkCV_dVb; |
|
|
double AbulkCV, dAbulkCV_dVb; |
|
|
double qcheq, qdef, gqdef, cqdef, cqcheq; |
|
|
|
|
|
double gcqdb, gcqsb, gcqgb, gcqbb; |
|
|
|
|
|
|
|
|
double qcheq=0.0, qdef, gqdef=0.0, cqdef=0.0, cqcheq=0.0; |
|
|
|
|
|
double gcqdb=0.0, gcqsb=0.0, gcqgb=0.0, gcqbb=0.0; |
|
|
double dxpart, sxpart, ggtg, ggtd, ggts, ggtb; |
|
|
double dxpart, sxpart, ggtg, ggtd, ggts, ggtb; |
|
|
double ddxpart_dVd, ddxpart_dVg, ddxpart_dVb, ddxpart_dVs; |
|
|
double ddxpart_dVd, ddxpart_dVg, ddxpart_dVb, ddxpart_dVs; |
|
|
double dsxpart_dVd, dsxpart_dVg, dsxpart_dVb, dsxpart_dVs; |
|
|
double dsxpart_dVd, dsxpart_dVg, dsxpart_dVb, dsxpart_dVs; |
|
|
|