correct some scaling rules
This commit is contained in:
parent
f638a63fba
commit
550e9f1a81
|
|
@ -154,40 +154,51 @@ BJTtemp(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
if ((model->BJTtlev == 0) || (model->BJTtlev == 1)) {
|
if ((model->BJTtlev == 0) || (model->BJTtlev == 1)) {
|
||||||
factor = exp(factlog);
|
factor = exp(factlog);
|
||||||
here->BJTtSatCur = here->BJTarea * model->BJTsatCur * factor;
|
here->BJTtSatCur = here->BJTarea * model->BJTsatCur * factor;
|
||||||
if (model->BJTBEsatCurGiven) {
|
if ((model->BJTBEsatCurGiven) && (model->BJTBCsatCurGiven)) {
|
||||||
factor = exp(factlog / model->BJTemissionCoeffF);
|
factor = exp(factlog / model->BJTemissionCoeffF);
|
||||||
here->BJTBEtSatCur = here->BJTarea * model->BJTBEsatCur * factor;
|
here->BJTBEtSatCur = here->BJTarea * model->BJTBEsatCur * factor;
|
||||||
} else {
|
} else {
|
||||||
here->BJTBEtSatCur = here->BJTtSatCur;
|
here->BJTBEtSatCur = here->BJTtSatCur;
|
||||||
}
|
}
|
||||||
if (model->BJTBCsatCurGiven) {
|
if ((model->BJTBEsatCurGiven) && (model->BJTBCsatCurGiven)) {
|
||||||
factor = exp(factlog / model->BJTemissionCoeffR);
|
factor = exp(factlog / model->BJTemissionCoeffR);
|
||||||
here->BJTBCtSatCur = model->BJTBCsatCur * factor;
|
here->BJTBCtSatCur = model->BJTBCsatCur * factor;
|
||||||
} else {
|
} else {
|
||||||
here->BJTBCtSatCur = here->BJTtSatCur;
|
here->BJTBCtSatCur = here->BJTtSatCur;
|
||||||
}
|
}
|
||||||
if (model->BJTsubSatCurGiven)
|
if (model->BJTsubSatCurGiven)
|
||||||
here->BJTtSubSatCur = here->BJTarea * model->BJTsubSatCur * factor;
|
here->BJTtSubSatCur = model->BJTsubSatCur * factor;
|
||||||
} else if (model->BJTtlev == 3) {
|
} else if (model->BJTtlev == 3) {
|
||||||
here->BJTtSatCur = here->BJTarea * pow(model->BJTsatCur,(1+model->BJTtis1*dt+model->BJTtis2*dt*dt));
|
here->BJTtSatCur = here->BJTarea * pow(model->BJTsatCur,(1+model->BJTtis1*dt+model->BJTtis2*dt*dt));
|
||||||
if (model->BJTBEsatCurGiven) {
|
if ((model->BJTBEsatCurGiven) && (model->BJTBCsatCurGiven)) {
|
||||||
here->BJTBEtSatCur = here->BJTarea * pow(model->BJTBEsatCur,(1+model->BJTtis1*dt+model->BJTtis2*dt*dt));
|
here->BJTBEtSatCur = here->BJTarea * pow(model->BJTBEsatCur,(1+model->BJTtis1*dt+model->BJTtis2*dt*dt));
|
||||||
} else {
|
} else {
|
||||||
here->BJTBEtSatCur = here->BJTtSatCur;
|
here->BJTBEtSatCur = here->BJTtSatCur;
|
||||||
}
|
}
|
||||||
if (model->BJTBCsatCurGiven) {
|
if ((model->BJTBEsatCurGiven) && (model->BJTBCsatCurGiven)) {
|
||||||
here->BJTBCtSatCur = pow(model->BJTBCsatCur,(1+model->BJTtis1*dt+model->BJTtis2*dt*dt));
|
here->BJTBCtSatCur = pow(model->BJTBCsatCur,(1+model->BJTtis1*dt+model->BJTtis2*dt*dt));
|
||||||
} else {
|
} else {
|
||||||
here->BJTBCtSatCur = here->BJTtSatCur;
|
here->BJTBCtSatCur = here->BJTtSatCur;
|
||||||
}
|
}
|
||||||
if (model->BJTsubSatCurGiven)
|
if (model->BJTsubSatCurGiven)
|
||||||
here->BJTtSubSatCur = here->BJTarea * pow(model->BJTsubSatCur,(1+model->BJTtiss1*dt+model->BJTtiss2*dt*dt));
|
here->BJTtSubSatCur = pow(model->BJTsubSatCur,(1+model->BJTtiss1*dt+model->BJTtiss2*dt*dt));
|
||||||
}
|
}
|
||||||
if (model->BJTsubs == VERTICAL) {
|
if (model->BJTsubs == VERTICAL) {
|
||||||
here->BJTBCtSatCur *= here->BJTareab;
|
here->BJTBCtSatCur *= here->BJTareab;
|
||||||
} else {
|
} else {
|
||||||
here->BJTBCtSatCur *= here->BJTareac;
|
here->BJTBCtSatCur *= here->BJTareac;
|
||||||
}
|
}
|
||||||
|
if (model->BJTsubSatCurGiven) {
|
||||||
|
if ((model->BJTBEsatCurGiven) && (model->BJTBCsatCurGiven)) {
|
||||||
|
if (model->BJTsubs == VERTICAL) {
|
||||||
|
here->BJTtSubSatCur *= here->BJTareac;
|
||||||
|
} else {
|
||||||
|
here->BJTtSubSatCur *= here->BJTareab;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
here->BJTtSubSatCur *= here->BJTarea;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (model->BJTintCollResistGiven) {
|
if (model->BJTintCollResistGiven) {
|
||||||
if (model->BJTquasimod == 1) {
|
if (model->BJTquasimod == 1) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue