home *** CD-ROM | disk | FTP | other *** search
- /****************************************************************************/
- /* Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991 */
- /* By MicroSim Corporation, All Rights Reserved */
- /****************************************************************************/
- /* m.h
- * $Revision: 1.15 $
- * $Author: pwt $
- * $Date: 13 Jun 1991 20:23:20 $ */
-
- /******************* USERS OF DEVICE EQUATIONS OPTION ***********************/
-
- /* WARNING: the procedure for adding user-specified parameters has changed */
- /* slightly from version 4.00 and up. */
-
- /******** To add model parameters, see the comments just before **********/
- /******** the definition of the model's structure (M_). Do not **********/
- /******** change the device structure (m_). **********/
-
- /* MOSFET definitions */
-
- /*
- pwt ?? Aug 86 creation
- pwt 17 Mar 88 implement shared data area in device instance
- imw 17 Aug 88 expressions
- pwt 06 Oct 88 add "M" (multiplier) for device instance
- pwt 04 May 90 remove instance values saved for bypass calculations
- */
-
- struct mac_def { /* AC values */
- double /* capacitances */
- mac_cgdb, /* Ward-Dutton capacitance values */
- mac_cggb, /* note: aliases below */
- mac_cgsb,
- mac_cbdb,
- mac_cbgb,
- mac_cbsb,
- mac_cddb, /* capacitance values for BSIM */
- mac_cdgb,
- mac_cdsb,
- mac_cbd, /* substrate-junction capacitance values */
- mac_cbs;
- #define mac_cgdo mac_cgdb /* aliases: Meyer capacitance values */
- #define mac_cgso mac_cgsb
- #define mac_cgbo mac_cggb
- };
-
- struct msv_def { /* state vector */
- struct qi_def /* capacitor charges & currents */
- msv_cgs, /* note: aliases below */
- msv_cgd,
- msv_cgb,
- msv_cbd,
- msv_cbs;
- #define msv_cb msv_cgs /* aliases: capacitor currents & charges */
- #define msv_cg msv_cgd
- #define msv_cd msv_cgb
-
- double /* voltages */
- msv_vds,
- msv_vgs,
- msv_vbs;
-
- double /* device capacitances (w/o overlaps)*/
- msv_capgs,
- msv_capgd,
- msv_capgb;
- };
-
- /* state-vector access */
-
- #define M_VDS(vect) (sv[vect]->msv_vds)
- #define M_VGS(vect) (sv[vect]->msv_vgs)
- #define M_VBS(vect) (sv[vect]->msv_vbs)
-
- #define M_CGS(vect) (sv[vect]->msv_capgs)
- #define M_CGD(vect) (sv[vect]->msv_capgd)
- #define M_CGB(vect) (sv[vect]->msv_capgb)
-
- #define M_QIGS(vect) (sv[vect]->msv_cgs)
- #define M_QCGS(vect) (sv[vect]->msv_cgs.qi_q)
- #define M_ICGS(vect) (sv[vect]->msv_cgs.qi_i)
-
- #define M_QIGD(vect) (sv[vect]->msv_cgd)
- #define M_QCGD(vect) (sv[vect]->msv_cgd.qi_q)
- #define M_ICGD(vect) (sv[vect]->msv_cgd.qi_i)
-
- #define M_QIGB(vect) (sv[vect]->msv_cgb)
- #define M_QCGB(vect) (sv[vect]->msv_cgb.qi_q)
- #define M_ICGB(vect) (sv[vect]->msv_cgb.qi_i)
-
- #define M_QIBD(vect) (sv[vect]->msv_cbd)
- #define M_QCBD(vect) (sv[vect]->msv_cbd.qi_q)
- #define M_ICBD(vect) (sv[vect]->msv_cbd.qi_i)
-
- #define M_QIBS(vect) (sv[vect]->msv_cbs)
- #define M_QCBS(vect) (sv[vect]->msv_cbs.qi_q)
- #define M_ICBS(vect) (sv[vect]->msv_cbs.qi_i)
-
- #define M_QICB(vect) (sv[vect]->msv_cb)
- #define M_QCB(vect) (sv[vect]->msv_cb.qi_q)
- #define M_ICB(vect) (sv[vect]->msv_cb.qi_i)
-
- #define M_QICG(vect) (sv[vect]->msv_cg)
- #define M_QCG(vect) (sv[vect]->msv_cg.qi_q)
- #define M_ICG(vect) (sv[vect]->msv_cg.qi_i)
-
- #define M_QICD(vect) (sv[vect]->msv_cd)
- #define M_QCD(vect) (sv[vect]->msv_cd.qi_q)
- #define M_ICD(vect) (sv[vect]->msv_cd.qi_i)
-
- /* device instance */
-
- struct m_ {
- struct m_ *m_next;
- char *m_name;
- struct M_ *m_model;
-
- CKT_IDX /* circuit matrix indices: external nodes */
- m_D,
- m_G,
- m_S,
- m_B;
-
- int m_off;
-
- /* device parameters and expressions */
- /* MUST FOLLOW m_off */
-
- DXPR( m_vds, mx_vds); /* IC= */
- DXPR( m_vgs, mx_vgs);
- DXPR( m_vbs, mx_vbs);
-
- /* instance geometries */
- DXPR( m_l, mx_l);
- DXPR( m_w, mx_w);
- DXPR( m_ad, mx_ad);
- DXPR( m_as, mx_as);
- DXPR( m_pd, mx_pd);
- DXPR( m_ps, mx_ps);
- DXPR( m_nrd, mx_nrd);
- DXPR( m_nrs, mx_nrs);
- DXPR( m_nrg, mx_nrg);
- DXPR( m_nrb, mx_nrb);
- DXPR( m_m, mx_m);
-
- double /* reserved: pre-computed values */
- m_idsat, /* = area-scaled d-b saturation current */
- m_issat, /* = area-scaled s-b saturation current */
- m_rd, /* = 1/( RSH-scaled resistance or model value ) */
- m_rs, /* = 1/( RSH-scaled resistance or model value ) */
- m_rg, /* = 1/( RSH-scaled resistance or model value ) */
- m_rb; /* = 1/( RSH-scaled resistance or model value ) */
-
- int m_mode; /* values saved from previous iteration */
- double
- m_von,
- m_vdsat,
- m_xqc;
-
- CKT_IDX /* circuit matrix indices: internal nodes */
- m_d,
- m_g,
- m_s,
- m_b;
-
- MTX_IDX /* MatPrm indices: conductance terms */
- m_Dd,
- m_gb,
- m_gd,
- m_gs,
- m_Ss,
- m_bg,
- m_bd,
- m_bs,
- m_dD,
- m_dg,
- m_db,
- m_ds,
- m_sg,
- m_sS,
- m_sb,
- m_sd,
- m_DD,
- m_gg,
- m_SS,
- m_bb,
- m_dd,
- m_ss,
- m_GG,
- m_Gg,
- m_gG,
- m_BB,
- m_Bb,
- m_bB;
-
- MTX_IDX /* MatPrm indices: branch currents */
- m_id,
- m_ig,
- m_ib,
- m_is,
- m_iD;
-
- double /* "current" values */
- mcv_id, /* currents */
- mcv_ibs,
- mcv_ibd,
- mcv_gm, /* device conductances */
- mcv_gds,
- mcv_gmbs,
- mcv_gbd,
- mcv_gbs;
-
- struct { /* shared data area */
- struct mac_def m_ac; /* AC (capacitance values) */
- struct msv_def m_sv[MSTVCT]; /* state vectors (transient values) */
- } m_sda;
- };
-
- /******************* USERS OF DEVICE EQUATIONS OPTION ***********************/
- /* */
- /* NOTE: from 4.00 onward, this procedure has changed slightly. */
- /* See additional material below. */
- /* */
- /******** To add model parameters, add them to the definition of **********/
- /******** model's structure (M_) and the value structure **********/
- /******** (M_Assoc[]). The ASSOCIATE macro causes an element in **********/
- /******** the model structure to be associated with a default **********/
- /******** value and a name. This association is used during **********/
- /******** read-in to allocate memory for the model and to read in **********/
- /******** and default each parameter in a .MODEL statement. **********/
- /******** DO NOT CHANGE THE MODEL PARAMETERS SUPPLIED BY MICROSIM. **********/
- /******** In other words, add new model parameters to the end of **********/
- /******** the list, not the beginning or the middle. **********/
-
- /* 4.00+ : in order to add a parameter to the model struct, the MXPR macro */
- /* must be used. This requires two names as arguments. */
- /* The first is the parameter's name (for example, M_user1). */
- /* The second should be the same as the first with an "x" after the */
- /* "M" (for example, Mx_user1). */
-
- /* The ASSOCIATE macro is used the same way as before */
-
- /* device model */
-
- struct M_ {
- struct M_ *M_next;
- char *M_name;
- struct M_ *M_nom;
- struct M_ *M_ako;
-
- int M_type; /* device type == N_TYPE or P_TYPE */
-
- double /* reserved: pre-computed values */
- /* Note: F1, F2, F3 are obsolete */
- M_vinit, /* = -1 */
- M_vbi, /* = 2*phi{f} + phi{ms} - q*NSS/cox */
- M_xd; /* = sqrt(2*epSi/(q*NSUB)) */
-
- /* model parameters and expressions */
- MXPR( M_level,Mx_level);
- MXPR( M_tpg, Mx_tpg);
- MXPR( M_l, Mx_l);
- MXPR( M_w, Mx_w);
- MXPR( M_ld, Mx_ld); /* also BSIM_deltaL */
- MXPR( M_wd, Mx_wd); /* also BSIM_deltaW */
- MXPR( M_vto, Mx_vto);
- MXPR( M_kp, Mx_kp);
- MXPR( M_gamma,Mx_gamma);
- MXPR( M_phi, Mx_phi); /* also BSIM_phi0 */
- MXPR( M_lambda,Mx_lambda);
- MXPR( M_User_rd, Mx_User_rd);
- MXPR( M_User_rs, Mx_User_rs);
- MXPR( M_User_rg, Mx_User_rg);
- MXPR( M_User_rb, Mx_User_rb);
- MXPR( M_User_rds, Mx_User_rds);
- MXPR( M_User_rsh, Mx_User_rsh);
- MDLPARM M_rd,M_rs,M_rg,M_rb,M_rsh,M_rds,M_nsub,M_nss,M_nfs,M_uo,M_ucrit,M_delta,M_eta;
- MXPR( M_is, Mx_is);
- MXPR( M_js, Mx_js);
- MXPR( M_jssw, Mx_jssw);
- MXPR( M_n, Mx_n); /* emission coefficient */
- MXPR( M_pb, Mx_pb);
- MXPR( M_pbsw, Mx_pbsw);
- MXPR( M_cbd, Mx_cbd);
- MXPR( M_cbs, Mx_cbs);
- MXPR( M_cj, Mx_cj);
- MXPR( M_cjsw, Mx_cjsw);
- MXPR( M_mj, Mx_mj);
- MXPR( M_mjsw, Mx_mjsw);
- MXPR( M_fc, Mx_fc);
- MXPR( M_tt, Mx_tt); /* transit time for bulk junctions */
- MXPR( M_cgso, Mx_cgso);
- MXPR( M_cgdo, Mx_cgdo);
- MXPR( M_cgbo, Mx_cgbo);
- MXPR( M_User_nsub, Mx_User_nsub);
- MXPR( M_User_nss, Mx_User_nss);
- MXPR( M_User_nfs, Mx_User_nfs);
- MXPR( M_tox, Mx_tox);
- MXPR( M_xj, Mx_xj);
- MXPR( M_User_uo, Mx_User_uo);
- MXPR( M_User_ucrit,Mx_User_ucrit);
- MXPR( M_uexp, Mx_uexp);
- MXPR( M_utra, Mx_utra);
- MXPR( M_vmax, Mx_vmax);
- MXPR( M_neff, Mx_neff);
- MXPR( M_xqc, Mx_xqc);
- MXPR( M_User_delta,Mx_User_delta);
- MXPR( M_theta,Mx_theta);
- MXPR( M_User_eta, Mx_User_eta); /* also BSIM_eta0 */
- MXPR( M_kappa,Mx_kappa);
- MXPR( M_kf, Mx_kf);
- MXPR( M_af, Mx_af);
-
- /* BSIM model parameters and expressions */
- MXPR( BSIM_vfb0, BSIMx_vfb0);
- MXPR( BSIM_vfbL, BSIMx_vfbL);
- MXPR( BSIM_vfbW, BSIMx_vfbW);
- /* BSIM_phi0, use M_phi */
- MXPR( BSIM_phiL, BSIMx_phiL);
- MXPR( BSIM_phiW, BSIMx_phiW);
- MXPR( BSIM_K10, BSIMx_K10);
- MXPR( BSIM_K1L, BSIMx_K1L);
- MXPR( BSIM_K1W, BSIMx_K1W);
- MXPR( BSIM_K20, BSIMx_K20);
- MXPR( BSIM_K2L, BSIMx_K2L);
- MXPR( BSIM_K2W, BSIMx_K2W);
- /* BSIM_eta0, use M_eta */
- MXPR( BSIM_etaL, BSIMx_etaL);
- MXPR( BSIM_etaW, BSIMx_etaW);
- MXPR( BSIM_etaB0, BSIMx_etaB0);
- MXPR( BSIM_etaBL, BSIMx_etaBL);
- MXPR( BSIM_etaBW, BSIMx_etaBW);
- MXPR( BSIM_etaD0, BSIMx_etaD0);
- MXPR( BSIM_etaDL, BSIMx_etaDL);
- MXPR( BSIM_etaDW, BSIMx_etaDW);
- /* BSIM_deltaL, use M_ld */
- /* BSIM_deltaW, use M_lw */
- MXPR( BSIM_mobZero, BSIMx_mobZero);
- MXPR( BSIM_mobZeroB0, BSIMx_mobZeroB0);
- MXPR( BSIM_mobZeroBL, BSIMx_mobZeroBL);
- MXPR( BSIM_mobZeroBW, BSIMx_mobZeroBW);
- MXPR( BSIM_mobVdd0, BSIMx_mobVdd0);
- MXPR( BSIM_mobVddL, BSIMx_mobVddL);
- MXPR( BSIM_mobVddW, BSIMx_mobVddW);
- MXPR( BSIM_mobVddB0, BSIMx_mobVddB0);
- MXPR( BSIM_mobVddBL, BSIMx_mobVddBL);
- MXPR( BSIM_mobVddBW, BSIMx_mobVddBW);
- MXPR( BSIM_mobVddD0, BSIMx_mobVddD0);
- MXPR( BSIM_mobVddDL, BSIMx_mobVddDL);
- MXPR( BSIM_mobVddDW, BSIMx_mobVddDW);
- MXPR( BSIM_ugs0, BSIMx_ugs0);
- MXPR( BSIM_ugsL, BSIMx_ugsL);
- MXPR( BSIM_ugsW, BSIMx_ugsW);
- MXPR( BSIM_ugsB0, BSIMx_ugsB0);
- MXPR( BSIM_ugsBL, BSIMx_ugsBL);
- MXPR( BSIM_ugsBW, BSIMx_ugsBW);
- MXPR( BSIM_uds0, BSIMx_uds0);
- MXPR( BSIM_udsL, BSIMx_udsL);
- MXPR( BSIM_udsW, BSIMx_udsW);
- MXPR( BSIM_udsB0, BSIMx_udsB0);
- MXPR( BSIM_udsBL, BSIMx_udsBL);
- MXPR( BSIM_udsBW, BSIMx_udsBW);
- MXPR( BSIM_udsD0, BSIMx_udsD0);
- MXPR( BSIM_udsDL, BSIMx_udsDL);
- MXPR( BSIM_udsDW, BSIMx_udsDW);
- MXPR( BSIM_subthSlope0, BSIMx_subthSlope0);
- MXPR( BSIM_subthSlopeL, BSIMx_subthSlopeL);
- MXPR( BSIM_subthSlopeW, BSIMx_subthSlopeW);
- MXPR( BSIM_subthSlopeB0, BSIMx_subthSlopeB0);
- MXPR( BSIM_subthSlopeBL, BSIMx_subthSlopeBL);
- MXPR( BSIM_subthSlopeBW, BSIMx_subthSlopeBW);
- MXPR( BSIM_subthSlopeD0, BSIMx_subthSlopeD0);
- MXPR( BSIM_subthSlopeDL, BSIMx_subthSlopeDL);
- MXPR( BSIM_subthSlopeDW, BSIMx_subthSLopeDW);
- /* BSIM_oxideThickness, use M_tox */ /* unit: micron */
- MXPR( BSIM_temp, BSIMx_temp);
- MXPR( BSIM_vdd, BSIMx_vdd);
- MXPR( BSIM_xpart, BSIMx_xpart);
- MXPR( BSIM_defaultW, BSIMx_defaultW);
- MXPR( BSIM_deltaL, BSIMx_deltaL);
-
- /******************* USERS OF DEVICE EQUATIONS OPTION ***********************/
- /******** Add new model parameters after this line **********/
-
- /* !!!!!! The MXPR macro must be used here !!!!!! */
-
- /******** and before this line **********/
- };
-
- #ifdef M_DEVICE
-
- struct M_ M_default;
-
- #define BASE M_default
-
- struct Assoc M_Assoc[] = { /*IGNORE*/ /* for Pre-C */
- /******************* USERS OF DEVICE EQUATIONS OPTION ***********************/
- /******** This table is used by the read-in code to decode the **********/
- /******** .MODEL statements. The format is: **********/
-
- /******** element default parameter **********/
- /******** name value name **********/
- ASSOCIATE (M_level, 1, "*LEVEL"),
-
- /******** where "element name" is the name in the M_ structure **********/
- /******** above, "default value" is the value the parameter is **********/
- /******** given if it is not specified on the .MODEL statement, **********/
- /******** and "parameter name" is the name in the .MODEL that the **********/
- /******** read-in will associate with this parameter. If the **********/
- /******** "parameter name" starts with "*" then the the parameter **********/
- /******** will be included in the PSpice's model parameter **********/
- /******** printout whether or not it was defaulted. **********/
- ASSOCIATE (M_tpg, 1, "TPG" ),
- ASSOCIATE (M_l, OMITTED,"L" ),
- ASSOCIATE (M_w, OMITTED,"W" ),
- ASSOCIATE (M_ld, 0., "LD" ),
- ASSOCIATE (M_wd, 0., "WD" ),
- ASSOCIATE (M_vto, OMITTED,"*VTO" ), /* force print */
- ASSOCIATE (M_kp, OMITTED,"*KP" ), /* force print */
- ASSOCIATE (M_gamma,OMITTED,"GAMMA" ),
- ASSOCIATE (M_phi, OMITTED,"PHI" ),
- ASSOCIATE (M_lambda, 0., "LAMBDA"),
- ASSOCIATE (M_User_rd, 0., "RD" ),
- ASSOCIATE (M_User_rs, 0., "RS" ),
- ASSOCIATE (M_User_rg, 0., "RG" ),
- ASSOCIATE (M_User_rb, 0., "RB" ),
- ASSOCIATE (M_User_rds, 0., "RDS" ),
- ASSOCIATE (M_User_rsh, 0., "RSH" ),
- ASSOCIATE (M_is, 1E-14, "IS" ),
- ASSOCIATE (M_js, 0., "JS" ),
- ASSOCIATE (M_jssw, 0., "JSSW" ),
- ASSOCIATE (M_n, 1., "N" ),
- ASSOCIATE (M_pb, .8, "PB" ),
- ASSOCIATE (M_pbsw, OMITTED,"PBSW" ),
- ASSOCIATE (M_cbd, 0., "CBD" ),
- ASSOCIATE (M_cbs, 0., "CBS" ),
- ASSOCIATE (M_cj, 0., "CJ" ),
- ASSOCIATE (M_cjsw, 0., "CJSW" ),
- ASSOCIATE (M_mj, .5, "MJ" ),
- ASSOCIATE (M_mjsw, .33, "MJSW" ),
- ASSOCIATE (M_fc, .5, "FC" ),
- ASSOCIATE (M_tt, 0., "TT" ),
- ASSOCIATE (M_cgso, 0., "CGSO" ),
- ASSOCIATE (M_cgdo, 0., "CGDO" ),
- ASSOCIATE (M_cgbo, 0., "CGBO" ),
- ASSOCIATE (M_User_nsub, OMITTED,"NSUB" ),
- ASSOCIATE (M_User_nss, OMITTED,"NSS" ),
- ASSOCIATE (M_User_nfs, 0., "NFS" ),
- ASSOCIATE (M_tox, OMITTED,"TOX" ),
- ASSOCIATE (M_xj, 0., "XJ" ),
- ASSOCIATE (M_User_uo, 600., "UO" ),
- ASSOCIATE (M_User_ucrit, 1E4, "UCRIT" ),
- ASSOCIATE (M_uexp, 0., "UEXP" ),
- ASSOCIATE (M_utra, 0., "UTRA" ),
- ASSOCIATE (M_vmax, 0., "VMAX" ),
- ASSOCIATE (M_neff, 1., "NEFF" ),
- ASSOCIATE (M_xqc, 1., "XQC" ),
- ASSOCIATE (M_User_delta, 0., "DELTA" ),
- ASSOCIATE (M_theta, 0., "THETA" ),
- ASSOCIATE (M_User_eta, 0., "ETA" ),
- ASSOCIATE (M_kappa, .2, "KAPPA" ),
- ASSOCIATE (M_kf, 0., "KF" ),
- ASSOCIATE (M_af, 1., "AF" ),
-
- ASSOCIATE (BSIM_vfb0, 0., "VFB" ),/* Flat band voltage */
- ASSOCIATE (BSIM_vfbL, 0., "LVFB" ),/* Length dependence of vfb */
- ASSOCIATE (BSIM_vfbW, 0., "WVFB" ),/* Width dependence of vfb */
-
- ASSOCIATE (BSIM_phiL, 0., "LPHI" ),/* Length dependence of phi */
- ASSOCIATE (BSIM_phiW, 0., "WPHI" ),/* Width dependence of phi */
- ASSOCIATE (BSIM_K10, 0., "K1" ),/* Bulk effect coefficient 1 */
- ASSOCIATE (BSIM_K1L, 0., "LK1" ),/* Length dependence of k1 */
- ASSOCIATE (BSIM_K1W, 0., "WK1" ),/* Width dependence of k1 */
- ASSOCIATE (BSIM_K20, 0., "K2" ),/* Bulk effect coefficient 2 */
- ASSOCIATE (BSIM_K2L, 0., "LK2" ),/* Length dependence of k2 */
- ASSOCIATE (BSIM_K2W, 0., "WK2" ),/* Width dependence of k2 */
-
- ASSOCIATE (BSIM_etaL, 0., "LETA" ),/* Length dependence of eta */
- ASSOCIATE (BSIM_etaW, 0., "WETA" ),/* Width dependence of eta */
- ASSOCIATE (BSIM_etaB0, 0., "X2E" ),/* VBS dependence of eta */
- ASSOCIATE (BSIM_etaBL, 0., "LX2E" ),/* Length dependence of x2e */
- ASSOCIATE (BSIM_etaBW, 0., "WX2E" ),/* Width dependence of x2e */
- ASSOCIATE (BSIM_etaD0, 0., "X3E" ),/* VDS dependence of eta */
- ASSOCIATE (BSIM_etaDL, 0., "LX3E" ),/* Length dependence of x3e */
- ASSOCIATE (BSIM_etaDW, 0., "WX3E" ),/* Width dependence of x3e */
- ASSOCIATE (BSIM_mobZero, 0., "MUZ" ),/* Zero field mobility at VDS=0 VGS=VTH */
- ASSOCIATE (BSIM_mobZeroB0, 0., "X2MZ" ),/* VBS dependence of muz */
- ASSOCIATE (BSIM_mobZeroBL, 0., "LX2MZ" ),/* Length dependence of x2mz */
- ASSOCIATE (BSIM_mobZeroBW, 0., "WX2MZ" ),/* Width dependence of x2mz */
- ASSOCIATE (BSIM_mobVdd0, 0., "MUS" ),/* Mobility at VDS=VDD VGS=VTH, channel length modulation */
- ASSOCIATE (BSIM_mobVddL, 0., "LMUS" ),/* Length dependence of mus */
- ASSOCIATE (BSIM_mobVddW, 0., "WMUS" ),/* Width dependence of mus */
- ASSOCIATE (BSIM_mobVddB0, 0., "X2MS" ),/* VBS dependence of mus */
- ASSOCIATE (BSIM_mobVddBL, 0., "LX2MS" ),/* Length dependence of x2ms */
- ASSOCIATE (BSIM_mobVddBW, 0., "WX2MS" ),/* Width dependence of x2ms */
- ASSOCIATE (BSIM_mobVddD0, 0., "X3MS" ),/* VDS dependence of mus */
- ASSOCIATE (BSIM_mobVddDL, 0., "LX3MS" ),/* Length dependence of x3ms */
- ASSOCIATE (BSIM_mobVddDW, 0., "WX3MS" ),/* Width dependence of x3ms */
- ASSOCIATE (BSIM_ugs0, 0., "U0" ),/* VGS dependence of mobility */
- ASSOCIATE (BSIM_ugsL, 0., "LU0" ),/* Length dependence of u0 */
- ASSOCIATE (BSIM_ugsW, 0., "WU0" ),/* Width dependence of u0 */
- ASSOCIATE (BSIM_ugsB0, 0., "X2U0" ),/* VBS dependence of u0 */
- ASSOCIATE (BSIM_ugsBL, 0., "LX2U0" ),/* Length dependence of x2u0 */
- ASSOCIATE (BSIM_ugsBW, 0., "WX2U0" ),/* Width dependence of x2u0 */
- ASSOCIATE (BSIM_uds0, 0., "U1" ),/* VDS depence of mobility, velocity saturation */
- ASSOCIATE (BSIM_udsL, 0., "LU1" ),/* Length dependence of u1 */
- ASSOCIATE (BSIM_udsW, 0., "WU1" ),/* Width dependence of u1 */
- ASSOCIATE (BSIM_udsB0, 0., "X2U1" ),/* VBS depence of u1 */
- ASSOCIATE (BSIM_udsBL, 0., "LX2U1" ),/* Length depence of x2u1 */
- ASSOCIATE (BSIM_udsBW, 0., "WX2U1" ),/* Width depence of x2u1 */
- ASSOCIATE (BSIM_udsD0, 0., "X3U1" ),/* VDS depence of u1 */
- ASSOCIATE (BSIM_udsDL, 0., "LX3U1" ),/* Length dependence of x3u1 */
- ASSOCIATE (BSIM_udsDW, 0., "WX3U1" ),/* Width depence of x3u1 */
- ASSOCIATE (BSIM_subthSlope0, 0., "N0" ),/* Subthreshold slope */
- ASSOCIATE (BSIM_subthSlopeL, 0., "LN0" ),/* Length dependence of n0 */
- ASSOCIATE (BSIM_subthSlopeW, 0., "WN0" ),/* Width dependence of n0 */
- ASSOCIATE (BSIM_subthSlopeB0, 0., "NB" ),/* VBS dependence of subthreshold slope */
- ASSOCIATE (BSIM_subthSlopeBL, 0., "LNB" ),/* Length dependence of nb */
- ASSOCIATE (BSIM_subthSlopeBW, 0., "WNB" ),/* Width dependence of nb */
- ASSOCIATE (BSIM_subthSlopeD0, 0., "ND" ),/* VDS dependence of subthreshold slope */
- ASSOCIATE (BSIM_subthSlopeDL, 0., "LND" ),/* Length dependence of nd */
- ASSOCIATE (BSIM_subthSlopeDW, 0., "WND" ),/* Width dependence of nd */
- ASSOCIATE (BSIM_temp, 0., "TEMP" ),/* Temperature in degree Celcius */
- ASSOCIATE (BSIM_vdd, 0., "VDD" ),/* Supply voltage to specify mus */
- ASSOCIATE (BSIM_xpart, 0., "XPART" ),/* Flag for channel charge partitioning */
- ASSOCIATE (BSIM_deltaL, 0., "DELL" ),/* Length reduction of source drain diffusion */
-
- /******************* USERS OF DEVICE EQUATIONS OPTION ***********************/
- /******** Add new model parameters after this line **********/
-
- /******** and before this line **********/
- END_PARMS /*ENDIGNORE*/
- } ;
-
- #undef BASE
- #undef M_DEVICE
- #endif
-
- #ifdef UnAlias_Def
- static char *M_alias[] = {
- "DL", "LD",
- "DW", "WD",
- "WDF", "W",
- "" };
- #endif