|
|
|
@ -29,14 +29,14 @@ BJTpzLoad(GENmodel *inModel, CKTcircuit *ckt, SPcomplex *s) |
|
|
|
double xcpi; |
|
|
|
double xcmu; |
|
|
|
double xcbx; |
|
|
|
double xccs; |
|
|
|
double xcsub; |
|
|
|
double xcmcb; |
|
|
|
double m; |
|
|
|
|
|
|
|
for( ; model != NULL; model = model->BJTnextModel) { |
|
|
|
for( here = model->BJTinstances; here!= NULL; |
|
|
|
for( here = model->BJTinstances; here!= NULL; |
|
|
|
here = here->BJTnextInstance) { |
|
|
|
if (here->BJTowner != ARCHme) continue; |
|
|
|
if (here->BJTowner != ARCHme) continue; |
|
|
|
|
|
|
|
m = here->BJTm; |
|
|
|
|
|
|
|
@ -51,61 +51,39 @@ BJTpzLoad(GENmodel *inModel, CKTcircuit *ckt, SPcomplex *s) |
|
|
|
xcpi= *(ckt->CKTstate0 + here->BJTcqbe); |
|
|
|
xcmu= *(ckt->CKTstate0 + here->BJTcqbc); |
|
|
|
xcbx= *(ckt->CKTstate0 + here->BJTcqbx); |
|
|
|
xccs= *(ckt->CKTstate0 + here->BJTcqcs); |
|
|
|
xcsub= *(ckt->CKTstate0 + here->BJTcqsub); |
|
|
|
xcmcb= *(ckt->CKTstate0 + here->BJTcexbc); |
|
|
|
|
|
|
|
*(here->BJTcolColPtr) += m * (gcpr); |
|
|
|
|
|
|
|
*(here->BJTcolColPtr) += m * (gcpr); |
|
|
|
*(here->BJTbaseBasePtr) += m * ((gx) + (xcbx) * (s->real)); |
|
|
|
*(here->BJTbaseBasePtr + 1) += m * ((xcbx) * (s->imag)); |
|
|
|
*(here->BJTemitEmitPtr) += m * (gepr); |
|
|
|
*(here->BJTcolPrimeColPrimePtr) += m * ((gmu+go+gcpr) |
|
|
|
+ (xcmu+xccs+xcbx) * (s->real)); |
|
|
|
*(here->BJTcolPrimeColPrimePtr + 1) += m * ((xcmu+xccs+xcbx) |
|
|
|
* (s->imag)); |
|
|
|
*(here->BJTbasePrimeBasePrimePtr) += m * ((gx+gpi+gmu) |
|
|
|
+ (xcpi+xcmu+xcmcb) * (s->real)); |
|
|
|
*(here->BJTbasePrimeBasePrimePtr + 1) += m * ((xcpi+xcmu+xcmcb) |
|
|
|
* (s->imag)); |
|
|
|
*(here->BJTemitPrimeEmitPrimePtr) += m * ((gpi+gepr+gm+go) |
|
|
|
+ (xcpi+xgm) * (s->real)); |
|
|
|
*(here->BJTemitPrimeEmitPrimePtr + 1) += m * ((xcpi+xgm) |
|
|
|
* (s->imag)); |
|
|
|
*(here->BJTbaseBasePtr + 1) += m * ((xcbx) * (s->imag)); |
|
|
|
*(here->BJTemitEmitPtr) += m * (gepr); |
|
|
|
*(here->BJTcolPrimeColPrimePtr) += m * ((gmu+go+gcpr) + (xcmu+xcsub+xcbx) * (s->real)); |
|
|
|
*(here->BJTcolPrimeColPrimePtr + 1) += m * ((xcmu+xcsub+xcbx) * (s->imag)); |
|
|
|
*(here->BJTbasePrimeBasePrimePtr) += m * ((gx+gpi+gmu) + (xcpi+xcmu+xcmcb) * (s->real)); |
|
|
|
*(here->BJTbasePrimeBasePrimePtr + 1) += m * ((xcpi+xcmu+xcmcb) * (s->imag)); |
|
|
|
*(here->BJTemitPrimeEmitPrimePtr) += m * ((gpi+gepr+gm+go) + (xcpi+xgm) * (s->real)); |
|
|
|
*(here->BJTemitPrimeEmitPrimePtr + 1) += m * ((xcpi+xgm) * (s->imag)); |
|
|
|
*(here->BJTcolColPrimePtr) += m * (-gcpr); |
|
|
|
*(here->BJTbaseBasePrimePtr) += m * (-gx); |
|
|
|
*(here->BJTemitEmitPrimePtr) += m * (-gepr); |
|
|
|
*(here->BJTcolPrimeColPtr) += m * (-gcpr); |
|
|
|
*(here->BJTcolPrimeBasePrimePtr) += m * ((-gmu+gm) |
|
|
|
+ (-xcmu+xgm) * (s->real)); |
|
|
|
*(here->BJTcolPrimeBasePrimePtr + 1) += m * ((-xcmu+xgm) |
|
|
|
* (s->imag)); |
|
|
|
*(here->BJTcolPrimeEmitPrimePtr) += m * ((-gm-go) |
|
|
|
+ (-xgm) * (s->real)); |
|
|
|
*(here->BJTcolPrimeEmitPrimePtr + 1) += m * ((-xgm) * |
|
|
|
(s->imag)); |
|
|
|
*(here->BJTcolPrimeBasePrimePtr) += m * ((-gmu+gm) + (-xcmu+xgm) * (s->real)); |
|
|
|
*(here->BJTcolPrimeBasePrimePtr + 1) += m * ((-xcmu+xgm) * (s->imag)); |
|
|
|
*(here->BJTcolPrimeEmitPrimePtr) += m * ((-gm-go) + (-xgm) * (s->real)); |
|
|
|
*(here->BJTcolPrimeEmitPrimePtr + 1) += m * ((-xgm) * (s->imag)); |
|
|
|
*(here->BJTbasePrimeBasePtr) += m * (-gx); |
|
|
|
*(here->BJTbasePrimeColPrimePtr) += m * ((-gmu) |
|
|
|
+ (-xcmu-xcmcb) * (s->real)); |
|
|
|
*(here->BJTbasePrimeColPrimePtr + 1) += m * ((-xcmu-xcmcb) |
|
|
|
* (s->imag)); |
|
|
|
*(here->BJTbasePrimeEmitPrimePtr) += m * ((-gpi) |
|
|
|
+ (-xcpi) * (s->real)); |
|
|
|
*(here->BJTbasePrimeEmitPrimePtr + 1) += m * ((-xcpi) |
|
|
|
* (s->imag)); |
|
|
|
*(here->BJTbasePrimeColPrimePtr) += m * ((-gmu) + (-xcmu-xcmcb) * (s->real)); |
|
|
|
*(here->BJTbasePrimeColPrimePtr + 1) += m * ((-xcmu-xcmcb) * (s->imag)); |
|
|
|
*(here->BJTbasePrimeEmitPrimePtr) += m * ((-gpi) + (-xcpi) * (s->real)); |
|
|
|
*(here->BJTbasePrimeEmitPrimePtr + 1) += m * ((-xcpi) * (s->imag)); |
|
|
|
*(here->BJTemitPrimeEmitPtr) += m * (-gepr); |
|
|
|
*(here->BJTemitPrimeColPrimePtr) += m * ((-go) |
|
|
|
+ (xcmcb) * (s->real)); |
|
|
|
*(here->BJTemitPrimeColPrimePtr + 1) += m * ((xcmcb) |
|
|
|
* (s->imag)); |
|
|
|
*(here->BJTemitPrimeBasePrimePtr) += m * ((-gpi-gm) |
|
|
|
+ (-xcpi-xgm-xcmcb) * (s->real)); |
|
|
|
*(here->BJTemitPrimeBasePrimePtr + 1) += m * ((-xcpi-xgm-xcmcb) |
|
|
|
* (s->imag)); |
|
|
|
*(here->BJTsubstSubstPtr) += m * ((xccs) * (s->real)); |
|
|
|
*(here->BJTsubstSubstPtr + 1) += m * ((xccs) * (s->imag)); |
|
|
|
*(here->BJTcolPrimeSubstPtr) += m * ((-xccs) * (s->real)); |
|
|
|
*(here->BJTcolPrimeSubstPtr + 1) += m * ((-xccs) * (s->imag)); |
|
|
|
*(here->BJTsubstColPrimePtr) += m * ((-xccs) * (s->real)); |
|
|
|
*(here->BJTsubstColPrimePtr + 1) += m * ((-xccs) * (s->imag)); |
|
|
|
*(here->BJTemitPrimeColPrimePtr) += m * ((-go) + (xcmcb) * (s->real)); |
|
|
|
*(here->BJTemitPrimeColPrimePtr + 1) += m * ((xcmcb) * (s->imag)); |
|
|
|
*(here->BJTemitPrimeBasePrimePtr) += m * ((-gpi-gm) + (-xcpi-xgm-xcmcb) * (s->real)); |
|
|
|
*(here->BJTemitPrimeBasePrimePtr + 1) += m * ((-xcpi-xgm-xcmcb) * (s->imag)); |
|
|
|
*(here->BJTsubstSubstPtr) += m * ((xcsub) * (s->real)); |
|
|
|
*(here->BJTsubstSubstPtr + 1) += m * ((xcsub) * (s->imag)); |
|
|
|
*(here->BJTbaseColPrimePtr) += m * ((-xcbx) * (s->real)); |
|
|
|
*(here->BJTbaseColPrimePtr + 1) += m * ((-xcbx) * (s->imag)); |
|
|
|
*(here->BJTcolPrimeBasePtr) += m * ((-xcbx) * (s->real)); |
|
|
|
|