VDMOS include body diode into power calculation

This commit is contained in:
dwarning 2020-04-01 16:42:57 +02:00 committed by Holger Vogt
parent 897165d026
commit b75791c87d
1 changed files with 13 additions and 10 deletions

View File

@ -157,23 +157,26 @@ VDMOSask(CKTcircuit *ckt, GENinstance *inst, int which, IFvalue *value,
strcpy(errMsg,msg);
return(E_ASKPOWER);
} else {
double temp;
value->rValue = fabs(here->VDMOScd *
(*(ckt->CKTrhsOld + here->VDMOSdNode) -
*(ckt->CKTrhsOld + here->VDMOSsNode)));
value->rValue = here->VDMOScd *
*(ckt->CKTrhsOld + here->VDMOSdNode);
if ((ckt->CKTcurrentAnalysis & DOING_TRAN) &&
!(ckt->CKTmode & MODETRANOP)) {
value->rValue += (*(ckt->CKTstate0 + here->VDMOScqgd) +
*(ckt->CKTstate0 + here->VDMOScqgs)) *
*(ckt->CKTrhsOld + here->VDMOSgNode);
value->rValue += fabs(*(ckt->CKTstate0 + here->VDMOScqgd) *
(*(ckt->CKTrhsOld + here->VDMOSgNode) -
*(ckt->CKTrhsOld + here->VDMOSdNode)));
}
temp = -here->VDMOScd;
if ((ckt->CKTcurrentAnalysis & DOING_TRAN) &&
!(ckt->CKTmode & MODETRANOP)) {
temp -= *(ckt->CKTstate0 + here->VDMOScqgd) +
*(ckt->CKTstate0 + here->VDMOScqgs);
value->rValue += fabs(*(ckt->CKTstate0 + here->VDMOScqgs) *
(*(ckt->CKTrhsOld + here->VDMOSgNode) -
*(ckt->CKTrhsOld + here->VDMOSsNode)));
}
value->rValue += temp * *(ckt->CKTrhsOld + here->VDMOSsNode);
value->rValue += fabs(*(ckt->CKTstate0 + here->VDIOcurrent) *
(*(ckt->CKTrhsOld + here->VDMOSdNode) -
*(ckt->CKTrhsOld + here->VDMOSsNode)));
}
return(OK);
default: