Browse Source

correct temp update for IBE and IBC parameter

pre-master-46
dwarning 5 years ago
committed by Holger Vogt
parent
commit
b15c7d29f1
  1. 8
      src/spicelib/devices/bjt/bjtsetup.c
  2. 14
      src/spicelib/devices/bjt/bjttemp.c

8
src/spicelib/devices/bjt/bjtsetup.c

@ -47,11 +47,11 @@ BJTsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
if(!model->BJTsatCurGiven) {
model->BJTsatCur = 1e-16;
}
if(!model->BJTBEsatCurGiven) {
model->BJTBEsatCur = model->BJTsatCur;
if(!model->BJTBEsatCurGiven) { /* temp update will decide of IS usage */
model->BJTBEsatCur = 0.0;
}
if(!model->BJTBCsatCurGiven) {
model->BJTBCsatCur = model->BJTsatCur;
if(!model->BJTBCsatCurGiven) { /* temp update will decide of IS usage */
model->BJTBCsatCur = 0.0;
}
if(!model->BJTbetaFGiven) {
model->BJTbetaF = 100;

14
src/spicelib/devices/bjt/bjttemp.c

@ -149,15 +149,29 @@ BJTtemp(GENmodel *inModel, CKTcircuit *ckt)
if (model->BJTBEsatCurGiven) {
factor = exp(factlog / model->BJTemissionCoeffF);
here->BJTBEtSatCur = model->BJTBEsatCur * factor;
} else {
here->BJTBEtSatCur = here->BJTtSatCur;
}
if (model->BJTBCsatCurGiven) {
factor = exp(factlog / model->BJTemissionCoeffR);
here->BJTBCtSatCur = model->BJTBCsatCur * factor;
} else {
here->BJTBCtSatCur = here->BJTtSatCur;
}
if (model->BJTsubSatCurGiven)
here->BJTtSubSatCur = model->BJTsubSatCur * factor;
} else if (model->BJTtlev == 3) {
here->BJTtSatCur = pow(model->BJTsatCur,(1+model->BJTtis1*dt+model->BJTtis2*dt*dt));
if (model->BJTBEsatCurGiven) {
here->BJTBEtSatCur = pow(model->BJTBEsatCur,(1+model->BJTtis1*dt+model->BJTtis2*dt*dt));
} else {
here->BJTBEtSatCur = here->BJTtSatCur;
}
if (model->BJTBCsatCurGiven) {
here->BJTBCtSatCur = pow(model->BJTBCsatCur,(1+model->BJTtis1*dt+model->BJTtis2*dt*dt));
} else {
here->BJTBCtSatCur = here->BJTtSatCur;
}
if (model->BJTsubSatCurGiven)
here->BJTtSubSatCur = pow(model->BJTsubSatCur,(1+model->BJTtiss1*dt+model->BJTtiss2*dt*dt));
}

Loading…
Cancel
Save