diff --git a/ChangeLog b/ChangeLog index 3e3ec236a..a4c1039dc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-12-18 Dietmar Warning + * devices/bsim*/*ask.c: correct multiplier m for certain currents, conductances, charges + and capacitances if they are requested by plotting and printing, e.g. @m1[gds] + 2010-12-18 Holger Vogt * rnorrexp.c, randnumb.c, 1-f-code.c, main.c, fteext.h, 1-f-code.h, diff --git a/src/spicelib/devices/bsim3soi/b4soiask.c b/src/spicelib/devices/bsim3soi/b4soiask.c index f349133c5..2bf7c366b 100644 --- a/src/spicelib/devices/bsim3soi/b4soiask.c +++ b/src/spicelib/devices/bsim3soi/b4soiask.c @@ -251,9 +251,11 @@ B4SOIinstance *here = (B4SOIinstance*)inst; case B4SOI_SOURCECONDUCT: value->rValue = here->B4SOIsourceConductance; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_DRAINCONDUCT: value->rValue = here->B4SOIdrainConductance; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_VBD: value->rValue = *(ckt->CKTstate0 + here->B4SOIvbd); @@ -272,54 +274,68 @@ B4SOIinstance *here = (B4SOIinstance*)inst; return(OK); case B4SOI_CD: value->rValue = here->B4SOIcdrain; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_IBS: value->rValue = here->B4SOIibs; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_IBD: value->rValue = here->B4SOIibd; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_ISUB: value->rValue = here->B4SOIiii; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_IGIDL: value->rValue = here->B4SOIigidl; return(OK); - case B4SOI_IGISL: + case B4SOI_IGISL: value->rValue = here->B4SOIigisl; return(OK); case B4SOI_IGS: value->rValue = here->B4SOIIgs; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_IGD: value->rValue = here->B4SOIIgd; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_IGB: value->rValue = here->B4SOIIgb; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_IGCS: value->rValue = here->B4SOIIgcs; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_IGCD: value->rValue = here->B4SOIIgcd; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_GM: value->rValue = here->B4SOIgm; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_GMID: value->rValue = here->B4SOIgm/here->B4SOIcd; return(OK); case B4SOI_GDS: value->rValue = here->B4SOIgds; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_GMBS: value->rValue = here->B4SOIgmbs; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_GBD: value->rValue = here->B4SOIgjdb; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_GBS: value->rValue = here->B4SOIgjsb; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_CQB: value->rValue = *(ckt->CKTstate0 + here->B4SOIcqb); @@ -332,15 +348,19 @@ B4SOIinstance *here = (B4SOIinstance*)inst; return(OK); case B4SOI_CBDB: value->rValue = here->B4SOIcbdb; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_CBSB: value->rValue = here->B4SOIcbsb; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_VON: value->rValue = here->B4SOIvon; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_VDSAT: value->rValue = here->B4SOIvdsat; + value->rValue *= here->B4SOIm; return(OK); case B4SOI_QBS: value->rValue = *(ckt->CKTstate0 + here->B4SOIqbs); diff --git a/src/spicelib/devices/bsim4/b4ask.c b/src/spicelib/devices/bsim4/b4ask.c index 1e7bb708a..2fd9b221e 100644 --- a/src/spicelib/devices/bsim4/b4ask.c +++ b/src/spicelib/devices/bsim4/b4ask.c @@ -179,9 +179,11 @@ BSIM4instance *here = (BSIM4instance*)inst; return(OK); case BSIM4_SOURCECONDUCT: value->rValue = here->BSIM4sourceConductance; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_DRAINCONDUCT: value->rValue = here->BSIM4drainConductance; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_VBD: value->rValue = *(ckt->CKTstate0 + here->BSIM4vbd); @@ -197,54 +199,71 @@ BSIM4instance *here = (BSIM4instance*)inst; return(OK); case BSIM4_CD: value->rValue = here->BSIM4cd; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CBS: value->rValue = here->BSIM4cbs; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CBD: value->rValue = here->BSIM4cbd; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CSUB: value->rValue = here->BSIM4csub; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_QINV: value->rValue = here-> BSIM4qinv; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_IGIDL: value->rValue = here->BSIM4Igidl; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_IGISL: value->rValue = here->BSIM4Igisl; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_IGS: value->rValue = here->BSIM4Igs; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_IGD: value->rValue = here->BSIM4Igd; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_IGB: value->rValue = here->BSIM4Igb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_IGCS: value->rValue = here->BSIM4Igcs; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_IGCD: value->rValue = here->BSIM4Igcd; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_GM: value->rValue = here->BSIM4gm; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_GDS: value->rValue = here->BSIM4gds; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_GMBS: value->rValue = here->BSIM4gmbs; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_GBD: value->rValue = here->BSIM4gbd; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_GBS: value->rValue = here->BSIM4gbs; + value->rValue *= here->BSIM4m; return(OK); /* case BSIM4_QB: value->rValue = *(ckt->CKTstate0 + here->BSIM4qb); @@ -269,78 +288,101 @@ BSIM4instance *here = (BSIM4instance*)inst; return(OK); */ case BSIM4_QB: value->rValue = here->BSIM4qbulk; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_QG: value->rValue = here->BSIM4qgate; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_QS: value->rValue = here->BSIM4qsrc; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_QD: value->rValue = here->BSIM4qdrn; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_QDEF: value->rValue = *(ckt->CKTstate0 + here->BSIM4qdef); return(OK); case BSIM4_GCRG: value->rValue = here->BSIM4gcrg; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_GTAU: value->rValue = here->BSIM4gtau; return(OK); case BSIM4_CGGB: value->rValue = here->BSIM4cggb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CGDB: value->rValue = here->BSIM4cgdb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CGSB: value->rValue = here->BSIM4cgsb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CDGB: value->rValue = here->BSIM4cdgb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CDDB: value->rValue = here->BSIM4cddb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CDSB: value->rValue = here->BSIM4cdsb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CBGB: value->rValue = here->BSIM4cbgb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CBDB: value->rValue = here->BSIM4cbdb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CBSB: value->rValue = here->BSIM4cbsb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CSGB: value->rValue = here->BSIM4csgb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CSDB: value->rValue = here->BSIM4csdb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CSSB: value->rValue = here->BSIM4cssb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CGBB: value->rValue = here->BSIM4cgbb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CDBB: value->rValue = here->BSIM4cdbb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CSBB: value->rValue = here->BSIM4csbb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CBBB: value->rValue = here->BSIM4cbbb; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CAPBD: value->rValue = here->BSIM4capbd; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_CAPBS: value->rValue = here->BSIM4capbs; + value->rValue *= here->BSIM4m; return(OK); case BSIM4_VON: value->rValue = here->BSIM4von; diff --git a/src/spicelib/devices/bsim4v2/b4v2ask.c b/src/spicelib/devices/bsim4v2/b4v2ask.c index 6e1812705..aefaeb838 100644 --- a/src/spicelib/devices/bsim4v2/b4v2ask.c +++ b/src/spicelib/devices/bsim4v2/b4v2ask.c @@ -146,9 +146,11 @@ BSIM4v2instance *here = (BSIM4v2instance*)inst; return(OK); case BSIM4v2_SOURCECONDUCT: value->rValue = here->BSIM4v2sourceConductance; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_DRAINCONDUCT: value->rValue = here->BSIM4v2drainConductance; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_VBD: value->rValue = *(ckt->CKTstate0 + here->BSIM4v2vbd); @@ -164,54 +166,71 @@ BSIM4v2instance *here = (BSIM4v2instance*)inst; return(OK); case BSIM4v2_CD: value->rValue = here->BSIM4v2cd; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CBS: value->rValue = here->BSIM4v2cbs; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CBD: value->rValue = here->BSIM4v2cbd; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CSUB: value->rValue = here->BSIM4v2csub; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_QINV: value->rValue = here-> BSIM4v2qinv; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_IGIDL: value->rValue = here->BSIM4v2Igidl; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_IGISL: value->rValue = here->BSIM4v2Igisl; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_IGS: value->rValue = here->BSIM4v2Igs; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_IGD: value->rValue = here->BSIM4v2Igd; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_IGB: value->rValue = here->BSIM4v2Igb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_IGCS: value->rValue = here->BSIM4v2Igcs; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_IGCD: value->rValue = here->BSIM4v2Igcd; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_GM: value->rValue = here->BSIM4v2gm; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_GDS: value->rValue = here->BSIM4v2gds; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_GMBS: value->rValue = here->BSIM4v2gmbs; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_GBD: value->rValue = here->BSIM4v2gbd; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_GBS: value->rValue = here->BSIM4v2gbs; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_QB: value->rValue = *(ckt->CKTstate0 + here->BSIM4v2qb); @@ -236,57 +255,75 @@ BSIM4v2instance *here = (BSIM4v2instance*)inst; return(OK); case BSIM4v2_CGGB: value->rValue = here->BSIM4v2cggb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CGDB: value->rValue = here->BSIM4v2cgdb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CGSB: value->rValue = here->BSIM4v2cgsb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CDGB: value->rValue = here->BSIM4v2cdgb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CDDB: value->rValue = here->BSIM4v2cddb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CDSB: value->rValue = here->BSIM4v2cdsb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CBGB: value->rValue = here->BSIM4v2cbgb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CBDB: value->rValue = here->BSIM4v2cbdb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CBSB: value->rValue = here->BSIM4v2cbsb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CSGB: value->rValue = here->BSIM4v2csgb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CSDB: value->rValue = here->BSIM4v2csdb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CSSB: value->rValue = here->BSIM4v2cssb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CGBB: value->rValue = here->BSIM4v2cgbb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CDBB: value->rValue = here->BSIM4v2cdbb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CSBB: value->rValue = here->BSIM4v2csbb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CBBB: value->rValue = here->BSIM4v2cbbb; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CAPBD: value->rValue = here->BSIM4v2capbd; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_CAPBS: value->rValue = here->BSIM4v2capbs; + value->rValue *= here->BSIM4v2m; return(OK); case BSIM4v2_VON: value->rValue = here->BSIM4v2von; diff --git a/src/spicelib/devices/bsim4v3/b4v3ask.c b/src/spicelib/devices/bsim4v3/b4v3ask.c index acce4dc6e..b9931fc5e 100644 --- a/src/spicelib/devices/bsim4v3/b4v3ask.c +++ b/src/spicelib/devices/bsim4v3/b4v3ask.c @@ -155,9 +155,11 @@ BSIM4v3instance *here = (BSIM4v3instance*)inst; return(OK); case BSIM4v3_SOURCECONDUCT: value->rValue = here->BSIM4v3sourceConductance; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_DRAINCONDUCT: value->rValue = here->BSIM4v3drainConductance; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_VBD: value->rValue = *(ckt->CKTstate0 + here->BSIM4v3vbd); @@ -173,54 +175,71 @@ BSIM4v3instance *here = (BSIM4v3instance*)inst; return(OK); case BSIM4v3_CD: value->rValue = here->BSIM4v3cd; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CBS: value->rValue = here->BSIM4v3cbs; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CBD: value->rValue = here->BSIM4v3cbd; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CSUB: value->rValue = here->BSIM4v3csub; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_QINV: value->rValue = here-> BSIM4v3qinv; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_IGIDL: value->rValue = here->BSIM4v3Igidl; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_IGISL: value->rValue = here->BSIM4v3Igisl; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_IGS: value->rValue = here->BSIM4v3Igs; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_IGD: value->rValue = here->BSIM4v3Igd; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_IGB: value->rValue = here->BSIM4v3Igb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_IGCS: value->rValue = here->BSIM4v3Igcs; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_IGCD: value->rValue = here->BSIM4v3Igcd; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_GM: value->rValue = here->BSIM4v3gm; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_GDS: value->rValue = here->BSIM4v3gds; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_GMBS: value->rValue = here->BSIM4v3gmbs; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_GBD: value->rValue = here->BSIM4v3gbd; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_GBS: value->rValue = here->BSIM4v3gbs; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_QB: value->rValue = *(ckt->CKTstate0 + here->BSIM4v3qb); @@ -245,57 +264,75 @@ BSIM4v3instance *here = (BSIM4v3instance*)inst; return(OK); case BSIM4v3_CGGB: value->rValue = here->BSIM4v3cggb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CGDB: value->rValue = here->BSIM4v3cgdb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CGSB: value->rValue = here->BSIM4v3cgsb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CDGB: value->rValue = here->BSIM4v3cdgb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CDDB: value->rValue = here->BSIM4v3cddb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CDSB: value->rValue = here->BSIM4v3cdsb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CBGB: value->rValue = here->BSIM4v3cbgb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CBDB: value->rValue = here->BSIM4v3cbdb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CBSB: value->rValue = here->BSIM4v3cbsb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CSGB: value->rValue = here->BSIM4v3csgb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CSDB: value->rValue = here->BSIM4v3csdb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CSSB: value->rValue = here->BSIM4v3cssb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CGBB: value->rValue = here->BSIM4v3cgbb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CDBB: value->rValue = here->BSIM4v3cdbb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CSBB: value->rValue = here->BSIM4v3csbb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CBBB: value->rValue = here->BSIM4v3cbbb; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CAPBD: value->rValue = here->BSIM4v3capbd; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_CAPBS: value->rValue = here->BSIM4v3capbs; + value->rValue *= here->BSIM4v3m; return(OK); case BSIM4v3_VON: value->rValue = here->BSIM4v3von; diff --git a/src/spicelib/devices/bsim4v4/b4v4ask.c b/src/spicelib/devices/bsim4v4/b4v4ask.c index 1b7177242..2e8e5b017 100644 --- a/src/spicelib/devices/bsim4v4/b4v4ask.c +++ b/src/spicelib/devices/bsim4v4/b4v4ask.c @@ -172,54 +172,71 @@ BSIM4v4instance *here = (BSIM4v4instance*)inst; return(OK); case BSIM4v4_CD: value->rValue = here->BSIM4v4cd; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CBS: value->rValue = here->BSIM4v4cbs; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CBD: value->rValue = here->BSIM4v4cbd; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CSUB: value->rValue = here->BSIM4v4csub; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_QINV: value->rValue = here-> BSIM4v4qinv; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_IGIDL: value->rValue = here->BSIM4v4Igidl; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_IGISL: value->rValue = here->BSIM4v4Igisl; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_IGS: value->rValue = here->BSIM4v4Igs; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_IGD: value->rValue = here->BSIM4v4Igd; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_IGB: value->rValue = here->BSIM4v4Igb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_IGCS: value->rValue = here->BSIM4v4Igcs; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_IGCD: value->rValue = here->BSIM4v4Igcd; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_GM: value->rValue = here->BSIM4v4gm; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_GDS: value->rValue = here->BSIM4v4gds; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_GMBS: value->rValue = here->BSIM4v4gmbs; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_GBD: value->rValue = here->BSIM4v4gbd; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_GBS: value->rValue = here->BSIM4v4gbs; + value->rValue *= here->BSIM4v4m; return(OK); /* case BSIM4v4_QB: value->rValue = *(ckt->CKTstate0 + here->BSIM4v4qb); @@ -244,69 +261,90 @@ BSIM4v4instance *here = (BSIM4v4instance*)inst; return(OK); */ case BSIM4v4_QB: value->rValue = here->BSIM4v4qbulk; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_QG: value->rValue = here->BSIM4v4qgate; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_QS: value->rValue = here->BSIM4v4qsrc; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_QD: value->rValue = here->BSIM4v4qdrn; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CGGB: value->rValue = here->BSIM4v4cggb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CGDB: value->rValue = here->BSIM4v4cgdb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CGSB: value->rValue = here->BSIM4v4cgsb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CDGB: value->rValue = here->BSIM4v4cdgb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CDDB: value->rValue = here->BSIM4v4cddb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CDSB: value->rValue = here->BSIM4v4cdsb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CBGB: value->rValue = here->BSIM4v4cbgb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CBDB: value->rValue = here->BSIM4v4cbdb; return(OK); case BSIM4v4_CBSB: value->rValue = here->BSIM4v4cbsb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CSGB: value->rValue = here->BSIM4v4csgb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CSDB: value->rValue = here->BSIM4v4csdb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CSSB: value->rValue = here->BSIM4v4cssb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CGBB: value->rValue = here->BSIM4v4cgbb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CDBB: value->rValue = here->BSIM4v4cdbb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CSBB: value->rValue = here->BSIM4v4csbb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CBBB: value->rValue = here->BSIM4v4cbbb; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CAPBD: value->rValue = here->BSIM4v4capbd; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_CAPBS: value->rValue = here->BSIM4v4capbs; + value->rValue *= here->BSIM4v4m; return(OK); case BSIM4v4_VON: value->rValue = here->BSIM4v4von; diff --git a/src/spicelib/devices/bsim4v5/b4v5ask.c b/src/spicelib/devices/bsim4v5/b4v5ask.c index bd4fef616..48e049f4a 100644 --- a/src/spicelib/devices/bsim4v5/b4v5ask.c +++ b/src/spicelib/devices/bsim4v5/b4v5ask.c @@ -177,9 +177,11 @@ BSIM4v5instance *here = (BSIM4v5instance*)inst; return(OK); case BSIM4v5_SOURCECONDUCT: value->rValue = here->BSIM4v5sourceConductance; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_DRAINCONDUCT: value->rValue = here->BSIM4v5drainConductance; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_VBD: value->rValue = *(ckt->CKTstate0 + here->BSIM4v5vbd); @@ -195,54 +197,71 @@ BSIM4v5instance *here = (BSIM4v5instance*)inst; return(OK); case BSIM4v5_CD: value->rValue = here->BSIM4v5cd; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CBS: value->rValue = here->BSIM4v5cbs; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CBD: value->rValue = here->BSIM4v5cbd; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CSUB: value->rValue = here->BSIM4v5csub; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_QINV: value->rValue = here-> BSIM4v5qinv; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_IGIDL: value->rValue = here->BSIM4v5Igidl; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_IGISL: value->rValue = here->BSIM4v5Igisl; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_IGS: value->rValue = here->BSIM4v5Igs; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_IGD: value->rValue = here->BSIM4v5Igd; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_IGB: value->rValue = here->BSIM4v5Igb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_IGCS: value->rValue = here->BSIM4v5Igcs; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_IGCD: value->rValue = here->BSIM4v5Igcd; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_GM: value->rValue = here->BSIM4v5gm; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_GDS: value->rValue = here->BSIM4v5gds; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_GMBS: value->rValue = here->BSIM4v5gmbs; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_GBD: value->rValue = here->BSIM4v5gbd; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_GBS: value->rValue = here->BSIM4v5gbs; + value->rValue *= here->BSIM4v5m; return(OK); /* case BSIM4v5_QB: value->rValue = *(ckt->CKTstate0 + here->BSIM4v5qb); @@ -267,78 +286,102 @@ BSIM4v5instance *here = (BSIM4v5instance*)inst; return(OK); */ case BSIM4v5_QB: value->rValue = here->BSIM4v5qbulk; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_QG: value->rValue = here->BSIM4v5qgate; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_QS: value->rValue = here->BSIM4v5qsrc; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_QD: value->rValue = here->BSIM4v5qdrn; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_QDEF: value->rValue = *(ckt->CKTstate0 + here->BSIM4v5qdef); return(OK); case BSIM4v5_GCRG: value->rValue = here->BSIM4v5gcrg; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_GTAU: value->rValue = here->BSIM4v5gtau; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CGGB: value->rValue = here->BSIM4v5cggb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CGDB: value->rValue = here->BSIM4v5cgdb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CGSB: value->rValue = here->BSIM4v5cgsb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CDGB: value->rValue = here->BSIM4v5cdgb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CDDB: value->rValue = here->BSIM4v5cddb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CDSB: value->rValue = here->BSIM4v5cdsb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CBGB: value->rValue = here->BSIM4v5cbgb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CBDB: value->rValue = here->BSIM4v5cbdb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CBSB: value->rValue = here->BSIM4v5cbsb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CSGB: value->rValue = here->BSIM4v5csgb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CSDB: value->rValue = here->BSIM4v5csdb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CSSB: value->rValue = here->BSIM4v5cssb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CGBB: value->rValue = here->BSIM4v5cgbb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CDBB: value->rValue = here->BSIM4v5cdbb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CSBB: value->rValue = here->BSIM4v5csbb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CBBB: value->rValue = here->BSIM4v5cbbb; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CAPBD: value->rValue = here->BSIM4v5capbd; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_CAPBS: value->rValue = here->BSIM4v5capbs; + value->rValue *= here->BSIM4v5m; return(OK); case BSIM4v5_VON: value->rValue = here->BSIM4v5von;