|
|
|
@ -170,12 +170,14 @@ BJTtemp(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
factlog = ratio1 * model->BJTenergyGap/vt + |
|
|
|
model->BJTtempExpIS*ratlog; |
|
|
|
if ((model->BJTtlev == 0) || (model->BJTtlev == 1)) { |
|
|
|
factor = exp(factlog); |
|
|
|
here->BJTtSatCur = model->BJTsatCur * factor; |
|
|
|
here->BJTtSubSatCur = model->BJTsubSatCur * factor; |
|
|
|
factor = exp(factlog); |
|
|
|
here->BJTtSatCur = model->BJTsatCur * factor; |
|
|
|
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)); |
|
|
|
here->BJTtSubSatCur = pow(model->BJTsubSatCur,(1+model->BJTtiss1*dt+model->BJTtiss2*dt*dt)); |
|
|
|
here->BJTtSatCur = pow(model->BJTsatCur,(1+model->BJTtis1*dt+model->BJTtis2*dt*dt)); |
|
|
|
if (model->BJTsubSatCurGiven) |
|
|
|
here->BJTtSubSatCur = pow(model->BJTsubSatCur,(1+model->BJTtiss1*dt+model->BJTtiss2*dt*dt)); |
|
|
|
} |
|
|
|
|
|
|
|
if (model->BJTintCollResistGiven) { |
|
|
|
@ -230,7 +232,7 @@ BJTtemp(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
(4e-4*(here->BJTtemp-REFTEMP)-gmanew); |
|
|
|
} else if (model->BJTtlevc == 1) { |
|
|
|
here->BJTtBEcap = model->BJTdepletionCapBE* |
|
|
|
(1+model->BJTcte*dt); |
|
|
|
(1+model->BJTcte*dt); |
|
|
|
here->BJTtBEpot = model->BJTpotentialBE - model->BJTtvje*dt; |
|
|
|
} |
|
|
|
if (model->BJTtlevc == 0) { |
|
|
|
@ -245,7 +247,7 @@ BJTtemp(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
(4e-4*(here->BJTtemp-REFTEMP)-gmanew); |
|
|
|
} else if (model->BJTtlevc == 1) { |
|
|
|
here->BJTtBCcap = model->BJTdepletionCapBC* |
|
|
|
(1+model->BJTctc*dt); |
|
|
|
(1+model->BJTctc*dt); |
|
|
|
here->BJTtBCpot = model->BJTpotentialBC - model->BJTtvjc*dt; |
|
|
|
} |
|
|
|
if (model->BJTtlevc == 0) { |
|
|
|
@ -260,7 +262,7 @@ BJTtemp(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
(4e-4*(here->BJTtemp-REFTEMP)-gmanew); |
|
|
|
} else if (model->BJTtlevc == 1) { |
|
|
|
here->BJTtSubcap = model->BJTcapSub* |
|
|
|
(1+model->BJTcts*dt); |
|
|
|
(1+model->BJTcts*dt); |
|
|
|
here->BJTtSubpot = model->BJTpotentialSubstrate - model->BJTtvjs*dt; |
|
|
|
} |
|
|
|
|
|
|
|
@ -274,12 +276,9 @@ BJTtemp(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
(1 - here->BJTtjunctionExpBC); |
|
|
|
here->BJTtVcrit = vt * |
|
|
|
log(vt / (CONSTroot2*here->BJTtSatCur*here->BJTarea)); |
|
|
|
if(model->BJTsubSatCurGiven) { |
|
|
|
if (model->BJTsubSatCurGiven) |
|
|
|
here->BJTtSubVcrit = vt * |
|
|
|
log(vt / (CONSTroot2*here->BJTtSubSatCur*here->BJTarea)); |
|
|
|
} else { |
|
|
|
here->BJTtSubVcrit = here->BJTtVcrit; |
|
|
|
} |
|
|
|
here->BJTtf2 = exp((1 + here->BJTtjunctionExpBE) * xfc); |
|
|
|
here->BJTtf3 = 1 - model->BJTdepletionCapCoeff * |
|
|
|
(1 + here->BJTtjunctionExpBE); |
|
|
|
|