VDMOS separate dc and thermal parts
This commit is contained in:
parent
659ade6cf2
commit
034f415621
|
|
@ -110,8 +110,6 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
else
|
||||
Check_th = 0;
|
||||
|
||||
vt = CONSTKoverQ * here->VDMOStemp;
|
||||
|
||||
/* first, we compute a few useful values - these could be
|
||||
* pre-computed, but for historical reasons are still done
|
||||
* here. They may be moved at the expense of instance size
|
||||
|
|
@ -142,7 +140,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
vds = 0.0;
|
||||
}
|
||||
} else if ((ckt->CKTmode & (MODEINITJCT | MODEINITFIX)) && (here->VDMOSoff)) {
|
||||
delTemp = vgs = vds = 0.0;
|
||||
vgs = vds = delTemp = 0.0;
|
||||
|
||||
/*
|
||||
* ok - now to do the start-up operations
|
||||
|
|
@ -307,7 +305,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
|
||||
}
|
||||
|
||||
Temp = delTemp + here->VDMOStemp;
|
||||
Temp = here->VDMOStemp + delTemp;
|
||||
here->VDMOSTempSH = Temp; /* added for portability of SH Temp for noise analysis */
|
||||
|
||||
/* Calculate temperature dependent values for self-heating effect */
|
||||
|
|
@ -594,21 +592,21 @@ bypass:
|
|||
xnrm = 1;
|
||||
xrev = 0;
|
||||
cdreq = model->VDMOStype*(cdrain - here->VDMOSgds*vds
|
||||
- here->VDMOSgm*vgs)
|
||||
- GmT * delTemp;
|
||||
- here->VDMOSgm*vgs);
|
||||
} else {
|
||||
xnrm = 0;
|
||||
xrev = 1;
|
||||
cdreq = -(model->VDMOStype)*(cdrain - here->VDMOSgds*(-vds)
|
||||
- here->VDMOSgm*vgd)
|
||||
- GmT * delTemp;
|
||||
- here->VDMOSgm*vgd);
|
||||
}
|
||||
|
||||
*(ckt->CKTrhs + here->VDMOSgNodePrime) -= (model->VDMOStype * (ceqgs + ceqgd));
|
||||
*(ckt->CKTrhs + here->VDMOSdNodePrime) += (-cdreq + model->VDMOStype * ceqgd);
|
||||
*(ckt->CKTrhs + here->VDMOSsNodePrime) += cdreq + model->VDMOStype * ceqgs;
|
||||
if (selfheat) {
|
||||
*(ckt->CKTrhs + here->VDMOStempNode) -= here->VDMOScth + ceqqth; /* dissipated power + Cthj current */
|
||||
*(ckt->CKTrhs + here->VDMOSdNodePrime) += GmT * delTemp;
|
||||
*(ckt->CKTrhs + here->VDMOSsNodePrime) += -GmT * delTemp;
|
||||
*(ckt->CKTrhs + here->VDMOStempNode) -= here->VDMOScth + ceqqth; /* MOS dissipated power + Cthj current */
|
||||
*(ckt->CKTrhs + here->VDMOSvcktTbranch) = ckt->CKTtemp-CONSTCtoK; /* ckt temperature */
|
||||
}
|
||||
|
||||
|
|
@ -686,6 +684,7 @@ bypass:
|
|||
gdb = 0.0;
|
||||
csat = here->VDIOtSatCur;
|
||||
gspr = here->VDIOtConductance;
|
||||
vt = CONSTKoverQ * Temp;
|
||||
vte = model->VDMOSn * vt;
|
||||
vtebrk = model->VDIObrkdEmissionCoeff * vt;
|
||||
vbrknp = here->VDIOtBrkdwnV;
|
||||
|
|
|
|||
Loading…
Reference in New Issue