VDMOS: apply m scaling fix for acld as well
This commit is contained in:
parent
2bc63e71ae
commit
6bd5c2d03b
|
|
@ -133,19 +133,22 @@ VDMOSacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
*(here->VDIORPdPtr +1) -= xceq;
|
*(here->VDIORPdPtr +1) -= xceq;
|
||||||
if (selfheat)
|
if (selfheat)
|
||||||
{
|
{
|
||||||
*(here->VDMOSDPtempPtr) += GmT;
|
// Everything is computed for m parallel instances... so scale gthjc and gthja accordingly
|
||||||
|
double gthjc = here->VDMOSm / model->VDMOSrthjc;
|
||||||
|
double gthca = here->VDMOSm / model->VDMOSrthca;
|
||||||
|
*(here->VDMOSDPtempPtr) += GmT;
|
||||||
*(here->VDMOSSPtempPtr) += -GmT;
|
*(here->VDMOSSPtempPtr) += -GmT;
|
||||||
|
|
||||||
*(here->VDMOSTemptempPtr) += gTtt + 1/model->VDMOSrthjc;
|
*(here->VDMOSTemptempPtr) += gTtt + gthjc;
|
||||||
*(here->VDMOSTempgpPtr) += gTtg;
|
*(here->VDMOSTempgpPtr) += gTtg;
|
||||||
*(here->VDMOSTempdpPtr) += gTtdp;
|
*(here->VDMOSTempdpPtr) += gTtdp;
|
||||||
*(here->VDMOSTempspPtr) += gTtsp;
|
*(here->VDMOSTempspPtr) += gTtsp;
|
||||||
*(here->VDMOSTemptcasePtr) += -1/model->VDMOSrthjc;
|
*(here->VDMOSTemptcasePtr) += -gthjc;
|
||||||
*(here->VDMOSTcasetempPtr) += -1/model->VDMOSrthjc;
|
*(here->VDMOSTcasetempPtr) += -gthjc;
|
||||||
*(here->VDMOSTcasetcasePtr) += 1/model->VDMOSrthjc + 1/model->VDMOSrthca;
|
*(here->VDMOSTcasetcasePtr) += gthjc + gthca;
|
||||||
*(here->VDMOSTptpPtr) += 1/model->VDMOSrthca;
|
*(here->VDMOSTptpPtr) += gthca;
|
||||||
*(here->VDMOSTptcasePtr) += -1/model->VDMOSrthca;
|
*(here->VDMOSTptcasePtr) += -gthca;
|
||||||
*(here->VDMOSTcasetpPtr) += -1/model->VDMOSrthca;
|
*(here->VDMOSTcasetpPtr) += -gthca;
|
||||||
*(here->VDMOSCktTtpPtr) += 1.0;
|
*(here->VDMOSCktTtpPtr) += 1.0;
|
||||||
*(here->VDMOSTpcktTPtr) += 1.0;
|
*(here->VDMOSTpcktTPtr) += 1.0;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -67,16 +67,17 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
|
|
||||||
/* loop through all the VDMOS device models */
|
/* loop through all the VDMOS device models */
|
||||||
for (; model != NULL; model = VDMOSnextModel(model)) {
|
for (; model != NULL; model = VDMOSnextModel(model)) {
|
||||||
/* VDMOS capacitance parameters */
|
|
||||||
const double cgdmin = model->VDMOScgdmin;
|
|
||||||
const double cgdmax = model->VDMOScgdmax;
|
|
||||||
const double a = model->VDMOSa;
|
|
||||||
const double cgs = model->VDMOScgs;
|
|
||||||
|
|
||||||
/* loop through all the instances of the model */
|
/* loop through all the instances of the model */
|
||||||
for (here = VDMOSinstances(model); here != NULL;
|
for (here = VDMOSinstances(model); here != NULL;
|
||||||
here = VDMOSnextInstance(here)) {
|
here = VDMOSnextInstance(here)) {
|
||||||
|
|
||||||
|
/* VDMOS capacitance parameters */
|
||||||
|
const double cgdmin = here->VDMOSm * model->VDMOScgdmin;
|
||||||
|
const double cgdmax = here->VDMOSm * model->VDMOScgdmax;
|
||||||
|
const double a = model->VDMOSa;
|
||||||
|
const double cgs = here->VDMOSm * model->VDMOScgs;
|
||||||
|
|
||||||
Temp = here->VDMOStemp;
|
Temp = here->VDMOStemp;
|
||||||
selfheat = (here->VDMOSthermal) && (model->VDMOSrthjcGiven);
|
selfheat = (here->VDMOSthermal) && (model->VDMOSrthjcGiven);
|
||||||
if (selfheat)
|
if (selfheat)
|
||||||
|
|
@ -462,8 +463,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
* you must add in the other half from previous time
|
* you must add in the other half from previous time
|
||||||
* and the constant part
|
* and the constant part
|
||||||
*/
|
*/
|
||||||
// Everything is computed for m parallel instances... scale ggdmin, cgdmax, and cgs accordingly
|
DevCapVDMOS(vgd, cgdmin, cgdmax, a, cgs,
|
||||||
DevCapVDMOS(vgd, here->VDMOSm*cgdmin, here->VDMOSm*cgdmax, a, here->VDMOSm*cgs,
|
|
||||||
(ckt->CKTstate0 + here->VDMOScapgs),
|
(ckt->CKTstate0 + here->VDMOScapgs),
|
||||||
(ckt->CKTstate0 + here->VDMOScapgd));
|
(ckt->CKTstate0 + here->VDMOScapgd));
|
||||||
// Everything is computed for m parallel instances... so scale cthj accordingly
|
// Everything is computed for m parallel instances... so scale cthj accordingly
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue