Browse Source

VDMOS include thermal components into convtest

pre-master-46
dwarning 6 years ago
committed by Holger Vogt
parent
commit
8c2bdd2f7a
  1. 17
      src/spicelib/devices/vdmos/vdmosconv.c

17
src/spicelib/devices/vdmos/vdmosconv.c

@ -23,6 +23,8 @@ VDMOSconvTest(GENmodel *inModel, CKTcircuit *ckt)
double vgd; double vgd;
double vgdo; double vgdo;
double tol; double tol;
int selfheat;
double delTemp, deldelTemp;
for( ; model != NULL; model = VDMOSnextModel(model)) { for( ; model != NULL; model = VDMOSnextModel(model)) {
for(here = VDMOSinstances(model); here!= NULL; for(here = VDMOSinstances(model); here!= NULL;
@ -41,18 +43,29 @@ VDMOSconvTest(GENmodel *inModel, CKTcircuit *ckt)
delvds = vds - *(ckt->CKTstate0 + here->VDMOSvds); delvds = vds - *(ckt->CKTstate0 + here->VDMOSvds);
delvgd = vgd-vgdo; delvgd = vgd-vgdo;
selfheat = (here->VDMOSthermalGiven) && (model->VDMOSrthjcGiven);
if (selfheat) {
delTemp = *(ckt->CKTrhs + here->VDMOStempNode);
deldelTemp = delTemp - *(ckt->CKTstate0 + here->VDMOSdelTemp);
} else {
delTemp = 0.0;
deldelTemp = 0.0;
}
/* these are needed for convergence testing */ /* these are needed for convergence testing */
if (here->VDMOSmode >= 0) { if (here->VDMOSmode >= 0) {
cdhat= cdhat=
here->VDMOScd - here->VDMOScd -
here->VDMOSgm * delvgs + here->VDMOSgm * delvgs +
here->VDMOSgds * delvds ;
here->VDMOSgds * delvds +
here->VDMOSgmT * deldelTemp;
} else { } else {
cdhat= cdhat=
here->VDMOScd - here->VDMOScd -
here->VDMOSgm * delvgd + here->VDMOSgm * delvgd +
here->VDMOSgds * delvds ;
here->VDMOSgds * delvds +
here->VDMOSgmT * deldelTemp;
} }
/* /*
* check convergence * check convergence

Loading…
Cancel
Save