From 705e13086886fb650ca357ae12defbf1c2cdaff7 Mon Sep 17 00:00:00 2001 From: h_vogt Date: Mon, 1 Oct 2012 23:03:41 +0200 Subject: [PATCH] b3v32.c: make additional parameters accessible by @m1[par] --- src/spicelib/devices/bsim3v32/b3v32.c | 65 ++++++++++++++++++--------- 1 file changed, 43 insertions(+), 22 deletions(-) diff --git a/src/spicelib/devices/bsim3v32/b3v32.c b/src/spicelib/devices/bsim3v32/b3v32.c index 801613188..2ab53bf2e 100644 --- a/src/spicelib/devices/bsim3v32/b3v32.c +++ b/src/spicelib/devices/bsim3v32/b3v32.c @@ -15,29 +15,50 @@ #include "ngspice/suffix.h" IFparm BSIM3v32pTable[] = { /* parameters */ -IOP( "l", BSIM3v32_L, IF_REAL , "Length"), -IOP( "w", BSIM3v32_W, IF_REAL , "Width"), -IOP( "m", BSIM3v32_M, IF_REAL , "Parallel multiplier"), -IOP( "ad", BSIM3v32_AD, IF_REAL , "Drain area"), -IOP( "as", BSIM3v32_AS, IF_REAL , "Source area"), -IOP( "pd", BSIM3v32_PD, IF_REAL , "Drain perimeter"), -IOP( "ps", BSIM3v32_PS, IF_REAL , "Source perimeter"), -IOP( "nrd", BSIM3v32_NRD, IF_REAL , "Number of squares in drain"), -IOP( "nrs", BSIM3v32_NRS, IF_REAL , "Number of squares in source"), -IOP( "off", BSIM3v32_OFF, IF_FLAG , "Device is initially off"), +IOP( "l", BSIM3v32_L, IF_REAL , "Length"), +IOP( "w", BSIM3v32_W, IF_REAL , "Width"), +IOP( "m", BSIM3v32_M, IF_REAL , "Parallel multiplier"), +IOP( "ad", BSIM3v32_AD, IF_REAL , "Drain area"), +IOP( "as", BSIM3v32_AS, IF_REAL , "Source area"), +IOP( "pd", BSIM3v32_PD, IF_REAL , "Drain perimeter"), +IOP( "ps", BSIM3v32_PS, IF_REAL , "Source perimeter"), +IOP( "nrd", BSIM3v32_NRD, IF_REAL , "Number of squares in drain"), +IOP( "nrs", BSIM3v32_NRS, IF_REAL , "Number of squares in source"), +IOP( "off", BSIM3v32_OFF, IF_FLAG , "Device is initially off"), IOP( "nqsmod", BSIM3v32_NQSMOD, IF_INTEGER, "Non-quasi-static model selector"), -IOP( "delvto", BSIM3v32_DELVTO, IF_REAL , "Zero bias threshold voltage variation"), -IOP( "mulu0", BSIM3v32_MULU0, IF_REAL , "Low field mobility multiplier"), -IP( "ic", BSIM3v32_IC, IF_REALVEC , "Vector of DS,GS,BS initial voltages"), -OP( "gmbs", BSIM3v32_GMBS, IF_REAL, "Gmb"), -OP( "gm", BSIM3v32_GM, IF_REAL, "Gm"), -OP( "gds", BSIM3v32_GDS, IF_REAL, "Gds"), -OP( "vdsat",BSIM3v32_VDSAT, IF_REAL, "Vdsat"), -OP( "vth", BSIM3v32_VON, IF_REAL, "Vth"), -OP( "id", BSIM3v32_CD, IF_REAL, "Ids"), -OP( "vbs", BSIM3v32_VBS, IF_REAL, "Vbs"), -OP( "vgs", BSIM3v32_VGS, IF_REAL, "Vgs"), -OP( "vds", BSIM3v32_VDS, IF_REAL, "Vds"), +IOP( "delvto", BSIM3v32_DELVTO, IF_REAL , "Zero bias threshold voltage variation"), +IOP( "mulu0", BSIM3v32_MULU0, IF_REAL , "Low field mobility multiplier"), +IP( "ic", BSIM3v32_IC, IF_REALVEC , "Vector of DS,GS,BS initial voltages"), +OP( "gmbs", BSIM3v32_GMBS, IF_REAL, "Gmb"), +OP( "gm", BSIM3v32_GM, IF_REAL, "Gm"), +OP( "gds", BSIM3v32_GDS, IF_REAL, "Gds"), +OP( "vdsat", BSIM3v32_VDSAT, IF_REAL, "Vdsat"), +OP( "vth", BSIM3v32_VON, IF_REAL, "Vth"), +OP( "id", BSIM3v32_CD, IF_REAL, "Ids"), +OP( "vbs", BSIM3v32_VBS, IF_REAL, "Vbs"), +OP( "vgs", BSIM3v32_VGS, IF_REAL, "Vgs"), +OP( "vds", BSIM3v32_VDS, IF_REAL, "Vds"), +OP( "ibd", BSIM3v32_CBD, IF_REAL, "Ibd"), /* newly added from here */ +OP( "ibs", BSIM3v32_CBS, IF_REAL, "Ibs"), +OP( "gbd", BSIM3v32_GBD, IF_REAL, "gbd"), +OP( "gbs", BSIM3v32_GBS, IF_REAL, "gbs"), +OP( "qb", BSIM3v32_QB, IF_REAL, "Qbulk"), +OP( "cqb", BSIM3v32_CQB, IF_REAL, "CQbulk"), +OP( "qg", BSIM3v32_QG, IF_REAL, "Qgate"), +OP( "cqg", BSIM3v32_CQG, IF_REAL, "CQgate"), +OP( "qd", BSIM3v32_QD, IF_REAL, "Qdrain"), +OP( "cqd", BSIM3v32_CQD, IF_REAL, "CQdrain"), +OP( "cgg", BSIM3v32_CGG, IF_REAL, "Cggb"), +OP( "cgd", BSIM3v32_CGD, IF_REAL, "Cgdb"), +OP( "cgs", BSIM3v32_CGS, IF_REAL, "Cgsb"), +OP( "cdg", BSIM3v32_CDG, IF_REAL, "Cdgb"), +OP( "cdd", BSIM3v32_CDD, IF_REAL, "Cddb"), +OP( "cds", BSIM3v32_CDS, IF_REAL, "Cdsb"), +OP( "cbg", BSIM3v32_CBG, IF_REAL, "Cbgb"), +OP( "cbd", BSIM3v32_CBDB, IF_REAL, "Cbdb"), +OP( "cbs", BSIM3v32_CBSB, IF_REAL, "Cbsb"), +OP( "capbd", BSIM3v32_CAPBD, IF_REAL, "Capbd"), +OP( "capbs", BSIM3v32_CAPBS, IF_REAL, "Capbs"), }; IFparm BSIM3v32mPTable[] = { /* model parameters */