I am excited to see such progress with the upgrading of parameter handling!
However I have hit a snag. When I use numerical values for PD and PS on the gnucap BSIM transistor models, I get a reasonable result. When I use parameters, I also get the same results, except for the PD and PS parameters. I've attached a simple inverter test case to highlight the issue. The three inverters differ only in the way parameters are set. I've included the transistor models, in case that is where the problem lies. Thanks, mb ************************************************************** * Test Inverter using 180nm CMOS * Gnucap 2008.02.10 RCS 26.71 .model n_18_mm nmos level=8.0000e+00 version=3.2000e+00 +binunit=1.0000e+00 mobmod=1.0000e+00 capmod=2.0000e+00 +tox=4.2000e-09 toxm=4.2000e-09 xj=1.6000e-07 nch=3.7446e+17 +rsh=8.0000e+00 ngate=1.0000e+23 vth0=3.0750e-01 k1=4.5780e-01 +k2=-2.6380e-02 k3=-1.0880e+01 k3b=2.3790e-01 w0=-8.8130e-08 +nlx=4.2790e-07 dvt0=4.0420e-01 dvt1=3.2370e-01 dvt2=-8.6020e-01 +dvt0w=3.8300e-01 dvt1w=6.0000e+05 dvt2w=-2.5000e-02 lint=1.5870e-08 +wint=1.0220e-08 dwg=-3.3960e-09 dwb=1.3460e-09 u0=3.1410e+02 +ua=-9.2010e-10 ub=1.9070e-18 uc=4.3550e-11 vsat=7.1580e+04 +a0=1.9300e+00 ags=5.0720e-01 b0=1.4860e-06 b1=9.0640e-06 +keta=1.7520e-02 a1=0.0000e+00 a2=1.0000e+00 voff=-1.0880e-01 +nfactor=1.0380e+00 cit=-1.5110e-03 cdsc=2.1750e-03 cdscd=-5.0000e-04 +cdscb=8.2410e-04 eta0=1.0040e-03 etab=-1.4590e-03 dsub=1.5920e-03 +pclm=1.0910e+00 pdiblc1=3.0610e-03 pdiblc2=1.0000e-06 +pdiblcb=0.0000e+00 drout=1.5920e-03 pscbe1=4.8660e+08 +pscbe2=2.8000e-07 pvag=-2.9580e-01 rdsw=4.9050e+00 prwg=0.0000e+00 +prwb=0.0000e+00 wr=1.0000e+00 alpha0=0.0000e+00 alpha1=0.0000e+00 +beta0=3.0000e+01 xpart=1.0000e+00 cgso=2.3500e-10 cgdo=2.3500e-10 +cgbo=0.0000e+00 cgsl=0.0000e+00 cgdl=0.0000e+00 ckappa=6.0000e-01 +cf=1.5330e-10 clc=1.0000e-07 cle=6.0000e-01 dlc=2.9000e-08 +dwc=0.0000e+00 vfbcv=-1.0000e+00 noff=1.0000e+00 voffcv=0.0000e+00 +acde=1.0000e+00 moin=1.5000e+01 js=1.0000e-06 jsw=7.0000e-11 +cj=1.0300e-03 mj=4.4300e-01 pb=8.1300e-01 cjsw=1.3400e-10 +mjsw=3.3000e-01 tnom=2.5000e+01 ute=-1.2860e+00 kt1=-2.2550e-01 +kt1l=-4.1750e-09 kt2=-2.5270e-02 ua1=2.1530e-09 ub1=-2.6730e-18 +uc1=-3.8320e-11 at=1.4490e+04 prt=-1.0180e+01 xti=3.0000e+00 +wl=0.0000e+00 wln=1.0000e+00 ww=7.2620e-16 wwn=1.0000e+00 +wwl=0.0000e+00 ll=-1.0620e-15 lln=1.0000e+00 lw=2.9960e-15 +lwn=1.0000e+00 lwl=0.0000e+00 llc=-2.1400e-15 lwc=0.0000e+00 +lwlc=0.0000e+00 wlc=0.0000e+00 wwc=0.0000e+00 wwlc=0.0000e+00 +lvth0=-1.0000e-03 wvth0=6.0270e-02 pvth0=0.0000e+00 lnlx=-2.8540e-08 +wnlx=0.0000e+00 pnlx=0.0000e+00 wua=-1.8800e-11 wu0=5.4000e-01 +pub=3.8000e-20 pw0=1.3000e-09 wrdsw=0.0000e+00 weta0=0.0000e+00 +wetab=0.0000e+00 leta0=1.5740e-03 letab=0.0000e+00 peta0=0.0000e+00 +petab=0.0000e+00 wpclm=0.0000e+00 wvoff=-4.0780e-04 +lvoff=-4.2080e-03 pvoff=-3.7880e-04 wa0=-4.7310e-02 la0=-4.6670e-01 +pa0=-2.6490e-02 wags=4.2420e-03 lags=3.0280e-01 pags=0.0000e+00 +wketa=0.0000e+00 lketa=-1.9420e-02 pketa=0.0000e+00 wute=6.3730e-02 +lute=0.0000e+00 pute=0.0000e+00 wvsat=5.0660e+03 lvsat=0.0000e+00 +pvsat=0.0000e+00 lpdiblc2=-4.7520e-03 wat=7.0670e+03 wprt=0.0000e+00 +cjgate=5.0000e-10 ctp=9.1400e-04 ptp=9.2400e-04 cta=9.1900e-04 +pta=1.5800e-03 elm=5.0000e+00 tlevc=1.0000e+00 .model p_18_mm pmos level=8.0000e+00 mobmod=3.0000e+00 +version=3.2000e+00 capmod=2.0000e+00 binunit=1.0000e+00 +tox=4.2000e-09 toxm=4.2000e-09 xj=1.0000e-07 nch=6.1310e+17 +ngate=1.0000e+23 vth0=-4.5550e-01 k1=5.7040e-01 k2=6.9730e-03 +k3=-2.8330e+00 k3b=1.3260e+00 w0=-1.9430e-07 nlx=2.5300e-07 +dvt0=4.8850e-01 dvt1=7.5780e-02 dvt2=1.2870e-01 dvt0w=-1.2610e-01 +dvt1w=2.4790e+04 dvt2w=6.9150e-01 lint=-1.0410e-08 wint=-1.5250e-07 +dwg=-1.1510e-07 dwb=-1.0390e-07 u0=1.1450e+02 ua=1.5400e-09 +ub=2.6460e-19 uc=-9.5870e-02 vsat=5.3400e+04 a0=1.3500e+00 +ags=3.8180e-01 b0=-3.0880e-07 b1=0.0000e+00 keta=1.0440e-02 +a1=0.0000e+00 a2=1.0000e+00 voff=-1.0730e-01 nfactor=1.5350e-00 +cit=-1.0670e-03 cdsc=7.5780e-04 cdscd=-2.8830e-05 cdscb=1.0000e-04 +eta0=1.0710e+00 etab=-9.2910e-01 dsub=1.9191e+00 pclm=2.6530e+00 +pdiblc1=0.0000e+00 pdiblc2=5.0000e-06 pdiblcb=0.0000e+00 +drout=1.4570e+00 pscbe1=4.8660e+08 pscbe2=2.8000e-07 pvag=1.1620e+00 +rdsw=7.9210e+02 prwg=0.0000e+00 prwb=0.0000e+00 alpha0=0.0000e+00 +alpha1=0.0000e+00 beta0=3.0000e+01 cgdo=2.0540e-10 cgbo=0.0000e+00 +cgso=2.0540e-10 xpart=1.0000e+00 cf=1.5330e-10 dlc=5.6000e-08 +cgsl=0.0000e+00 cgdl=0.0000e+00 ckappa=6.0000e-01 clc=1.0000e-07 +cle=6.0000e-01 dwc=0.0000e+00 vfbcv=-1.0000e+00 noff=1.0000e+00 +voffcv=0.0000e+00 acde=1.0000e+00 moin=1.5000e+01 js=3.0000e-06 +jsw=4.1200e-11 cj=1.1400e-03 mj=3.9500e-01 pb=7.6200e-01 +cjsw=1.7400e-10 mjsw=3.2400e-01 tnom=2.5000e+01 ute=-4.4840e-01 +kt1=-2.1940e-01 kt1l=-8.2040e-09 kt2=-9.4870e-03 ua1=4.5710e-09 +ub1=-6.0260e-18 uc1=-9.8500e-02 at=1.2030e+04 prt=0.0000e+00 +xti=3.0000e+00 ww=1.2360e-14 lw=-2.8730e-16 ll=6.6350e-15 +wl=0.0000e+00 wln=1.0000e+00 wwn=1.0000e+00 wwl=0.0000e+00 +lln=1.0000e+00 lwn=1.0000e+00 lwl=0.0000e+00 llc=-7.4500e-15 +lwc=0.0000e+00 lwlc=0.0000e+00 wlc=0.0000e+00 wwc=0.0000e+00 +wwlc=0.0000e+00 lvth0=4.4000e-03 wvth0=-1.4800e-02 pvth0=3.2000e-03 +lnlx=-1.5840e-08 wrdsw=1.0070e+01 weta0=0.0000e+00 wetab=0.0000e+00 +wpclm=0.0000e+00 wua=2.6300e-09 lua=-8.1530e-11 pua=5.8550e-11 +wub=0.0000e+00 lub=0.0000e+00 pub=0.0000e+00 wuc=0.0000e+00 +luc=0.0000e+00 puc=0.0000e+00 wvoff=-9.8160e-03 lvoff=-9.8710e-04 +pvoff=-9.8330e-05 wa0=-4.8070e-02 la0=-2.8100e-01 pa0=8.6610e-02 +wags=-4.1770e-02 lags=4.4540e-02 pags=-4.0760e-02 wketa=0.0000e+00 +lketa=-1.2000e-02 pketa=0.0000e+00 wute=-2.6820e-01 lute=0.0000e+00 +pute=0.0000e+00 wvsat=-1.4200e+04 lvsat=0.0000e+00 pvsat=-4.3400e+02 +lpdiblc2=3.0120e-03 cjgate=4.2000e-10 wat=-6.4050e+03 +wprt=2.1660e+02 cta=1.0000e-03 ctp=7.5300e-04 pta=1.5500e-03 +ptp=1.2400e-03 rsh=8.0000e+00 V0 VSS 0 0.0 V1 VDD 0 PULSE 0.0 1.8 0.0 1e-9 V2 IN 0 PULSE 0.0 1.8 1e-9 1e-9 1e-9 1e-9 * PULSE iv pv delay rise fall width period .PARAMETER p_length=180e-9 .PARAMETER p_width=1000e-9 .PARAMETER p_fingers=1 .PARAMETER p_drainPerimeter=2.98e-6 .PARAMETER p_sourcePerimeter=2.98e-6 .PARAMETER p_drainArea=4.90e-13 .PARAMETER p_sourceArea=4.90e-13 .PARAMETER n_length=180e-9 .PARAMETER n_width=500e-9 .PARAMETER n_fingers=1 .PARAMETER n_drainPerimeter=1.98e-6 .PARAMETER n_sourcePerimeter=1.98e-6 .PARAMETER n_drainArea=2.45e-13 .PARAMETER n_sourceArea=2.45e-13 * INV_1 uses the parameters M_P1 Z1 IN VDD VDD P_18_MM + L='p_length' W='p_width' M='p_fingers' + AD='p_drainArea' AS='p_sourceArea' + PD='p_drainPerimeter' PS='p_sourcePerimeter' M_N1 Z1 IN VSS VSS N_18_MM + L='n_length' W='n_width' M='n_fingers' + AD='n_drainArea' AS='n_sourceArea' + PD='n_drainPerimeter' PS='n_sourcePerimeter' C_LOAD1 VSS Z1 10e-15 * INV_2 uses the same numerical values directly M_P2 Z2 IN VDD VDD P_18_MM + L=180e-9 W=1000e-9 M=1 + AD=4.90e-13 AS=4.90e-13 + PD=2.98e-6 PS=2.98e-6 M_N2 Z2 IN VSS VSS N_18_MM + L=180e-9 W=500e-9 M=1 + AD=2.45e-13 AS=2.45e-13 + PD=1.98e-6 PS=1.98e-6 C_LOAD2 VSS Z2 10e-15 * INV_3 uses the parameters, except for PD and PS M_P3 Z3 IN VDD VDD P_18_MM + L='p_length' W='p_width' M='p_fingers' + AD='p_drainArea' AS='p_sourceArea' + PD=2.98e-6 PS=2.98e-6 M_N3 Z3 IN VSS VSS N_18_MM + L='n_length' W='n_width' M='n_fingers' + AD='n_drainArea' AS='n_sourceArea' + PD=1.98e-6 PS=1.98e-6 C_LOAD3 VSS Z3 10e-15 * INV_2 & INV_3 match exactly during transient simulation * INV_1 gives the following messages and does not match exactly * "parameter p_drainPerimeter has no value" * "parameter n_drainPerimeter has no value" .PRINT tran v(IN) v(Z1) v(Z2) v(Z3) v(VSS) v(VDD) .OPTION dtmin=1E-15 .TRAN 0.0 5e-9 1e-12 trace alltime > inv_paramtest.alltime .END _______________________________________________ Help-gnucap mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-gnucap
