|
|
|
@ -36,12 +36,16 @@ BJT2acLoad(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
double xcbx; |
|
|
|
double xcsub; |
|
|
|
double xcmcb; |
|
|
|
double m; |
|
|
|
|
|
|
|
for( ; model != NULL; model = model->BJT2nextModel) { |
|
|
|
for( here = model->BJT2instances; here!= NULL; |
|
|
|
here = here->BJT2nextInstance) { |
|
|
|
|
|
|
|
if (here->BJT2owner != ARCHme) continue; |
|
|
|
|
|
|
|
m = here->BJT2m; |
|
|
|
|
|
|
|
gcpr=here->BJT2tCollectorConduct * here->BJT2area; |
|
|
|
gepr=here->BJT2tEmitterConduct * here->BJT2area; |
|
|
|
gpi= *(ckt->CKTstate0 + here->BJT2gpi); |
|
|
|
@ -62,40 +66,40 @@ BJT2acLoad(GENmodel *inModel, CKTcircuit *ckt) |
|
|
|
xcbx= *(ckt->CKTstate0 + here->BJT2cqbx) * ckt->CKTomega; |
|
|
|
xcsub= *(ckt->CKTstate0 + here->BJT2cqsub) * ckt->CKTomega; |
|
|
|
xcmcb= *(ckt->CKTstate0 + here->BJT2cexbc) * ckt->CKTomega; |
|
|
|
*(here->BJT2colColPtr) += (gcpr); |
|
|
|
*(here->BJT2baseBasePtr) += (gx); |
|
|
|
*(here->BJT2baseBasePtr + 1) += (xcbx); |
|
|
|
*(here->BJT2emitEmitPtr) += (gepr); |
|
|
|
*(here->BJT2colPrimeColPrimePtr) += (gmu+go+gcpr); |
|
|
|
*(here->BJT2colPrimeColPrimePtr + 1) += (xcmu+xcbx); |
|
|
|
*(here->BJT2substConSubstConPtr + 1) += (xcsub); |
|
|
|
*(here->BJT2basePrimeBasePrimePtr) += (gx+gpi+gmu); |
|
|
|
*(here->BJT2basePrimeBasePrimePtr + 1) += (xcpi+xcmu+xcmcb); |
|
|
|
*(here->BJT2emitPrimeEmitPrimePtr) += (gpi+gepr+gm+go); |
|
|
|
*(here->BJT2emitPrimeEmitPrimePtr + 1) += (xcpi+xgm); |
|
|
|
*(here->BJT2colColPrimePtr) += (-gcpr); |
|
|
|
*(here->BJT2baseBasePrimePtr) += (-gx); |
|
|
|
*(here->BJT2emitEmitPrimePtr) += (-gepr); |
|
|
|
*(here->BJT2colPrimeColPtr) += (-gcpr); |
|
|
|
*(here->BJT2colPrimeBasePrimePtr) += (-gmu+gm); |
|
|
|
*(here->BJT2colPrimeBasePrimePtr + 1) += (-xcmu+xgm); |
|
|
|
*(here->BJT2colPrimeEmitPrimePtr) += (-gm-go); |
|
|
|
*(here->BJT2colPrimeEmitPrimePtr + 1) += (-xgm); |
|
|
|
*(here->BJT2basePrimeBasePtr) += (-gx); |
|
|
|
*(here->BJT2basePrimeColPrimePtr) += (-gmu); |
|
|
|
*(here->BJT2basePrimeColPrimePtr + 1) += (-xcmu-xcmcb); |
|
|
|
*(here->BJT2basePrimeEmitPrimePtr) += (-gpi); |
|
|
|
*(here->BJT2basePrimeEmitPrimePtr + 1) += (-xcpi); |
|
|
|
*(here->BJT2emitPrimeEmitPtr) += (-gepr); |
|
|
|
*(here->BJT2emitPrimeColPrimePtr) += (-go); |
|
|
|
*(here->BJT2emitPrimeColPrimePtr + 1) += (xcmcb); |
|
|
|
*(here->BJT2emitPrimeBasePrimePtr) += (-gpi-gm); |
|
|
|
*(here->BJT2emitPrimeBasePrimePtr + 1) += (-xcpi-xgm-xcmcb); |
|
|
|
*(here->BJT2substSubstPtr + 1) += (xcsub); |
|
|
|
*(here->BJT2substConSubstPtr + 1) += (-xcsub); |
|
|
|
*(here->BJT2substSubstConPtr + 1) += (-xcsub); |
|
|
|
*(here->BJT2baseColPrimePtr + 1) += (-xcbx); |
|
|
|
*(here->BJT2colPrimeBasePtr + 1) += (-xcbx); |
|
|
|
*(here->BJT2colColPtr) += m * (gcpr); |
|
|
|
*(here->BJT2baseBasePtr) += m * (gx); |
|
|
|
*(here->BJT2baseBasePtr + 1) += m * (xcbx); |
|
|
|
*(here->BJT2emitEmitPtr) += m * (gepr); |
|
|
|
*(here->BJT2colPrimeColPrimePtr) += m * (gmu+go+gcpr); |
|
|
|
*(here->BJT2colPrimeColPrimePtr + 1) += m * (xcmu+xcbx); |
|
|
|
*(here->BJT2substConSubstConPtr + 1) += m * (xcsub); |
|
|
|
*(here->BJT2basePrimeBasePrimePtr) += m * (gx+gpi+gmu); |
|
|
|
*(here->BJT2basePrimeBasePrimePtr + 1) += m * (xcpi+xcmu+xcmcb); |
|
|
|
*(here->BJT2emitPrimeEmitPrimePtr) += m * (gpi+gepr+gm+go); |
|
|
|
*(here->BJT2emitPrimeEmitPrimePtr + 1) += m * (xcpi+xgm); |
|
|
|
*(here->BJT2colColPrimePtr) += m * (-gcpr); |
|
|
|
*(here->BJT2baseBasePrimePtr) += m * (-gx); |
|
|
|
*(here->BJT2emitEmitPrimePtr) += m * (-gepr); |
|
|
|
*(here->BJT2colPrimeColPtr) += m * (-gcpr); |
|
|
|
*(here->BJT2colPrimeBasePrimePtr) += m * (-gmu+gm); |
|
|
|
*(here->BJT2colPrimeBasePrimePtr + 1) += m * (-xcmu+xgm); |
|
|
|
*(here->BJT2colPrimeEmitPrimePtr) += m * (-gm-go); |
|
|
|
*(here->BJT2colPrimeEmitPrimePtr + 1) += m * (-xgm); |
|
|
|
*(here->BJT2basePrimeBasePtr) += m * (-gx); |
|
|
|
*(here->BJT2basePrimeColPrimePtr) += m * (-gmu); |
|
|
|
*(here->BJT2basePrimeColPrimePtr + 1) += m * (-xcmu-xcmcb); |
|
|
|
*(here->BJT2basePrimeEmitPrimePtr) += m * (-gpi); |
|
|
|
*(here->BJT2basePrimeEmitPrimePtr + 1) += m * (-xcpi); |
|
|
|
*(here->BJT2emitPrimeEmitPtr) += m * (-gepr); |
|
|
|
*(here->BJT2emitPrimeColPrimePtr) += m * (-go); |
|
|
|
*(here->BJT2emitPrimeColPrimePtr + 1) += m * (xcmcb); |
|
|
|
*(here->BJT2emitPrimeBasePrimePtr) += m * (-gpi-gm); |
|
|
|
*(here->BJT2emitPrimeBasePrimePtr + 1) += m * (-xcpi-xgm-xcmcb); |
|
|
|
*(here->BJT2substSubstPtr + 1) += m * (xcsub); |
|
|
|
*(here->BJT2substConSubstPtr + 1) += m * (-xcsub); |
|
|
|
*(here->BJT2substSubstConPtr + 1) += m * (-xcsub); |
|
|
|
*(here->BJT2baseColPrimePtr + 1) += m * (-xcbx); |
|
|
|
*(here->BJT2colPrimeBasePtr + 1) += m * (-xcbx); |
|
|
|
} |
|
|
|
} |
|
|
|
return(OK); |
|
|
|
|