no message
This commit is contained in:
parent
34644f9671
commit
0a14caeb11
|
|
@ -33,17 +33,17 @@ BJTacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
|||
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;
|
||||
|
||||
|
||||
gcpr=here->BJTtcollectorConduct * here->BJTarea;
|
||||
gepr=here->BJTtemitterConduct * here->BJTarea;
|
||||
gpi= *(ckt->CKTstate0 + here->BJTgpi);
|
||||
|
|
@ -62,14 +62,15 @@ BJTacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
|||
xcpi= *(ckt->CKTstate0 + here->BJTcqbe) * ckt->CKTomega;
|
||||
xcmu= *(ckt->CKTstate0 + here->BJTcqbc) * ckt->CKTomega;
|
||||
xcbx= *(ckt->CKTstate0 + here->BJTcqbx) * ckt->CKTomega;
|
||||
xccs= *(ckt->CKTstate0 + here->BJTcqcs) * ckt->CKTomega;
|
||||
xcsub= *(ckt->CKTstate0 + here->BJTcqsub) * ckt->CKTomega;
|
||||
xcmcb= *(ckt->CKTstate0 + here->BJTcexbc) * ckt->CKTomega;
|
||||
*(here->BJTcolColPtr) += m * (gcpr);
|
||||
*(here->BJTbaseBasePtr) += m * (gx);
|
||||
*(here->BJTbaseBasePtr + 1) += m * (xcbx);
|
||||
*(here->BJTemitEmitPtr) += m * (gepr);
|
||||
*(here->BJTcolPrimeColPrimePtr) += m * (gmu+go+gcpr);
|
||||
*(here->BJTcolPrimeColPrimePtr + 1) += m * (xcmu+xccs+xcbx);
|
||||
*(here->BJTcolPrimeColPrimePtr + 1) += m * (xcmu+xcbx);
|
||||
*(here->BJTsubstConSubstConPtr + 1) += m * (xcsub);
|
||||
*(here->BJTbasePrimeBasePrimePtr) += m * (gx+gpi+gmu);
|
||||
*(here->BJTbasePrimeBasePrimePtr + 1) += m * (xcpi+xcmu+xcmcb);
|
||||
*(here->BJTemitPrimeEmitPrimePtr) += m * (gpi+gepr+gm+go);
|
||||
|
|
@ -89,12 +90,12 @@ BJTacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
|||
*(here->BJTbasePrimeEmitPrimePtr + 1) += m * (-xcpi);
|
||||
*(here->BJTemitPrimeEmitPtr) += m * (-gepr);
|
||||
*(here->BJTemitPrimeColPrimePtr) += m * (-go);
|
||||
*(here->BJTemitPrimeColPrimePtr + 1) += m * (xcmcb);
|
||||
*(here->BJTemitPrimeColPrimePtr + 1) += m * (xcmcb);
|
||||
*(here->BJTemitPrimeBasePrimePtr) += m * (-gpi-gm);
|
||||
*(here->BJTemitPrimeBasePrimePtr + 1) += m * (-xcpi-xgm-xcmcb);
|
||||
*(here->BJTsubstSubstPtr + 1) += m * (xccs);
|
||||
*(here->BJTcolPrimeSubstPtr + 1) += m * (-xccs);
|
||||
*(here->BJTsubstColPrimePtr + 1) += m * (-xccs);
|
||||
*(here->BJTsubstSubstPtr + 1) += m * (xcsub);
|
||||
*(here->BJTsubstConSubstPtr + 1) += m * (-xcsub);
|
||||
*(here->BJTsubstSubstConPtr + 1) += m * (-xcsub);
|
||||
*(here->BJTbaseColPrimePtr + 1) += m * (-xcbx);
|
||||
*(here->BJTcolPrimeBasePtr + 1) += m * (-xcbx);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,21 +23,21 @@ BJTdisto(int mode, GENmodel *genmodel, CKTcircuit *ckt)
|
|||
DISTOAN* job = (DISTOAN*) ckt->CKTcurJob;
|
||||
double td;
|
||||
DpassStr pass;
|
||||
double r1h1x = 0, i1h1x = 0;
|
||||
double r1h1y = 0, i1h1y = 0;
|
||||
double r1h1z = 0, i1h1z = 0;
|
||||
double r1h2x = 0, i1h2x = 0;
|
||||
double r1h2y = 0, i1h2y = 0;
|
||||
double r1h2z = 0, i1h2z = 0;
|
||||
double r1hm2x = 0, i1hm2x = 0;
|
||||
double r1hm2y = 0, i1hm2y = 0;
|
||||
double r1hm2z = 0, i1hm2z = 0;
|
||||
double r2h11x = 0, i2h11x = 0;
|
||||
double r2h11y = 0, i2h11y = 0;
|
||||
double r2h11z = 0, i2h11z = 0;
|
||||
double r2h1m2x = 0, i2h1m2x = 0;
|
||||
double r2h1m2y = 0, i2h1m2y = 0;
|
||||
double r2h1m2z = 0, i2h1m2z = 0;
|
||||
double r1h1x = 0.0, i1h1x = 0.0;
|
||||
double r1h1y = 0.0, i1h1y = 0.0;
|
||||
double r1h1z = 0.0, i1h1z = 0.0;
|
||||
double r1h2x = 0.0, i1h2x = 0.0;
|
||||
double r1h2y = 0.0, i1h2y = 0.0;
|
||||
double r1h2z = 0.0, i1h2z = 0.0;
|
||||
double r1hm2x = 0.0, i1hm2x = 0.0;
|
||||
double r1hm2y = 0.0, i1hm2y = 0.0;
|
||||
double r1hm2z = 0.0, i1hm2z = 0.0;
|
||||
double r2h11x = 0.0, i2h11x = 0.0;
|
||||
double r2h11y = 0.0, i2h11y = 0.0;
|
||||
double r2h11z = 0.0, i2h11z = 0.0;
|
||||
double r2h1m2x = 0.0, i2h1m2x = 0.0;
|
||||
double r2h1m2y = 0.0, i2h1m2y = 0.0;
|
||||
double r2h1m2z = 0.0, i2h1m2z = 0.0;
|
||||
double temp, itemp;
|
||||
BJTinstance *here;
|
||||
#ifdef DISTODEBUG
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
|
|||
double ss;
|
||||
double sxpbe;
|
||||
double sxpbc;
|
||||
double sxpcs;
|
||||
double sxpsub;
|
||||
double sxpbx;
|
||||
double dummy1;
|
||||
double dummy2;
|
||||
|
|
@ -52,7 +52,7 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
|
|||
|
||||
sxpbe = 0;
|
||||
sxpbc = 0;
|
||||
sxpcs = 0;
|
||||
sxpsub = 0;
|
||||
sxpbx = 0;
|
||||
#ifdef SENSDEBUG
|
||||
printf("senupdate Instance name: %s\n",here->BJTname);
|
||||
|
|
@ -61,7 +61,7 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
|
|||
|
||||
printf("capbe = %.7e\n",here->BJTcapbe);
|
||||
printf("capbc = %.7e\n",here->BJTcapbc);
|
||||
printf("capcs = %.7e\n",here->BJTcapcs);
|
||||
printf("capsub = %.7e\n",here->BJTcapsub);
|
||||
printf("capbx = %.7e\n",here->BJTcapbx);
|
||||
#endif /* SENSDEBUG */
|
||||
|
||||
|
|
@ -81,13 +81,13 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
|
|||
|
||||
sxpbc = model ->BJTtype * (sbprm - scprm)*here->BJTcapbc ;
|
||||
|
||||
sxpcs = model ->BJTtype * (ss - scprm)*here->BJTcapcs ;
|
||||
sxpsub = model ->BJTtype * (ss - scprm)*here->BJTcapsub ;
|
||||
|
||||
sxpbx = model ->BJTtype * (sb - scprm)*here->BJTcapbx ;
|
||||
if(iparmno == here->BJTsenParmNo){
|
||||
sxpbe += *(here->BJTdphibedp);
|
||||
sxpbc += *(here->BJTdphibcdp);
|
||||
sxpcs += *(here->BJTdphicsdp);
|
||||
sxpsub += *(here->BJTdphisubdp);
|
||||
sxpbx += *(here->BJTdphibxdp);
|
||||
}
|
||||
|
||||
|
|
@ -100,10 +100,10 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
|
|||
sxpbc;
|
||||
NIintegrate(ckt,&dummy1,&dummy2,here->BJTcapbc,
|
||||
here->BJTsensxpbc + 8*(iparmno -1));
|
||||
*(ckt->CKTstate0 + here->BJTsensxpcs + 8 * (iparmno - 1)) =
|
||||
sxpcs;
|
||||
NIintegrate(ckt,&dummy1,&dummy2,here->BJTcapcs,
|
||||
here->BJTsensxpcs + 8*(iparmno -1));
|
||||
*(ckt->CKTstate0 + here->BJTsensxpsub + 8 * (iparmno - 1)) =
|
||||
sxpsub;
|
||||
NIintegrate(ckt,&dummy1,&dummy2,here->BJTcapsub,
|
||||
here->BJTsensxpsub + 8*(iparmno -1));
|
||||
*(ckt->CKTstate0 + here->BJTsensxpbx + 8 * (iparmno - 1)) =
|
||||
sxpbx;
|
||||
NIintegrate(ckt,&dummy1,&dummy2,here->BJTcapbx,
|
||||
|
|
@ -117,8 +117,8 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
|
|||
printf("sxpbc = %.7e,sdotxpbc = %.7e\n",
|
||||
sxpbc,*(ckt->CKTstate0 + here->BJTsensxpbc + 8 *
|
||||
(iparmno - 1) + 1));
|
||||
printf("sxpcs = %.7e,sdotxpsc = %.7e\n",
|
||||
sxpcs,*(ckt->CKTstate0 + here->BJTsensxpcs + 8 *
|
||||
printf("sxpsub = %.7e,sdotxpsc = %.7e\n",
|
||||
sxpsub,*(ckt->CKTstate0 + here->BJTsensxpsub + 8 *
|
||||
(iparmno - 1) + 1));
|
||||
printf("sxpbx = %.7e,sdotxpbx = %.7e\n",
|
||||
sxpbx,*(ckt->CKTstate0 + here->BJTsensxpbx + 8 *
|
||||
|
|
@ -130,15 +130,15 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
|
|||
sxpbe;
|
||||
*(ckt->CKTstate1 + here->BJTsensxpbc + 8 * (iparmno - 1)) =
|
||||
sxpbc;
|
||||
*(ckt->CKTstate1 + here->BJTsensxpcs + 8 * (iparmno - 1)) =
|
||||
sxpcs;
|
||||
*(ckt->CKTstate1 + here->BJTsensxpsub + 8 * (iparmno - 1)) =
|
||||
sxpsub;
|
||||
*(ckt->CKTstate1 + here->BJTsensxpbx + 8 * (iparmno - 1)) =
|
||||
sxpbx;
|
||||
*(ckt->CKTstate1 + here->BJTsensxpbe + 8 * (iparmno - 1) +
|
||||
1) = 0;
|
||||
*(ckt->CKTstate1 + here->BJTsensxpbc + 8 * (iparmno - 1) +
|
||||
1) = 0;
|
||||
*(ckt->CKTstate1 + here->BJTsensxpcs + 8 * (iparmno - 1) +
|
||||
*(ckt->CKTstate1 + here->BJTsensxpsub + 8 * (iparmno - 1) +
|
||||
1) = 0;
|
||||
*(ckt->CKTstate1 + here->BJTsensxpbx + 8 * (iparmno - 1) +
|
||||
1) = 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue