// ****************************************************************************
// *  BSIM-CMG 111.0.0 released by Harshit Agarwal on 09/12/2019              *
// *  BSIM Common Multi-Gate Model (Verilog-A)                                *
// ****************************************************************************

// ****************************************************************************
// *  Copyright Â© 2019 University of California                               *
// *                                                                          *
// *  Project director: Prof. Chenming Hu                                     *
// *                                                                          *
// *  Current developers: Harshit Agarwal (Postdoc)                           *
// *                      Pragya Kushwaha (Postdoc)                           *
// *                      Avirup Dasgupta (Postdoc)                           *
// *                      Yen-Kai Lin (Ph.D. student)                         *
// *                      Ming-Yen Kao (Ph.D. student)                        *
// ****************************************************************************

/*
Licensed under Educational Community License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain a copy of the license at
http://opensource.org/licenses/ECL-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations
under the License.

BSIM-CMG model is supported by the members of Silicon Integration Initiative's Compact Model Coalition. A link to the most recent version of this
standard can be found at: http://www.si2.org/cmc 
*/

// Both model and instance parameters
`BPRco(L, 3.0e-8, "m", 1.0e-9, inf, "Designed gate length")
`BPRco(D, 4.0e-8, "m", 1.0e-9, inf, "Diameter of the cylinder (GEOMOD = 3)")
`BPRco(TFIN, 1.5e-8, "m", 1.0e-9, inf, "Fin thickness")
`BPRco(FPITCH, 8.0e-8, "m", TFIN, inf, "Fin pitch")
`BPRoz(NFIN, 1.0, "", "Number of fins per finger (real number enables optimization)")
`BPIcc(NGCON, 1, "", 1, 2, "Number of gate contact (1 or 2 sided)")
`BPRcz(ASEO, 0.0, "m^2", "Source-to-substrate overlap area through oxide")
`BPRcz(ADEO, 0.0, "m^2", "Drain-to-substrate overlap area through oxide")
`BPRcz(PSEO, 0.0, "m", "Perimeter of source-to-substrate overlap region through oxide")
`BPRcz(PDEO, 0.0, "m", "Perimeter of drain-to-substrate overlap region through oxide")
`BPRcz(ASEJ, 0.0, "m^2", "Source junction area (BULKMOD = 1 or 2)")
`BPRcz(ADEJ, 0.0, "m^2", "Drain junction area (BULKMOD = 1 or 2)")
`BPRcz(PSEJ, 0.0, "m", "Source-to-substrate PN junction perimeter (BULKMOD = 1 or 2)")
`BPRcz(PDEJ, 0.0, "m", "Drain-to-substrate PN junction perimeter (BULKMOD = 1 or 2)")
`BPRcz(CGSP, 0.0, "F/m", "Constant gate-to-source fringe capacitance (CGEOMOD = 1)")
`BPRcz(CGDP, 0.0, "F/m", "Constant gate-to-drain fringe capacitance (CGEOMOD = 1)")
`BPRcz(CDSP, 0.0, "F", "Constant drain-to-source fringe capacitance (all CGEOMOD)")
`BPRcz(NRS, 0.0, "", "Number of source diffusion squares")
`BPRcz(NRD, 0.0, "", "Number of source diffusion squares")
`BPRoz(LRSD, L, "m", "Length of the source/drain")
`BPRcz(NFINNOM, 0.0, "", "If non-zero, nominal number of fins per finger")
`BPRnb(DTEMP, 0.0, "degC", "Variability in device temperature")
`BPRnb(DELVTRAND, 0.0, "V", "Variability in Vth")
`BPRoz(U0MULT, 1.0, "", "Variability in carrier mobility")
`BPRcz(IDS0MULT, 1.0, "", "Variability in drain current for miscellaneous reasons")
`BPRcz(IGC0MULT, 1.0, "", "Gate to channel current scale factor")
`BPRcz(IGB0MULT, 1.0, "", "Gate to body current scale factor")


`BPRcz(COVS, 0.0, "F/m", "Constant gate-to-source overlap capacitance (CGEOMOD = 1)")
`BPRnb(LCOVS, 0.0, "F", "L-term of COVS")
`BPRnb(NCOVS, 0.0, "F/m", "N-term of COVS")
`BPRnb(PCOVS, 0.0, "F", "P-term of COVS")

`BPRcz(COVD, COVS, "F/m", "Constant gate-to-drain overlap capacitance (CGEOMOD = 1)")
`BPRnb(LCOVD, LCOVS, "F", "L-term of COVD")
`BPRnb(NCOVD, NCOVS, "F/m", "N-term of COVD")
`BPRnb(PCOVD, PCOVS, "F", "P-term of COVD")

// Pure instance parameters
`IPIco(NF, 1, "", 1, inf, "Number of fingers")

// Pure model parameters
`MPIcc(TYPE, `ntype, "", `ptype, `ntype, "1: NMOS; -1: PMOS")
`MPIcc(BULKMOD, 0, "", 0, 2, "0: SOI multi-gate; 1: Bulk multi-gate; 2: for decoupled bulk multi-gate")
`MPIcc(GEOMOD, 0, "", 0, 4, "0: Double gate; 1: Triple gate; 2: Quadruple gate; 3: Cylindrical gate; 4: Unified fin Shape")
`MPIcc(CGEO1SW, 0, "", 0, 1, "For CGEOMOD = 1 only, this switch enables the parameters COVS, COVD, CGSP, and CGDP to be in F per fin, per gate-finger, per unit channel width")
`MPIcc(RDSMOD, 0, "", 0, 2, "0: Bias-dependent S/D resistances internal and bias-independent S/D resistances external, 1: Both bias-dependent and independent of S/D resistances external, 2: Both bias-dependent and independent of S/D resistances internal")
`MPIcc(ASYMMOD, 0, "", 0, 1, "0: Turn off asymmetry model - forward mode parameters used; 1: Turn on asymmetry model")
`MPIcc(IGCMOD, 0, "", 0, 1, "0: Turn off Igc, Igs and Igd; 1: Turn on Igc, Igs and Igd")
`MPIcc(IGBMOD, 0, "", 0, 1, "0: Turn off Igb; 1: Turn on Igb")
`MPIcc(GIDLMOD, 0, "", 0, 1, "0: Turn off GIDL/GISL current; 1: Turn on GIDL/GISL current")
`MPIcc(IIMOD, 0, "", 0, 2, "0: Turn off impact ionization current; 1: BSIM4-based model; 2: BSIMSOI-based model")
`MPIcc(TNOIMOD, 0, "", 0, 1, "0: Charge-based, 1: Correlated thermal noise model")
`MPIcc(NQSMOD, 0, "", 0, 2, "0: Turn off NQS model; 1: NQS gate resistance (with gi node); 2: NQS charge deficit model from BSIM4 (with q node)")
`MPIcc(SHMOD, 0, "", 0, 1, "0: Turn off self-heating; 1: Turn on self-heating")
`MPIcc(TEMPMOD, 0, "", 0, 1, "1: Change temperature dependence of specific parameters")
`MPIcc(RGATEMOD, 0, "", 0, 1, "0: Turn off gate electrode resistance (without ge node); 1: Turn on gate electrode resistance (with ge node)")
`MPIcc(RGEOMOD, 0, "", 0, 1, "Geometry-dependent source/drain resistance; 0: RSH-based; 1: Holistic")
`MPIcc(CGEOMOD, 0, "", 0, 2, "Geometry-dependent parasitic capacitance model selector")
`MPIcc(SH_WARN, 0, "", 0, 1, "0: Disable self-heating warnings; 1: Enable self-heating warnings")
`MPIcc(IGCLAMP, 1, "", 0, 1, "0: Disable gate current clamps; 1: Enable gate current clamps")
`MPRnb(LL, 0.0, "m^(LLN+1)", "Length reduction parameter (dopant diffusion effect)")
`MPRnb(LLN, 1.0, "", "Length reduction parameter (dopant diffusion effect)")
`MPRnb(DLC, 0.0, "m", "Delta L for C-V model")
`MPRnb(DLCACC, 0.0, "m", "Delta L for C-V model in accumulation region (BULKMOD = 1 or 2)")
`MPRnb(LLC, 0.0, "m^(LLN+1)", "Length reduction parameter (dopant diffusion effect)")
`MPRco(EOT, 1.0e-9, "m", 1.0e-10, inf, "Equivalent oxide thickness")
`MPRco(TOXP, 1.2e-9, "m", 1.0e-10, inf, "Physical oxide thickness")
`MPRco(EOTBOX, 1.4e-7, "m", 1.0e-9, inf, "Equivalent oxide thickness of the buried oxide (SOI FinFET)")
`MPRco(HFIN, 3.0e-8, "m", 1.0e-9, inf, "Fin height")
`MPRcz(FECH, 1.0, "", "End-channel factor for different orientation/shape")
`MPRnb(DELTAW, 0.0, "m", "Change of effective width due to shape of fin/cylinder")
`MPRcz(FECHCV, 1.0, "", "CV end-channel factor for different orientation/shape")
`MPRnb(DELTAWCV, 0.0, "m", "CV change of effective width due to shape of fin/cylinder")
`MPRnb(NBODYN1, 0.0, "", "NFIN dependence of channel (body) doping")
`MPRex(NBODYN2, 1.0e5, "", 0.0, "NFIN dependence of channel (body) doping")
`MPRcc(NSD, 2.0e26, "/m^3", 2.0e25, 1.0e27, "Source/drain active doping concentration")
`MPRnb(PHIGL, 0.0, "eV/m", "Length dependence of gate workfunction")
`MPRnb(PHIGLT, 0.0, "/m", "Coupled NFIN and length dependence of gate workfunction")
`MPRnb(PHIGN1, 0.0, "", "NFIN dependence of gate workfunction")
`MPRex(PHIGN2, 1.0e5, "", 0.0, "NFIN dependence of gate workfunction")
`MPRco(EPSROX, 3.9, "", 1.0, inf, "Relative dielectric constant of the gate dielectric")
`MPRco(EPSRSUB, 11.9, "", 1.0, inf, "Relative dielectric constant of the channel material")
`MPRcz(EASUB, 4.05, "eV", "Electron affinity of substrate")
`MPRnb(NI0SUB, 1.1e16, "/m^3", "Intrinsic carrier constant at 300.15K")
`MPRnb(BG0SUB, 1.12, "eV", "Bandgap of substrate at 300.15K")
`MPRnb(NC0SUB, 2.86e25, "/m^3", "Conduction band density of states")
`MPRoz(IMIN, 1.0e-15, "A/m^2", "Parameter for Vgs clamping for inversion region calculation in accumulation")

`MPRnb(XL, 0.0, "m", "L offset for channel length due to mask/etch effect")
`MPRnb(LXL, 0.0, "m^2", "L-term of XL")
`MPRnb(NXL, 0.0, "m", "N-term of XL")
`MPRnb(PXL, 0.0, "m^2", "P-term of XL")

`MPRnb(LINT, 0.0, "m", "Length reduction parameter (dopant diffusion effect)")
`MPRnb(LLINT, 0.0, "m^2", "L-term of LINT")
`MPRnb(NLINT, 0.0, "m", "N-term of LINT")
`MPRnb(PLINT, 0.0, "m^2", "P-term of LINT")

`MPRnb(DLBIN, 0.0, "m", "Delta L for binning")
`MPRnb(LDLBIN, 0.0, "m^2", "L-term of DLBIN")
`MPRnb(NDLBIN, 0.0, "m", "N-term of DLBIN")
`MPRnb(PDLBIN, 0.0, "m^2", "P-term of DLBIN")

`MPRnb(NBODY, 1.0e22, "/m^3", "Channel (body) doping")
`MPRnb(LNBODY, 0.0, "/m^2", "L-term of NBODY")
`MPRnb(NNBODY, 0.0, "/m^3", "N-term of NBODY")
`MPRnb(PNBODY, 0.0, "/m^2", "P-term of NBODY")

`MPRcz(PHIG, 4.61, "eV", "Gate workfunction")
`MPRnb(LPHIG, 0.0, "m*eV", "L-term of PHIG")
`MPRnb(NPHIG, 0.0, "eV", "N-term of PHIG")
`MPRnb(PPHIG, 0.0, "m*eV", "P-term of PHIG")

`MPRnb(NGATE, 0.0, "/m^3", "Parameter for poly gate doping. For metal gate please set NGATE = 0")
`MPRnb(LNGATE, 0.0, "/m^2", "L-term of NGATE")
`MPRnb(NNGATE, 0.0, "/m^3", "N-term of NGATE")
`MPRnb(PNGATE, 0.0, "/m^2", "P-term of NGATE")

// Short channel effects
`MPRnb(CDSCN1, 0.0, "", "NFIN dependence of CDSC")
`MPRex(CDSCN2, 1.0e5, "", 0.0, "NFIN dependence of CDSC")
`MPRnb(CDSCDN1, 0.0, "", "NFIN dependence of CDSCD")
`MPRex(CDSCDN2, 1.0e5, "", 0.0, "NFIN dependence of CDSCD")
`MPRnb(CDSCDRN1, CDSCDN1, "", "NFIN dependence of CDSCD")
`MPRex(CDSCDRN2, CDSCDN2, "", 0.0, "NFIN dependence of CDSCD")
`MPRnb(ETA0N1, 0.0, "", "NFIN dependence of ETA0")
`MPRco(ETA0N2, 1.0e5, "", 1.0e-5, inf, "NFIN dependence of ETA0")
`MPRnb(ETA0LT, 0.0, "/m", "Coupled NFIN and length dependence of ETA0")
`MPRnb(TETA0, 0.0, "/K", "Temperature dependence of DIBL coefficient")
`MPRnb(TETA0R, TETA0, "/K", "Temperature dependence of reverse-mode DIBL coefficient")
`MPRnb(ADVTP0, 0.0, "", "Pre-exponential coefficient for DITS")
`MPRex(BDVTP0, 1.0e-7, "", 0.0, "Exponential coefficient for DITS")
`MPRnb(ADVTP1, 0.0, "", "Pre-exponential coefficient for DVTP1")
`MPRex(BDVTP1, 1.0e-7, "", 0.0, "Exponential coefficient for DVTP1")
`MPRnb(DVTP2, 0.0, "", "DITS model parameter")
`MPRnb(THETASCE, 0.0, "", "User-designated Vth roll-off length dependence.")
`MPRnb(THETADIBL, 0.0, "", "User-designated DIBL length dependence.")
`MPRnb(THETASW, 0.0, "", "User-designated subthreshold swing length dependence.")
`MPRcz(NVTM, 0.0, "V", "If non-zero, subthreshold swing factor multiplied by Vtm.")

`MPRnb(DVTP0, 0.0, "", "Coefficient for drain-induced Vth shift (DITS)")
`MPRnb(LDVTP0, 0.0, "", "L-term of DVTP0")
`MPRnb(NDVTP0, 0.0, "", "N-term of DVTP0")
`MPRnb(PDVTP0, 0.0, "", "P-term of DVTP0")

`MPRnb(DVTP1, 0.0, "", "DITS exponent coefficient")
`MPRnb(LDVTP1, 0.0, "", "L-term of DVTP1")
`MPRnb(NDVTP1, 0.0, "", "N-term of DVTP1")
`MPRnb(PDVTP1, 0.0, "", "P-term of DVTP1")

`MPRnb(CIT, 0.0, "F/m^2", "Parameter for interface traps")
`MPRnb(LCIT, 0.0, "F/m", "L-term of CIT")
`MPRnb(NCIT, 0.0, "F/m^2", "N-term of CIT")
`MPRnb(PCIT, 0.0, "F/m", "P-term of CIT")

`MPRnb(CITR, CIT, "F/m^2", "Parameter for interface traps in reverse mode for asymmetric model")
`MPRnb(LCITR, LCIT, "F/m", "L-term of CITR")
`MPRnb(NCITR, NCIT, "F/m^2", "N-term of CITR")
`MPRnb(PCITR, PCIT, "F/m", "P-term of CITR")

`MPRnb(CDSC, 7.0e-3, "F/m^2", "Coupling capacitance between S/D and channel")
`MPRnb(LCDSC, 0.0, "F/m", "L-term of CDSC")
`MPRnb(NCDSC, 0.0, "F/m^2", "N-term of CDSC")
`MPRnb(PCDSC, 0.0, "F/m", "P-term of CDSC")

`MPRnb(CDSCD, 7.0e-3, "F/m^2", "Drain-bias sensitivity of CDSC")
`MPRnb(LCDSCD, 0.0, "F/m", "L-term of CDSCD")
`MPRnb(NCDSCD, 0.0, "F/m^2", "N-term of CDSCD")
`MPRnb(PCDSCD, 0.0, "F/m", "P-term of CDSCD")

`MPRnb(CDSCDR, CDSCD, "F/m^2", "Reverse-mode drain-bias sensitivity of CDSC")
`MPRnb(LCDSCDR, LCDSCD, "F/m", "L-term of CDSCDR")
`MPRnb(NCDSCDR, NCDSCD, "F/m^2", "N-term of CDSCDR")
`MPRnb(PCDSCDR, PCDSCD, "F/m", "P-term of CDSCDR")

`MPRnb(DVT0, 0.0, "", "SCE coefficient")
`MPRnb(LDVT0, 0.0, "m", "L-term of DVT0")
`MPRnb(NDVT0, 0.0, "", "N-term of DVT0")
`MPRnb(PDVT0, 0.0, "m", "P-term of DVT0")

`MPRnb(DVT1, 0.6, "", "SCE exponent coefficient. After binning it should be within (0 : inf)")
`MPRnb(LDVT1, 0.0, "m", "L-term of DVT1")
`MPRnb(NDVT1, 0.0, "", "N-term of DVT1")
`MPRnb(PDVT1, 0.0, "m", "P-term of DVT1")

`MPRnb(DVT1SS, DVT1, "", "Subthreshold swing exponent coefficient. After binning it should be within (0 : inf)")
`MPRnb(LDVT1SS, LDVT1, "m", "L-term of DVT1SS")
`MPRnb(NDVT1SS, NDVT1, "", "N-term of DVT1SS")
`MPRnb(PDVT1SS, PDVT1, "m", "P-term of DVT1SS")

`MPRnb(PHIN, 0.05, "V", "Nonuniform vertical doping effect on surface potential")
`MPRnb(LPHIN, 0.0, "m*V", "L-term of PHIN")
`MPRnb(NPHIN, 0.0, "V", "N-term of PHIN")
`MPRnb(PPHIN, 0.0, "m*V", "P-term of PHIN")

`MPRnb(ETA0, 0.6, "", "DIBL coefficient")
`MPRnb(LETA0, 0.0, "m", "L-term of ETA0")
`MPRnb(NETA0, 0.0, "", "N-term of ETA0")
`MPRnb(PETA0, 0.0, "m", "P-term of ETA0")

`MPRnb(ETA0R, ETA0, "", "Reverse-mode DIBL coefficient")
`MPRnb(LETA0R, LETA0, "m", "L-term of ETA0R")
`MPRnb(NETA0R, NETA0, "", "N-term of ETA0R")
`MPRnb(PETA0R, PETA0, "m", "P-term of ETA0R")

`MPRnb(DSUB, 1.06, "", "DIBL exponent coefficient")
`MPRnb(LDSUB, 0.0, "m", "L-term of DSUB")
`MPRnb(NDSUB, 0.0, "", "N-term of DSUB")
`MPRnb(PDSUB, 0.0, "m", "P-term of DSUB")

`MPRnb(K1RSCE, 0.0, "V^0.5", "K1 for reverse short channel effect calculation")
`MPRnb(LK1RSCE, 0.0, "m*V^0.5", "L-term of K1RSCE")
`MPRnb(NK1RSCE, 0.0, "V^0.5", "N-term of K1RSCE")
`MPRnb(PK1RSCE, 0.0, "m*V^0.5", "P-term of K1RSCE")

`MPRnb(LPE0, 5.0e-9, "m", "Equivalent length of pocket region at zero bias")
`MPRnb(LLPE0, 0.0, "m^2", "L-term of LPE0")
`MPRnb(NLPE0, 0.0, "m", "N-term of LPE0")
`MPRnb(PLPE0, 0.0, "m^2", "P-term of LPE0")

`MPRnb(DVTSHIFT, 0.0, "V", "Vth shift handle")
`MPRnb(LDVTSHIFT, 0.0, "m*V", "L-term of DVTSHIFT")
`MPRnb(NDVTSHIFT, 0.0, "V", "N-term of DVTSHIFT")
`MPRnb(PDVTSHIFT, 0.0, "m*V", "P-term of DVTSHIFT")

`MPRnb(DVTSHIFTR, DVTSHIFT, "V", "Vth shift handle for asymmetric mode")
`MPRnb(LDVTSHIFTR, LDVTSHIFT, "m*V", "L-term of DVTSHIFTR")
`MPRnb(NDVTSHIFTR, NDVTSHIFT, "V", "N-term of DVTSHIFTR")
`MPRnb(PDVTSHIFTR, PDVTSHIFT, "m*V", "P-term of DVTSHIFTR")

// Lateral non-uniform doping effect (Vth shift between I-V and C-V)
`MPRnb(K0, 0.0, "V", "Lateral NUD voltage parameter")
`MPRnb(LK0, 0.0, "m*V", "L-term of K0")
`MPRnb(NK0, 0.0, "V", "N-term of K0")
`MPRnb(PK0, 0.0, "m*V", "P-term of K0")

`MPRnb(K01, 0.0, "V/K", "Temperature dependence of lateral NUD voltage parameter")
`MPRnb(LK01, 0.0, "(m*V)/K", "L-term of K01")
`MPRnb(NK01, 0.0, "V/K", "N-term of K01")
`MPRnb(PK01, 0.0, "(m*V)/K", "P-term of K01")

`MPRnb(K0SI, 1.0, "", "Correction factor for strong inversion used in Mnud. After binning it should be within (0 : inf)")
`MPRnb(LK0SI, 0.0, "m", "L-term of K0SI")
`MPRnb(NK0SI, 0.0, "", "N-term of K0SI")
`MPRnb(PK0SI, 0.0, "m", "P-term of K0SI")

`MPRnb(K0SI1, 0.0, "/K", "Temperature dependence of K0SI")
`MPRnb(LK0SI1, 0.0, "m/K", "L-term of K0SI1")
`MPRnb(NK0SI1, 0.0, "/K", "N-term of K0SI1")
`MPRnb(PK0SI1, 0.0, "m/K", "P-term of K0SI1")

`MPRnb(K2SI, K0SI, "", "Correction factor for strong inversion used in Mob")
`MPRnb(LK2SI, LK0SI, "m", "L-term of K2SI")
`MPRnb(NK2SI, NK0SI, "", "N-term of K2SI")
`MPRnb(PK2SI, PK0SI, "m", "P-term of K2SI")

`MPRnb(K2SI1, K0SI1, "/K", "Temperature dependence of K2SI")
`MPRnb(LK2SI1, LK0SI1, "m/K", "L-term of K2SI1")
`MPRnb(NK2SI1, NK0SI1, "/K", "N-term of K2SI1")
`MPRnb(PK2SI1, PK0SI1, "m/K", "P-term of K2SI1")

`MPRnb(K0SISAT, 0.0, "", "Correction factor for strong inversion used in Mnud")
`MPRnb(LK0SISAT, 0.0, "m", "L-term of K0SISAT")
`MPRnb(NK0SISAT, 0.0, "", "N-term of K0SISAT")
`MPRnb(PK0SISAT, 0.0, "m", "P-term of K0SISAT")

`MPRnb(K0SISAT1, 0.0, "", "Temperature dependence of K0SISAT")
`MPRnb(LK0SISAT1, 0.0, "m", "L-term of K0SISAT1")
`MPRnb(NK0SISAT1, 0.0, "", "N-term of K0SISAT1")
`MPRnb(PK0SISAT1, 0.0, "m", "P-term of K0SISAT1")

`MPRnb(K2SISAT, K0SISAT, "", "Correction factor for strong inversion used in Mob")
`MPRnb(LK2SISAT, LK0SISAT, "m", "L-term of K2SISAT")
`MPRnb(NK2SISAT, NK0SISAT, "", "N-term of K2SISAT")
`MPRnb(PK2SISAT, PK0SISAT, "m", "P-term of K2SISAT")

`MPRnb(K2SISAT1, K0SISAT1, "", "Temperature dependence of K2SISAT")
`MPRnb(LK2SISAT1, LK0SISAT1, "m", "L-term of K2SISAT1")
`MPRnb(NK2SISAT1, NK0SISAT1, "", "N-term of K2SISAT1")
`MPRnb(PK2SISAT1, PK0SISAT1, "m", "P-term of K2SISAT1")

// Body effect for bulk substrate
`MPRnb(PHIBE, 0.7, "V", "Body effect voltage parameter. After binning it should be within [0.2 : 1.2]")
`MPRnb(LPHIBE, 0.0, "m*V", "L-term of PHIBE")
`MPRnb(NPHIBE, 0.0, "V", "N-term of PHIBE")
`MPRnb(PPHIBE, 0.0, "m*V", "P-term of PHIBE")

`MPRco(K1, 1.0e-6, "V^0.5", 1.0e-6, inf, "Body effect coefficient for subthreshold region")
`MPRnb(LK1, 0.0, "m*V^0.5", "L-term of K1")
`MPRnb(NK1, 0.0, "V^0.5", "N-term of K1")
`MPRnb(PK1, 0.0, "m*V^0.5", "P-term of K1")

`MPRnb(K11, 0.0, "V^0.5/K", "Temperature dependence of K1")
`MPRnb(LK11, 0.0, "m*V^0.5/K", "L-term of K11")
`MPRnb(NK11, 0.0, "V^0.5/K", "N-term of K11")
`MPRnb(PK11, 0.0, "m*V^0.5/K", "P-term of K11")

`MPRnb(K2SAT, 0.0, "", "Correction factor for K2 in saturation (high Vds)")
`MPRnb(LK2SAT, 0.0, "m", "L-term of K2SAT")
`MPRnb(NK2SAT, 0.0, "", "N-term of K2SAT")
`MPRnb(PK2SAT, 0.0, "m", "P-term of K2SAT")

`MPRnb(K2SAT1, 0.0, "", "Temperature dependence of K2SAT")
`MPRnb(LK2SAT1, 0.0, "m", "L-term of K2SAT1")
`MPRnb(NK2SAT1, 0.0, "", "N-term of K2SAT1")
`MPRnb(PK2SAT1, 0.0, "m", "P-term of K2SAT1")

`MPRnb(K2, 0.0, "", "Body effect coefficient for BULKMOD = 2")
`MPRnb(LK2, 0.0, "m", "L-term of K2")
`MPRnb(NK2, 0.0, "", "N-term of K2")
`MPRnb(PK2, 0.0, "m", "P-term of K2")

`MPRnb(K21, 0.0, "", "Temperature dependence of K2")
`MPRnb(LK21, 0.0, "m", "L-term of K21")
`MPRnb(NK21, 0.0, "", "N-term of K21")
`MPRnb(PK21, 0.0, "m", "P-term of K21")

// Quantum mechanical effect
`MPRnb(AQMTCEN, 0.0, "", "Parameter for geometric dependence of Tcen on R/TFIN/HFIN")
`MPRex(BQMTCEN, 1.2e-8, "", 0.0, "Parameter for geometric dependence of Tcen on R/TFIN/HFIN")
`MPRnb(ETAQM, 0.54, "", "Bulk charge coefficient for Tcen")
`MPRoz(QM0, 1.0e-3, "V", "Knee-point for Tcen in inversion (Charge normalized to Cox)")
`MPRnb(PQM, 0.66, "", "Slope of normalized Tcen in inversion")
`MPRoz(QM0ACC, 1.0e-3, "V", "Knee-point for Tcen in accumulation (Charge normalized to Cox)")
`MPRnb(PQMACC, 0.66, "", "Slope of normalized Tcen in accumulation")

`MPRnb(QMFACTOR, 0.0, "", "Prefactor + switch for QM Vth correction")
`MPRnb(LQMFACTOR, 0.0, "m", "L-term of QMFACTOR")
`MPRnb(NQMFACTOR, 0.0, "", "N-term of QMFACTOR")
`MPRnb(PQMFACTOR, 0.0, "m", "P-term of QMFACTOR")

`MPRnb(QMTCENCV, 0.0, "", "Prefactor + switch for QM Width and Toxeff correction for CV")
`MPRnb(LQMTCENCV, 0.0, "m", "L-term of QMTCENCV")
`MPRnb(NQMTCENCV, 0.0, "", "N-term of QMTCENCV")
`MPRnb(PQMTCENCV, 0.0, "m", "P-term of QMTCENCV")

`MPRnb(QMTCENCVA, 0.0, "", "Prefactor + switch for QM Width and Toxeff correction for CV (accumulation region)")
`MPRnb(LQMTCENCVA, 0.0, "m", "L-term of QMTCENCVA")
`MPRnb(NQMTCENCVA, 0.0, "", "N-term of QMTCENCVA")
`MPRnb(PQMTCENCVA, 0.0, "m", "P-term of QMTCENCVA")

// Velocity saturation model
`MPRnb(VSATN1, 0.0, "", "NFIN dependence of VSAT")
`MPRex(VSATN2, 1.0e5, "", 0.0, "NFIN dependence of VSAT")
`MPRnb(VSATRN1, VSATN1, "", "NFIN dependence of VSATR")
`MPRex(VSATRN2, VSATN2, "", 0.0, "NFIN dependence of VSATR")
`MPRnb(AVSAT, 0.0, "", "Pre-exponential coefficient for VSAT")
`MPRex(BVSAT, 1.0e-7, "", 0.0, "Exponential coefficient for VSAT")
`MPRnb(VSAT1N1, VSATN1, "", "NFIN dependence of VSAT1")
`MPRex(VSAT1N2, VSATN2, "", 0.0, "NFIN dependence of VSAT1")
`MPRnb(VSAT1RN1, VSAT1N1, "", "NFIN dependence of VSAT1R")
`MPRex(VSAT1RN2, VSAT1N2, "", 0.0, "NFIN dependence of VSAT1R")
`MPRnb(AVSAT1, AVSAT, "", "Pre-exponential coefficient for VSAT1")
`MPRex(BVSAT1, BVSAT, "", 0.0, "Exponential coefficient for VSAT1")
`MPRnb(APSAT, 0.0, "", "Pre-exponential coefficient for PSAT")
`MPRex(BPSAT, 1.0, "", 0.0, "Exponential coefficient for PSAT")
`MPRnb(AVSATCV, AVSAT, "", "Pre-exponential coefficient for VSATCV")
`MPRex(BVSATCV, BVSAT, "", 0.0, "Exponential coefficient for VSATCV")
`MPRnb(APSATCV, APSAT, "", "Pre-exponential coefficient for PSATCV")
`MPRex(BPSATCV, BPSAT, "", 0.0, "Exponential coefficient for PSATCV")
`MPRnb(AMEXP, 0.0, "", "Pre-exponential coefficient for MEXP")
`MPRnb(BMEXP, 1.0, "", "Exponential coefficient for MEXP")
`MPRnb(AMEXPR, AMEXP, "", "Pre-exponential coefficient for MEXPR")
`MPRnb(BMEXPR, BMEXP, "", "Exponential coefficient for MEXPR")
`MPRnb(APTWG, 0.0, "", "Pre-exponential coefficient for PTWG")
`MPRex(BPTWG, 1.0e-7, "", 0.0, "Exponential coefficient for PTWG")
`MPRnb(TMEXP, 0.0, "/K", "Temperature coefficient for Vdseff smoothing")
`MPRnb(TMEXPR, TMEXP, "/K", "Reverse-mode temperature coefficient for Vdseff smoothing")
`MPRco(DVSATCLAMP, 0.01, "m", 0.01, inf, "Minimum clamp on Dvsat")

`MPRnb(VSAT, 8.5e4, "m/s", "Saturation velocity for the saturation region")
`MPRnb(LVSAT, 0.0, "m^2/s", "L-term of VSAT")
`MPRnb(NVSAT, 0.0, "m/s", "N-term of VSAT")
`MPRnb(PVSAT, 0.0, "m^2/s", "P-term of VSAT")

`MPRnb(VSATR, VSAT, "m/s", "Saturation velocity for the saturation region in the reverse mode")
`MPRnb(LVSATR, LVSAT, "m^2/s", "L-term of VSATR")
`MPRnb(NVSATR, NVSAT, "m/s", "N-term of VSATR")
`MPRnb(PVSATR, PVSAT, "m^2/s", "P-term of VSATR")

`MPRnb(VSAT1, VSAT, "m/s", "Velocity saturation parameter for Ion degradation - forward mode")
`MPRnb(LVSAT1, LVSAT, "m^2/s", "L-term of VSAT1")
`MPRnb(NVSAT1, NVSAT, "m/s", "N-term of VSAT1")
`MPRnb(PVSAT1, PVSAT, "m^2/s", "P-term of VSAT1")

`MPRnb(VSAT1R, VSAT1, "m/s", "Velocity saturation parameter for Ion degradation - reverse mode")
`MPRnb(LVSAT1R, LVSAT1, "m^2/s", "L-term of VSAT1R")
`MPRnb(NVSAT1R, NVSAT1, "m/s", "N-term of VSAT1R")
`MPRnb(PVSAT1R, PVSAT1, "m^2/s", "P-term of VSAT1R")

`MPRnb(DELTAVSAT, 1.0, "", "velocity saturation parameter in the linear region")
`MPRnb(LDELTAVSAT, 0.0, "m", "L-term of DELTAVSAT")
`MPRnb(NDELTAVSAT, 0.0, "", "N-term of DELTAVSAT")
`MPRnb(PDELTAVSAT, 0.0, "m", "P-term of DELTAVSAT")

`MPRnb(PSAT, 2.0, "", "Velocity saturation exponent, after binning should be from [2.0 : inf)")
`MPRnb(LPSAT, 0.0, "m", "L-term of PSAT")
`MPRnb(NPSAT, 0.0, "", "N-term of PSAT")
`MPRnb(PPSAT, 0.0, "m", "P-term of PSAT")

`MPRnb(KSATIV, 1.0, "", "Parameter for long channel Vdsat")
`MPRnb(LKSATIV, 0.0, "m", "L-term of KSATIV")
`MPRnb(NKSATIV, 0.0, "", "N-term of KSATIV")
`MPRnb(PKSATIV, 0.0, "m", "P-term of KSATIV")

`MPRnb(KSATIVR, KSATIV, "", "KSATIV in asymmetric mode")
`MPRnb(LKSATIVR, LKSATIV, "m", "L-term of KSATIVR")
`MPRnb(NKSATIVR, NKSATIV, "", "N-term of KSATIVR")
`MPRnb(PKSATIVR, PKSATIV, "m", "P-term of KSATIVR")

`MPRnb(VSATCV, VSAT, "m/s", "Velocity saturation parameter for CV")
`MPRnb(LVSATCV, LVSAT, "m^2/s", "L-term of VSATCV")
`MPRnb(NVSATCV, NVSAT, "m/s", "N-term of VSATCV")
`MPRnb(PVSATCV, PVSAT, "m^2/s", "P-term of VSATCV")

`MPRnb(DELTAVSATCV, DELTAVSAT, "", "Velocity saturation parameter in the linear region for the capacitance model")
`MPRnb(LDELTAVSATCV, LDELTAVSAT, "m", "L-term of DELTAVSATCV")
`MPRnb(NDELTAVSATCV, NDELTAVSAT, "", "N-term of DELTAVSATCV")
`MPRnb(PDELTAVSATCV, PDELTAVSAT, "m", "P-term of DELTAVSATCV")

`MPRnb(PSATCV, PSAT, "", "Velocity saturation exponent for C-V")
`MPRnb(LPSATCV, LPSAT, "m", "L-term of PSATCV")
`MPRnb(NPSATCV, NPSAT, "", "N-term of PSATCV")
`MPRnb(PPSATCV, PPSAT, "m", "P-term of PSATCV")

`MPRnb(MEXP, 4.0, "", "Smoothing function factor for Vdsat")
`MPRnb(LMEXP, 0.0, "m", "L-term of MEXP")
`MPRnb(NMEXP, 0.0, "", "N-term of MEXP")
`MPRnb(PMEXP, 0.0, "m", "P-term of MEXP")

`MPRnb(MEXPR, MEXP, "", "Reverse-mode smoothing function factor for Vdsat")
`MPRnb(LMEXPR, LMEXP, "m", "L-term of MEXPR")
`MPRnb(NMEXPR, NMEXP, "", "N-term of MEXPR")
`MPRnb(PMEXPR, PMEXP, "m", "P-term of MEXPR")

`MPRnb(PTWG, 0.0, "/V^2", "Gmsat degradation parameter - forward mode")
`MPRnb(LPTWG, 0.0, "m/V^2", "L-term of PTWG")
`MPRnb(NPTWG, 0.0, "/V^2", "N-term of PTWG")
`MPRnb(PPTWG, 0.0, "m/V^2", "P-term of PTWG")

`MPRnb(PTWGR, PTWG, "/V^2", "Gmsat degradation parameter - reverse mode")
`MPRnb(LPTWGR, LPTWG, "m/V^2", "L-term of PTWGR")
`MPRnb(NPTWGR, NPTWG, "/V^2", "N-term of PTWGR")
`MPRnb(PPTWGR, PPTWG, "m/V^2", "P-term of PTWGR")

`MPRnb(AT, -1.56e-3, "/K", "Saturation velocity temperature coefficient")
`MPRnb(LAT, 0.0, "m/K", "L-term of AT")
`MPRnb(NAT, 0.0, "/K", "N-term of AT")
`MPRnb(PAT, 0.0, "m/K", "P-term of AT")

`MPRnb(ATR, AT, "/K", "Reverse-mode saturation velocity temperature coefficient")
`MPRnb(LATR, LAT, "m/K", "L-term of ATR")
`MPRnb(NATR, NAT, "/K", "N-term of ATR")
`MPRnb(PATR, PAT, "m/K", "P-term of ATR")

`MPRnb(ATCV, AT, "/K", "Saturation velocity temperature coefficient for CV")
`MPRnb(LATCV, LAT, "m/K", "L-term of ATCV")
`MPRnb(NATCV, NAT, "/K", "N-term of ATCV")
`MPRnb(PATCV, PAT, "m/K", "P-term of ATCV")

`MPRnb(PTWGT, 4.0e-3, "/K", "PTWG temperature coefficient")
`MPRnb(LPTWGT, 0.0, "m/K", "L-term of PTWGT")
`MPRnb(NPTWGT, 0.0, "/K", "N-term of PTWGT")
`MPRnb(PPTWGT, 0.0, "m/K", "P-term of PTWGT")

// Mobility model
`MPRnb(U0N1, 0.0, "", "NFIN dependence of U0")
`MPRnb(U0N1R, U0N1, "", "Reverse-mode NFIN dependence of U0")
`MPRex(U0N2, 1.0e5, "", 0.0, "NFIN dependence of U0")
`MPRex(U0N2R, U0N2, "", 0.0, "Reverse-mode NFIN dependence of U0")
`MPRnb(U0LT, 0.0, "/m", "Coupled NFIN and length dependence of U0")
`MPRnb(LPA, 1.0, "", "Mobility L power coefficient")
`MPRnb(LPAR, LPA, "", "Reverse-mode mobility L power coefficient")
`MPRnb(AUA, 0.0, "", "Pre-exponential coefficient for UA")
`MPRnb(AUAR, AUA, "", "Reverse-mode pre-exponential coefficient for UA")
`MPRex(BUA, 1.0e-7, "", 0.0, "Exponential coefficient for UA")
`MPRex(BUAR, BUA, "", 0.0, "Reverse-mode exponential coefficient for UAR")
`MPRnb(AEU, 0.0, "", "Pre-exponential coefficient for EU")
`MPRnb(AEUR, AEU, "", "Reverse-mode pre-exponential coefficient for EU")
`MPRex(BEU, 1.0e-7, "", 0.0, "Exponential coefficient for EU")
`MPRex(BEUR, BEU, "", 0.0, "Reverse-mode exponential coefficient for EU")
`MPRnb(AUD, 0.0, "", "Pre-exponential coefficient for UD")
`MPRnb(AUDR, AUD, "", "Reverse-mode pre-exponential coefficient for UD")
`MPRex(BUD, 5.0e-8, "", 0.0, "Exponential coefficient for UD")
`MPRex(BUDR, BUD, "", 0.0, "Reverse-mode exponential coefficient for UD")
`MPRcc(CHARGEWF, 0.0, "", -1.0, 1.0, "Average channel charge weighting factor, 1: source-side, 0: middle, -1: drain-side")
`MPRco(DMOBCLAMP, 0.01, "m", 0.01, inf, "Minimum clamp on Dmob")

`MPRnb(U0, 3.0e-2, "m^2/(V*s)", "Low-field mobility")
`MPRnb(LU0, 0.0, "m^3/(V*s)", "L-term of U0")
`MPRnb(NU0, 0.0, "m^2/(V*s)", "N-term of U0")
`MPRnb(PU0, 0.0, "m^3/(V*s)", "P-term of U0")

`MPRnb(U0R, U0, "m^2/(V*s)", "Reverse-mode low-field mobility")
`MPRnb(LU0R, LU0, "m^3/(V*s)", "L-term of U0R")
`MPRnb(NU0R, NU0, "m^2/(V*s)", "N-term of U0R")
`MPRnb(PU0R, PU0, "m^3/(V*s)", "P-term of U0R")

`MPRnb(ETAMOB, 2.0, "", "Effective field parameter")
`MPRnb(LETAMOB, 0.0, "m", "L-term of ETAMOB")
`MPRnb(NETAMOB, 0.0, "", "N-term of ETAMOB")
`MPRnb(PETAMOB, 0.0, "m", "P-term of ETAMOB")

`MPRnb(UP, 0.0, "um^LPA", "Mobility L coefficient")
`MPRnb(LUP, 0.0, "m*(um^LPA)", "L-term of UP")
`MPRnb(NUP, 0.0, "um^LPA", "N-term of UP")
`MPRnb(PUP, 0.0, "m*(um^LPA)", "P-term of UP")

`MPRnb(UPR, UP, "um^LPA", "Reverse-mode mobility L coefficient")
`MPRnb(LUPR, LUP, "m*(um^LPA)", "L-term of UPR")
`MPRnb(NUPR, NUP, "um^LPA", "N-term of UPR")
`MPRnb(PUPR, PUP, "m*(um^LPA)", "P-term of UPR")

`MPRnb(UA, 0.3, "(cm/MV)^EU", "Phonon/surface roughness scattering parameter")
`MPRnb(LUA, 0.0, "m*(cm/MV)^EU", "L-term of UA")
`MPRnb(NUA, 0.0, "(cm/MV)^EU", "N-term of UA")
`MPRnb(PUA, 0.0, "m*(cm/MV)^EU", "P-term of UA")

`MPRnb(UAR, UA, "(cm/MV)^EU", "Reverse-mode phonon/surface roughness scattering parameter")
`MPRnb(LUAR, LUA, "m*(cm/MV)^EU", "L-term of UAR")
`MPRnb(NUAR, NUA, "(cm/MV)^EU", "N-term of UAR")
`MPRnb(PUAR, PUA, "m*(cm/MV)^EU", "P-term of UAR")

`MPRnb(UC, 0.0, "(1e-6*cm/MV^2)^EU", "Body effect for mobility degradation parameter - BULKMOD = 1 or 2")
`MPRnb(LUC, 0.0, "m*(1e-6*cm/MV^2)^EU", "L-term of UC")
`MPRnb(NUC, 0.0, "(1e-6*cm/MV^2)^EU", "N-term of UC")
`MPRnb(PUC, 0.0, "m*(1e-6*cm/MV^2)^EU", "P-term of UC")

`MPRnb(UCR, UC, "(1e-6*cm/MV^2)^EU", "Reverse-mode body effect for mobility degradation parameter - BULKMOD = 1 or 2")
`MPRnb(LUCR, LUC, "m*(1e-6*cm/MV^2)^EU", "L-term of UCR")
`MPRnb(NUCR, NUC, "(1e-6*cm/MV^2)^EU", "N-term of UCR")
`MPRnb(PUCR, PUC, "m*(1e-6*cm/MV^2)^EU", "P-term of UCR")

`MPRnb(EU, 2.5, "cm/MV", "Phonon/surface roughness scattering parameter")
`MPRnb(LEU, 0.0, "m*(cm/MV)", "L-term of EU")
`MPRnb(NEU, 0.0, "cm/MV", "N-term of EU")
`MPRnb(PEU, 0.0, "m*(cm/MV)", "P-term of EU")

`MPRnb(EUR, EU, "cm/MV", "Reverse-mode phonon/surface roughness scattering parameter")
`MPRnb(LEUR, LEU, "m*(cm/MV)", "L-term of EUR")
`MPRnb(NEUR, NEU, "cm/MV", "N-term of EUR")
`MPRnb(PEUR, PEU, "m*(cm/MV)", "P-term of EUR")

`MPRnb(UD, 0.0, "cm/MV", "Coulomb scattering parameter")
`MPRnb(LUD, 0.0, "m*(cm/MV)", "L-term of UD")
`MPRnb(NUD, 0.0, "cm/MV", "N-term of UD")
`MPRnb(PUD, 0.0, "m*(cm/MV)", "P-term of UD")

`MPRnb(UDR, UD, "cm/MV", "Reverse-mode Coulomb scattering parameter")
`MPRnb(LUDR, LUD, "m*(cm/MV)", "L-term of UDR")
`MPRnb(NUDR, NUD, "cm/MV", "N-term of UDR")
`MPRnb(PUDR, PUD, "m*(cm/MV)", "P-term of UDR")

`MPRnb(UCS, 1.0, "", "Coulomb scattering parameter")
`MPRnb(LUCS, 0.0, "m", "L-term of UCS")
`MPRnb(NUCS, 0.0, "", "N-term of UCS")
`MPRnb(PUCS, 0.0, "m", "P-term of UCS")

`MPRnb(UTE, 0.0, "", "Mobility temperature coefficient")
`MPRnb(LUTE, 0.0, "m", "L-term of UTE")
`MPRnb(NUTE, 0.0, "", "N-term of UTE")
`MPRnb(PUTE, 0.0, "m", "P-term of UTE")

`MPRnb(UTER, UTE, "", "Reverse-mode for mobility temperature coefficient")
`MPRnb(LUTER, LUTE, "m", "L-term of UTER")
`MPRnb(NUTER, NUTE, "", "N-term of UTER")
`MPRnb(PUTER, PUTE, "m", "P-term of UTER")

`MPRnb(UTL, -1.5e-3, "", "Mobility temperature coefficient")
`MPRnb(LUTL, 0.0, "m", "L-term of UTL")
`MPRnb(NUTL, 0.0, "", "N-term of UTL")
`MPRnb(PUTL, 0.0, "m", "P-term of UTL")

`MPRnb(UTLR, UTL, "", "Reverse-mode for mobility temperature coefficient")
`MPRnb(LUTLR, LUTL, "m", "L-term of UTLR")
`MPRnb(NUTLR, NUTL, "", "N-term of UTLR")
`MPRnb(PUTLR, PUTL, "m", "P-term of UTLR")

`MPRnb(EMOBT, 0.0, "", "Temperature coefficient of ETAMOB")
`MPRnb(LEMOBT, 0.0, "m", "L-term of EMOBT")
`MPRnb(NEMOBT, 0.0, "", "N-term of EMOBT")
`MPRnb(PEMOBT, 0.0, "m", "P-term of EMOBT")

`MPRnb(UA1, 1.032e-3, "", "Mobility temperature coefficient for UA")
`MPRnb(LUA1, 0.0, "m", "L-term of UA1")
`MPRnb(NUA1, 0.0, "", "N-term of UA1")
`MPRnb(PUA1, 0.0, "m", "P-term of UA1")

`MPRnb(UA1R, UA1, "", "Reverse-mode mobility temperature coefficient for UA")
`MPRnb(LUA1R, LUA1, "m", "L-term of UA1R")
`MPRnb(NUA1R, NUA1, "", "N-term of UA1R")
`MPRnb(PUA1R, PUA1, "m", "P-term of UA1R")

`MPRnb(UC1, 5.6e-11, "", "Mobility temperature coefficient for UC")
`MPRnb(LUC1, 0.0, "m", "L-term of UC1")
`MPRnb(NUC1, 0.0, "", "N-term of UC1")
`MPRnb(PUC1, 0.0, "m", "P-term of UC1")

`MPRnb(UC1R, UC1, "", "Reverse-mode mobility temperature coefficient for UC")
`MPRnb(LUC1R, LUC1, "m", "L-term of UC1R")
`MPRnb(NUC1R, NUC1, "", "N-term of UC1R")
`MPRnb(PUC1R, PUC1, "m", "P-term of UC1R")

`MPRnb(UD1, 0.0, "", "Mobility temperature coefficient for UC")
`MPRnb(LUD1, 0.0, "m", "L-term of UD1")
`MPRnb(NUD1, 0.0, "", "N-term of UD1")
`MPRnb(PUD1, 0.0, "m", "P-term of UD1")

`MPRnb(UD1R, UD1, "", "Reverse-mode mobility temperature coefficient for UD")
`MPRnb(LUD1R, LUD1, "m", "L-term of UD1R")
`MPRnb(NUD1R, NUD1, "", "N-term of UD1R")
`MPRnb(PUD1R, PUD1, "m", "P-term of UD1R")

`MPRnb(UCSTE, -4.775e-3, "", "Mobility temperature coefficient")
`MPRnb(LUCSTE, 0.0, "m", "L-term of UCSTE")
`MPRnb(NUCSTE, 0.0, "", "N-term of UCSTE")
`MPRnb(PUCSTE, 0.0, "m", "P-term of UCSTE")

// Access resistance model
`MPRnb(RDSWMIN, 0.0, "ohm*(um^(WR))", "RDSMOD = 0 S/D extension resistance per unit width at high Vgs")
`MPRnb(ARDSW, 0.0, "", "Pre-exponential coefficient for RDSW")
`MPRex(BRDSW, 1.0e-7, "", 0.0, "exponential coefficient for RDSW")
`MPRnb(RSWMIN, 0.0, "ohm*(um^(WR))", "RDSMOD = 1 source extension resistance per unit width at high Vgs")
`MPRnb(ARSW, 0.0, "", "Pre-exponential coefficient for RSW")
`MPRex(BRSW, 1.0e-7, "", 0.0, "Exponential coefficient for RSW")
`MPRnb(RDWMIN, 0.0, "ohm*(um^(WR))", "RDSMOD = 1 drain extension resistance per unit width at high Vgs")
`MPRnb(ARDW, 0.0, "", "Pre-exponential coefficient for RDW")
`MPRex(BRDW, 1.0e-7, "", 0.0, "Exponential coefficient for RDW")
`MPRcz(RSDR, 0.0, "V^(-PRSDR)", "Source-side drift resistance parameter - forward mode")
`MPRcz(RSDRR, RSDR, "V^(-PRSDR)", "Source-side drift resistance parameter - reverse mode")
`MPRcz(RDDR, RSDR, "V^(-PRDDR)", "Drain-side drift resistance parameter - forward mode")
`MPRcz(RDDRR, RDDR, "V^(-PRDDR)", "Drain-side drift resistance parameter - reverse mode")
`MPRnb(PRSDR, 1.0, "", "Source-side quasi-saturation parameter")
`MPRnb(PRDDR, PRSDR, "", "Drain-side quasi-saturation parameter")
`MPRnb(TRSDR, 0.0, "/K", "Source-side drift resistance temperature coefficient")
`MPRnb(TRDDR, TRSDR, "/K", "Drain-side drift resistance temperature coefficient")

`MPRnb(RDSW, 1.0e2, "(ohm-um^WR)", "RDSMOD = 0 zero bias S/D extension resistance per unit width")
`MPRnb(LRDSW, 0.0, "m*(ohm-um^WR)", "L-term of RDSW")
`MPRnb(NRDSW, 0.0, "(ohm-um^WR)", "N-term of RDSW")
`MPRnb(PRDSW, 0.0, "m*(ohm-um^WR)", "P-term of RDSW")

`MPRnb(RSW, 5.0e1, "(ohm-um^WR)", "RDSMOD = 1 zero bias source extension resistance per unit width")
`MPRnb(LRSW, 0.0, "m*(ohm-um^WR)", "L-term of RSW")
`MPRnb(NRSW, 0.0, "(ohm-um^WR)", "N-term of RSW")
`MPRnb(PRSW, 0.0, "m*(ohm-um^WR)", "P-term of RSW")

`MPRnb(RDW, 5.0e1, "(ohm-um^WR)", "RDSMOD = 1 zero bias drain extension resistance per unit width")
`MPRnb(LRDW, 0.0, "m*(ohm-um^WR)", "L-term of RDW")
`MPRnb(NRDW, 0.0, "(ohm-um^WR)", "N-term of RDW")
`MPRnb(PRDW, 0.0, "m*(ohm-um^WR)", "P-term of RDW")

`MPRnb(PRWGS, 0.0, "/V", "Gate bias dependence of source extension resistance")
`MPRnb(LPRWGS, 0.0, "m/V", "L-term of PRWGS")
`MPRnb(NPRWGS, 0.0, "/V", "N-term of PRWGS")
`MPRnb(PPRWGS, 0.0, "m/V", "P-term of PRWGS")

`MPRnb(PRWGD, PRWGS, "/V", "Gate bias dependence of drain extension resistance")
`MPRnb(LPRWGD, 0.0, "m/V", "L-term of PRWGD")
`MPRnb(NPRWGD, 0.0, "/V", "N-term of PRWGD")
`MPRnb(PPRWGD, 0.0, "m/V", "P-term of PRWGD")

`MPRnb(WR, 1.0, "", "W dependence parameter of S/D extension resistance")
`MPRnb(LWR, 0.0, "m", "L-term of WR")
`MPRnb(NWR, 0.0, "", "N-term of WR")
`MPRnb(PWR, 0.0, "m", "P-term of WR")

`MPRnb(PRT, 1.0e-3, "/K", "Series resistance temperature coefficient")
`MPRnb(LPRT, 0.0, "m/K", "L-term of PRT")
`MPRnb(NPRT, 0.0, "/K", "N-term of PRT")
`MPRnb(PPRT, 0.0, "m/K", "P-term of PRT")

// DIBL model
`MPRnb(PDIBL1, 1.3, "", "DIBL output conductance parameter - forward mode")
`MPRnb(LPDIBL1, 0.0, "m", "L-term of PDIBL1")
`MPRnb(NPDIBL1, 0.0, "", "N-term of PDIBL1")
`MPRnb(PPDIBL1, 0.0, "m", "P-term of PDIBL1")

`MPRnb(PDIBL2, 2.0e-4, "", "DIBL output conductance parameter")
`MPRnb(LPDIBL2, 0.0, "m", "L-term of PDIBL2")
`MPRnb(NPDIBL2, 0.0, "", "N-term of PDIBL2")
`MPRnb(PPDIBL2, 0.0, "m", "P-term of PDIBL2")

`MPRnb(PDIBL1R, PDIBL1, "", "DIBL output conductance parameter - reverse mode")
`MPRnb(LPDIBL1R, LPDIBL1, "m", "L-term of PDIBL1R")
`MPRnb(NPDIBL1R, NPDIBL1, "", "N-term of PDIBL1R")
`MPRnb(PPDIBL1R, PPDIBL1, "m", "P-term of PDIBL1R")

`MPRnb(PDIBL2R, PDIBL2, "", "DIBL output conductance parameter - reverse mode")
`MPRnb(LPDIBL2R, LPDIBL2, "m", "L-term of PDIBL2R")
`MPRnb(NPDIBL2R, NPDIBL2, "", "N-term of PDIBL2R")
`MPRnb(PPDIBL2R, PPDIBL2, "m", "P-term of PDIBL2R")

`MPRnb(DROUT, 1.06, "", "L dependence of DIBL effect on Rout")
`MPRnb(LDROUT, 0.0, "m", "L-term of DROUT")
`MPRnb(NDROUT, 0.0, "", "N-term of DROUT")
`MPRnb(PDROUT, 0.0, "m", "P-term of DROUT")

`MPRnb(PVAG, 1.0, "", "Vgs dependence on early voltage")
`MPRnb(LPVAG, 0.0, "m", "L-term of PVAG")
`MPRnb(NPVAG, 0.0, "", "N-term of PVAG")
`MPRnb(PPVAG, 0.0, "m", "P-term of PVAG")

// Channel length modulation effect
`MPRnb(APCLM, 0.0, "", "Pre-exponential coefficient for PCLM")
`MPRnb(APCLMR, APCLM, "", "Reverse-mode pre-exponential coefficient for PCLM")
`MPRex(BPCLM, 1.0e-7, "", 0.0, "Exponential coefficient for PCLM")
`MPRex(BPCLMR, BPCLM, "", 0.0, "Reverse-mode exponential coefficient for PCLM")

`MPRnb(PCLM, 1.3e-2, "", "Channel length modulation (CLM) parameter")
`MPRnb(LPCLM, 0.0, "m", "L-term of PCLM")
`MPRnb(NPCLM, 0.0, "", "N-term of PCLM")
`MPRnb(PPCLM, 0.0, "m", "P-term of PCLM")

`MPRnb(PCLMR, PCLM, "", "Reverse model PCLM parameter")
`MPRnb(LPCLMR, LPCLM, "m", "L-term of PCLMR")
`MPRnb(NPCLMR, NPCLM, "", "N-term of PCLMR")
`MPRnb(PPCLMR, PPCLM, "m", "P-term of PCLMR")

`MPRnb(PCLMG, 0.0, "/V", "Gate bias dependence parameter for CLM")
`MPRnb(LPCLMG, 0.0, "m/V", "L-term of PCLMG")
`MPRnb(NPCLMG, 0.0, "/V", "N-term of PCLMG")
`MPRnb(PPCLMG, 0.0, "m/V", "P-term of PCLMG")

`MPRnb(PCLMCV, PCLM, "", "CLM parameter for short-channel CV")
`MPRnb(LPCLMCV, LPCLM, "m", "L-term of PCLMCV")
`MPRnb(NPCLMCV, NPCLM, "", "N-term of PCLMCV")
`MPRnb(PPCLMCV, PPCLM, "m", "P-term of PCLMCV")

// Non-saturation effect
`MPRnb(A1, 0.0, "/V^2", "Non-saturation effect parameter for strong inversion Region")
`MPRnb(LA1, 0.0, "m/V^2", "L-term of A1")
`MPRnb(NA1, 0.0, "/V^2", "N-term of A1")
`MPRnb(PA1, 0.0, "m/V^2", "P-term of A1")

`MPRnb(A11, 0.0, "/(V^2*K)", "Temperature dependence of A1")
`MPRnb(LA11, 0.0, "m/(V^2*K)", "L-term of A11")
`MPRnb(NA11, 0.0, "/(V^2*K)", "N-term of A11")
`MPRnb(PA11, 0.0, "m/(V^2*K)", "P-term of A11")

`MPRnb(A2, 0.0, "/V", "Non-saturation effect parameter for moderate Inversion Region")
`MPRnb(LA2, 0.0, "m/V", "L-term of A2")
`MPRnb(NA2, 0.0, "/V", "N-term of A2")
`MPRnb(PA2, 0.0, "m/V", "P-term of A2")

`MPRnb(A21, 0.0, "/(V*K)", "Temperature dependence of A2")
`MPRnb(LA21, 0.0, "m/(V*K)", "L-term of A21")
`MPRnb(NA21, 0.0, "/(V*K)", "N-term of A21")
`MPRnb(PA21, 0.0, "m/(V*K)", "P-term of A21")

// Gate electrode resistance
`MPRcz(RGEXT, 0.0, "ohm", "Effective gate electrode external resistance")
`MPRco(RGFIN, 1.0e-3, "ohm", 1.0e-3, inf, "Effective gate electrode per finger per fin resistance")

// Geometry-dependent source/drain resistance of RGEOMOD = 0
`MPRnb(RSHS, 0.0, "ohm", "Source-side sheet resistance")
`MPRnb(RSHD, RSHS, "ohm", "Drain-side sheet resistance")

// Geometry-dependent source/drain resistance of RGEOMOD = 1
`MPRnb(HEPI, 1.0e-8, "m", "Height of the raised source/drain on top of the fin")
`MPRnb(TSILI, 1.0e-8, "m", "Thickness of the silicide on top of the raised source/drain")
`MPRcc(RHOC, 1.0e-12, "ohm*(m^2)", 1.0e-18, 1.0e-9, "Contact resistivity at the silicon/silicide interface")
`MPRoz(RHORSD, 1.0, "ohm*(m)", "If non-zero, average resistivity of silicon in the raised source/drain region")
`MPRcc(CRATIO, 0.5, "", 0.0, 1.0, "Ratio of the corner area filled with silicon to the total corner area")
`MPRoo(DELTAPRSD, 0.0, "m", -FPITCH, inf, "Change in silicon/silicide interface length due to non-rectangular epi")
`MPIcc(SDTERM, 0, "", 0, 1, "Indicator of whether the source/drain are terminated with silicide")
`MPRoz(LSP, 0.2 * (L + XL), "m", "Thickness of the gate sidewall spacer")
`MPRco(EPSRSP, 3.9, "", 1.0, inf, "Relative dielectric constant of the spacer")
`MPRoz(TGATE, 3.0e-8, "m", "Gate height on top of the hard mask")
`MPRcz(TMASK, 3.0e-8, "m", "Height of hard mask on top of the fin")
`MPRcz(ASILIEND, 0.0, "m^2", "Extra silicide cross sectional area at the two ends of the FinFET")
`MPRcz(ARSDEND, 0.0, "m^2", "Extra raised source/drain cross sectional areaat the two ends of the finFET")
`MPRcz(PRSDEND, 0.0, "m", "Extra silicon/silicide interface perimeter at the two ends of the finFET")
`MPRcc(NSDE, 2.0e25, "/m^3", 1.0e25, 1.0e26, "Source/drain active doping concentration at Leff edge")
`MPRnb(RGEOA, 1.0, "", "Fitting parameter for RGEOMOD = 1")
`MPRnb(RGEOB, 0.0, "/m", "Fitting parameter for RGEOMOD = 1")
`MPRnb(RGEOC, 0.0, "/m", "Fitting parameter for RGEOMOD = 1")
`MPRnb(RGEOD, 0.0, "/m", "Fitting parameter for RGEOMOD = 1")
`MPRnb(RGEOE, 0.0, "/m", "Fitting parameter for RGEOMOD = 1")
`MPRnb(CGEOA, 1.0, "", "Fitting parameter for CGEOMOD = 2")
`MPRnb(CGEOB, 0.0, "/m", "Fitting parameter for CGEOMOD = 2")
`MPRnb(CGEOC, 0.0, "/m", "Fitting parameter for CGEOMOD = 2")
`MPRnb(CGEOD, 0.0, "/m", "Fitting parameter for CGEOMOD = 2")
`MPRcz(CGEOE, 1.0, "", "Fitting parameter for CGEOMOD = 2")

// Gate currents
`MPRnb(DLCIGS, 0.0, "m", "Delta L for Igs model")
`MPRnb(DLCIGD, DLCIGS, "m", "Delta L for Igd model")
`MPRnb(VFBSD, 0.0, "V", "User-designated flatband voltage for S/D region")
`MPRnb(VFBSDCV, VFBSD, "V", "User-designated flatband voltage for S/D region for C-V calculations")
`MPRoz(TOXREF, 1.2e-9, "m", "Target tox value")
`MPRco(TOXG, TOXP, "m", 1.0e-10, inf, "Oxide thickness for gate current model")
`MPRoz(IGBINVCLAMP, 1.0e-3, "", "Clamping value of the exponent for Igb in inversion")
`MPRoz(IGBACCCLAMP, 1.0e-3, "", "Clamping value of the exponent for Igb in accumulation")
`MPRoz(IGCINVCLAMP, 5.0e-4, "", "Clamping value of the exponent for Igc in inversion")

`MPRnb(NTOX, 1.0, "", "Exponent for Tox ratio")
`MPRnb(LNTOX, 0.0, "m", "L-term of NTOX")
`MPRnb(NNTOX, 0.0, "", "N-term of NTOX")
`MPRnb(PNTOX, 0.0, "m", "P-term of NTOX")

`MPRnb(AIGBINV, 1.11e-2, "(F*s^2/g)^0.5/m", "Parameter for Igb in inversion")
`MPRnb(LAIGBINV, 0.0, "(F*s^2/g)^0.5", "L-term of AIGBINV")
`MPRnb(NAIGBINV, 0.0, "(F*s^2/g)^0.5/m", "N-term of AIGBINV")
`MPRnb(PAIGBINV, 0.0, "(F*s^2/g)^0.5", "P-term of AIGBINV")

`MPRnb(AIGBINV1, 0.0, "(F*s^2/g)^0.5/(m*K)", "Parameter for Igb in inversion")
`MPRnb(LAIGBINV1, 0.0, "(F*s^2/g)^0.5/K", "L-term of AIGBINV1")
`MPRnb(NAIGBINV1, 0.0, "(F*s^2/g)^0.5/(m*K)", "N-term of AIGBINV1")
`MPRnb(PAIGBINV1, 0.0, "(F*s^2/g)^0.5/K", "P-term of AIGBINV1")

`MPRnb(BIGBINV, 9.49e-4, "(F*s^2/g)^0.5/(m*V)", "Parameter for Igb in inversion")
`MPRnb(LBIGBINV, 0.0, "(F*s^2/g)^0.5/V", "L-term of BIGBINV")
`MPRnb(NBIGBINV, 0.0, "(F*s^2/g)^0.5/(m*V)", "N-term of BIGBINV")
`MPRnb(PBIGBINV, 0.0, "(F*s^2/g)^0.5/V", "P-term of BIGBINV")

`MPRnb(CIGBINV, 6.0e-3, "/V", "Parameter for Igb in inversion")
`MPRnb(LCIGBINV, 0.0, "m/V", "L-term of CIGBINV")
`MPRnb(NCIGBINV, 0.0, "/V", "N-term of CIGBINV")
`MPRnb(PCIGBINV, 0.0, "m/V", "P-term of CIGBINV")

`MPRnb(EIGBINV, 1.1, "V", "Parameter for Igb in inversion")
`MPRnb(LEIGBINV, 0.0, "m*V", "L-term of EIGBINV")
`MPRnb(NEIGBINV, 0.0, "V", "N-term of EIGBINV")
`MPRnb(PEIGBINV, 0.0, "m*V", "P-term of EIGBINV")

`MPRnb(NIGBINV, 3.0, "", "Parameter for Igb in inversion")
`MPRnb(LNIGBINV, 0.0, "m", "L-term of NIGBINV")
`MPRnb(NNIGBINV, 0.0, "", "N-term of NIGBINV")
`MPRnb(PNIGBINV, 0.0, "m", "P-term of NIGBINV")

`MPRnb(AIGBACC, 1.36e-2, "(F*s^2/g)^0.5/m", "Parameter for Igb in accumulation")
`MPRnb(LAIGBACC, 0.0, "(F*s^2/g)^0.5", "L-term of AIGBACC")
`MPRnb(NAIGBACC, 0.0, "(F*s^2/g)^0.5/m", "N-term of AIGBACC")
`MPRnb(PAIGBACC, 0.0, "(F*s^2/g)^0.5", "P-term of AIGBACC")

`MPRnb(AIGBACC1, 0.0, "(F*s^2/g)^0.5/(m*K)", "Parameter for Igb in accumulation")
`MPRnb(LAIGBACC1, 0.0, "(F*s^2/g)^0.5/K", "L-term of AIGBACC1")
`MPRnb(NAIGBACC1, 0.0, "(F*s^2/g)^0.5/(m*K)", "N-term of AIGBACC1")
`MPRnb(PAIGBACC1, 0.0, "(F*s^2/g)^0.5/K", "P-term of AIGBACC1")

`MPRnb(BIGBACC, 1.71e-3, "(F*s^2/g)^0.5/(m*V)", "Parameter for Igb in accumulation")
`MPRnb(LBIGBACC, 0.0, "(F*s^2/g)^0.5/V", "L-term of BIGBACC")
`MPRnb(NBIGBACC, 0.0, "(F*s^2/g)^0.5/(m*V)", "N-term of BIGBACC")
`MPRnb(PBIGBACC, 0.0, "(F*s^2/g)^0.5/V", "P-term of BIGBACC")

`MPRnb(CIGBACC, 7.5e-2, "/V", "Parameter for Igb in accumulation")
`MPRnb(LCIGBACC, 0.0, "m/V", "L-term of CIGBACC")
`MPRnb(NCIGBACC, 0.0, "/V", "N-term of CIGBACC")
`MPRnb(PCIGBACC, 0.0, "m/V", "P-term of CIGBACC")

`MPRnb(NIGBACC, 1.0, "", "Parameter for Igb in accumulation")
`MPRnb(LNIGBACC, 0.0, "m", "L-term of NIGBACC")
`MPRnb(NNIGBACC, 0.0, "", "N-term of NIGBACC")
`MPRnb(PNIGBACC, 0.0, "m", "P-term of NIGBACC")

`MPRnb(AIGC, 1.36e-2, "(F*s^2/g)^0.5/m", "Parameter for Igc in inversion")
`MPRnb(LAIGC, 0.0, "(F*s^2/g)^0.5", "L-term of AIGC")
`MPRnb(NAIGC, 0.0, "(F*s^2/g)^0.5/m", "N-term of AIGC")
`MPRnb(PAIGC, 0.0, "(F*s^2/g)^0.5", "P-term of AIGC")

`MPRnb(AIGC1, 0.0, "(F*s^2/g)^0.5/(m*K)", "Parameter for Igc in inversion")
`MPRnb(LAIGC1, 0.0, "(F*s^2/g)^0.5/K", "L-term of AIGC1")
`MPRnb(NAIGC1, 0.0, "(F*s^2/g)^0.5/(m*K)", "N-term of AIGC1")
`MPRnb(PAIGC1, 0.0, "(F*s^2/g)^0.5/K", "P-term of AIGC1")

`MPRnb(BIGC, 1.71e-3, "(F*s^2/g)^0.5/(m*V)", "Parameter for Igc in inversion")
`MPRnb(LBIGC, 0.0, "(F*s^2/g)^0.5/V", "L-term of BIGC")
`MPRnb(NBIGC, 0.0, "(F*s^2/g)^0.5/(m*V)", "N-term of BIGC")
`MPRnb(PBIGC, 0.0, "(F*s^2/g)^0.5/V", "P-term of BIGC")

`MPRnb(CIGC, 7.5e-2, "/V", "Parameter for Igc in inversion")
`MPRnb(LCIGC, 0.0, "m/V", "L-term of CIGC")
`MPRnb(NCIGC, 0.0, "/V", "N-term of CIGC")
`MPRnb(PCIGC, 0.0, "m/V", "P-term of CIGC")

`MPRnb(PIGCD, 1.0, "", "Parameter for Igc partition")
`MPRnb(LPIGCD, 0.0, "m", "L-term of PIGCD")
`MPRnb(NPIGCD, 0.0, "", "N-term of PIGCD")
`MPRnb(PPIGCD, 0.0, "m", "P-term of PIGCD")

`MPRnb(AIGS, 1.36e-2, "(F*s^2/g)^0.5/m", "Parameter for Igs in inversion")
`MPRnb(LAIGS, 0.0, "(F*s^2/g)^0.5", "L-term of AIGS")
`MPRnb(NAIGS, 0.0, "(F*s^2/g)^0.5/m", "N-term of AIGS")
`MPRnb(PAIGS, 0.0, "(F*s^2/g)^0.5", "P-term of AIGS")

`MPRnb(AIGS1, 0.0, "(F*s^2/g)^0.5/(m*K)", "Parameter for Igs in inversion")
`MPRnb(LAIGS1, 0.0, "(F*s^2/g)^0.5/K", "L-term of AIGS1")
`MPRnb(NAIGS1, 0.0, "(F*s^2/g)^0.5/(m*K)", "N-term of AIGS1")
`MPRnb(PAIGS1, 0.0, "(F*s^2/g)^0.5/K", "P-term of AIGS1")

`MPRnb(BIGS, 1.71e-3, "(F*s^2/g)^0.5/(m*V)", "Parameter for Igs in inversion")
`MPRnb(LBIGS, 0.0, "(F*s^2/g)^0.5/V", "L-term of BIGS")
`MPRnb(NBIGS, 0.0, "(F*s^2/g)^0.5/(m*V)", "N-term of BIGS")
`MPRnb(PBIGS, 0.0, "(F*s^2/g)^0.5/V", "P-term of BIGS")

`MPRnb(CIGS, 7.5e-2, "/V", "Parameter for Igs in inversion")
`MPRnb(LCIGS, 0.0, "m/V", "L-term of CIGS")
`MPRnb(NCIGS, 0.0, "/V", "N-term of CIGS")
`MPRnb(PCIGS, 0.0, "m/V", "P-term of CIGS")

`MPRnb(AIGD, AIGS, "(F*s^2/g)^0.5/m", "Parameter for Igd in inversion")
`MPRnb(LAIGD, LAIGS, "(F*s^2/g)^0.5", "L-term of AIGD")
`MPRnb(NAIGD, NAIGS, "(F*s^2/g)^0.5/m", "N-term of AIGD")
`MPRnb(PAIGD, PAIGS, "(F*s^2/g)^0.5", "P-term of AIGD")

`MPRnb(AIGD1, AIGS1, "(F*s^2/g)^0.5/(m*K)", "Parameter for Igd in inversion")
`MPRnb(LAIGD1, LAIGS1, "(F*s^2/g)^0.5/K", "L-term of AIGD1")
`MPRnb(NAIGD1, NAIGS1, "(F*s^2/g)^0.5/(m*K)", "N-term of AIGD1")
`MPRnb(PAIGD1, PAIGS1, "(F*s^2/g)^0.5/K", "P-term of AIGD1")

`MPRnb(BIGD, BIGS, "(F*s^2/g)^0.5/(m*V)", "Parameter for Igd in inversion")
`MPRnb(LBIGD, LBIGS, "(F*s^2/g)^0.5/V", "L-term of BIGD")
`MPRnb(NBIGD, NBIGS, "(F*s^2/g)^0.5/(m*V)", "N-term of BIGD")
`MPRnb(PBIGD, PBIGS, "(F*s^2/g)^0.5/V", "P-term of BIGD")

`MPRnb(CIGD, CIGS, "/V", "Parameter for Igd in inversion")
`MPRnb(LCIGD, LCIGS, "m/V", "L-term of CIGD")
`MPRnb(NCIGD, NCIGS, "/V", "N-term of CIGD")
`MPRnb(PCIGD, PCIGS, "m/V", "P-term of CIGD")

`MPRnb(POXEDGE, 1.0, "", "Factor for the gate edge Tox")
`MPRnb(LPOXEDGE, 0.0, "m", "L-term of POXEDGE")
`MPRnb(NPOXEDGE, 0.0, "", "N-term of POXEDGE")
`MPRnb(PPOXEDGE, 0.0, "m", "P-term of POXEDGE")

// GIDL, GISL currents
`MPRnb(AGIDL, 6.055e-12, "/ohm", "Pre-exponential coefficient for GIDL")
`MPRnb(LAGIDL, 0.0, "m/ohm", "L-term of AGIDL")
`MPRnb(NAGIDL, 0.0, "/ohm", "N-term of AGIDL")
`MPRnb(PAGIDL, 0.0, "m/ohm", "P-term of AGIDL")

`MPRnb(BGIDL, 3.0e8, "V/m", "Exponential coefficient for GIDL")
`MPRnb(LBGIDL, 0.0, "V", "L-term of BGIDL")
`MPRnb(NBGIDL, 0.0, "V/m", "N-term of BGIDL")
`MPRnb(PBGIDL, 0.0, "V", "P-term of BGIDL")

`MPRnb(CGIDL, 0.5, "V^3", "Parameter for body-effect of GIDL")
`MPRnb(LCGIDL, 0.0, "m*(V^3)", "L-term of CGIDL")
`MPRnb(NCGIDL, 0.0, "V^3", "N-term of CGIDL")
`MPRnb(PCGIDL, 0.0, "m*(V^3)", "P-term of CGIDL")

`MPRnb(EGIDL, 0.2, "V", "Band bending parameter for GIDL")
`MPRnb(LEGIDL, 0.0, "m*V", "L-term of EGIDL")
`MPRnb(NEGIDL, 0.0, "V", "N-term of EGIDL")
`MPRnb(PEGIDL, 0.0, "m*V", "P-term of EGIDL")

`MPRnb(PGIDL, 1.0, "", "Parameter for body-bias effect on GIDL")
`MPRnb(LPGIDL, 0.0, "m", "L-term of PGIDL")
`MPRnb(NPGIDL, 0.0, "", "N-term of PGIDL")
`MPRnb(PPGIDL, 0.0, "m", "P-term of PGIDL")

`MPRnb(AGISL, AGIDL, "/ohm", "Pre-exponential coefficient for GISL")
`MPRnb(LAGISL, LAGIDL, "m/ohm", "L-term of AGISL")
`MPRnb(NAGISL, NAGIDL, "/ohm", "N-term of AGISL")
`MPRnb(PAGISL, PAGIDL, "m/ohm", "P-term of AGISL")

`MPRnb(BGISL, BGIDL, "V/m", "Exponential coefficient for GISL")
`MPRnb(LBGISL, LBGIDL, "V", "L-term of BGISL")
`MPRnb(NBGISL, NBGIDL, "V/m", "N-term of BGISL")
`MPRnb(PBGISL, PBGIDL, "V", "P-term of BGISL")

`MPRnb(CGISL, CGIDL, "V^3", "Parameter for body-effect of GISL")
`MPRnb(LCGISL, LCGIDL, "m*V^3", "L-term of CGISL")
`MPRnb(NCGISL, NCGIDL, "V^3", "N-term of CGISL")
`MPRnb(PCGISL, PCGIDL, "m*V^3", "P-term of CGISL")

`MPRnb(EGISL, EGIDL, "V", "Band bending parameter for GISL")
`MPRnb(LEGISL, LEGIDL, "m*V", "L-term of EGISL")
`MPRnb(NEGISL, NEGIDL, "V", "N-term of EGISL")
`MPRnb(PEGISL, PEGIDL, "m*V", "P-term of EGISL")

`MPRnb(PGISL, PGIDL, "", "Parameter for body-bias effect on GISL")
`MPRnb(LPGISL, LPGIDL, "m", "L-term of PGISL")
`MPRnb(NPGISL, NPGIDL, "", "N-term of PGISL")
`MPRnb(PPGISL, PPGIDL, "m", "P-term of PGISL")

// Impact ionization current
`MPRnb(ALPHA01, 0.0, "m/(V*K)", "Temperature dependence of ALPHA0")
`MPRnb(ALPHA11, 0.0, "/(V*K)", "Temperature dependence ALPHA1")
`MPRnb(ALPHAII01, 0.0, "m/(V*K)", "Temperature dependence of ALPHAII0")
`MPRnb(ALPHAII11, 0.0, "m/(V*K)", "Temperature dependence of ALPHAII1")
`MPRoz(IIMOD2CLAMP1, 0.1, "V", "Clamp1 of SII1 * Vg term in IIMOD = 2")
`MPRoz(IIMOD2CLAMP2, 0.1, "V", "Clamp2 of SII0 * Vg term in IIMOD = 2")
`MPRoz(IIMOD2CLAMP3, 0.1, "V", "Clamp3 of ratio term in IIMOD = 2")

`MPRnb(ALPHA0, 0.0, "m/V", "First parameter of Iii")
`MPRnb(LALPHA0, 0.0, "m^2/V", "L-term of ALPHA0")
`MPRnb(NALPHA0, 0.0, "m/V", "N-term of ALPHA0")
`MPRnb(PALPHA0, 0.0, "m^2/V", "P-term of ALPHA0")

`MPRnb(ALPHA1, 0.0, "/V", "L scaling parameter of Iii")
`MPRnb(LALPHA1, 0.0, "m/V", "L-term of ALPHA1")
`MPRnb(NALPHA1, 0.0, "/V", "N-term of ALPHA1")
`MPRnb(PALPHA1, 0.0, "m/V", "P-term of ALPHA1")

`MPRnb(BETA0, 0.0, "/V", "Vds dependence parameter of Iii")
`MPRnb(LBETA0, 0.0, "m/V", "L-term of BETA0")
`MPRnb(NBETA0, 0.0, "/V", "N-term of BETA0")
`MPRnb(PBETA0, 0.0, "m/V", "P-term of BETA0")

`MPRnb(ALPHAII0, 0.0, "m/V", "First parameter of Iii for IIMOD = 2")
`MPRnb(LALPHAII0, 0.0, "(m^2)/V", "L-term of ALPHAII0")
`MPRnb(NALPHAII0, 0.0, "m/V", "N-term of ALPHAII0")
`MPRnb(PALPHAII0, 0.0, "(m^2)/V", "P-term of ALPHAII0")

`MPRnb(ALPHAII1, 0.0, "/V", "L scaling parameter of Iii for IIMOD = 2")
`MPRnb(LALPHAII1, 0.0, "m/V", "L-term of ALPHAII1")
`MPRnb(NALPHAII1, 0.0, "/V", "N-term of ALPHAII1")
`MPRnb(PALPHAII1, 0.0, "m/V", "P-term of ALPHAII1")

`MPRnb(BETAII0, 0.0, "/V", "Vds dependence parameter of Iii")
`MPRnb(LBETAII0, 0.0, "m/V", "L-term of BETAII0")
`MPRnb(NBETAII0, 0.0, "/V", "N-term of BETAII0")
`MPRnb(PBETAII0, 0.0, "m/V", "P-term of BETAII0")

`MPRnb(BETAII1, 0.0, "", "Vds dependence parameter of Iii")
`MPRnb(LBETAII1, 0.0, "m", "L-term of BETAII1")
`MPRnb(NBETAII1, 0.0, "", "N-term of BETAII1")
`MPRnb(PBETAII1, 0.0, "m", "P-term of BETAII1")

`MPRnb(BETAII2, 0.1, "V", "Vds dependence parameter of Iii")
`MPRnb(LBETAII2, 0.0, "m*V", "L-term of BETAII2")
`MPRnb(NBETAII2, 0.0, "V", "N-term of BETAII2")
`MPRnb(PBETAII2, 0.0, "m*V", "P-term of BETAII2")

`MPRnb(ESATII, 1.0e7, "V/m", "Saturation channel E-field for Iii")
`MPRnb(LESATII, 0.0, "V", "L-term of ESATII")
`MPRnb(NESATII, 0.0, "V/m", "N-term of ESATII")
`MPRnb(PESATII, 0.0, "V", "P-term of ESATII")

`MPRnb(LII, 0.5e-9, "m*V", "Channel length dependence parameter of Iii")
`MPRnb(LLII, 0.0, "m^2*V", "L-term of LII")
`MPRnb(NLII, 0.0, "m*V", "N-term of LII")
`MPRnb(PLII, 0.0, "m^2*V", "P-term of LII")

`MPRnb(SII0, 0.5, "/V", "Vgs dependence parameter of Iii")
`MPRnb(LSII0, 0.0, "m/V", "L-term of SII0")
`MPRnb(NSII0, 0.0, "/V", "N-term of SII0")
`MPRnb(PSII0, 0.0, "m/V", "P-term of SII0")

`MPRnb(SII1, 0.1, "", "1st Vgs dependence parameter of Iii")
`MPRnb(LSII1, 0.0, "m", "L-term of SII1")
`MPRnb(NSII1, 0.0, "", "N-term of SII1")
`MPRnb(PSII1, 0.0, "m", "P-term of SII1")

`MPRnb(SII2, 0.0, "V", "2nd Vgs dependence parameter of Iii")
`MPRnb(LSII2, 0.0, "m*V", "L-term of SII2")
`MPRnb(NSII2, 0.0, "V", "N-term of SII2")
`MPRnb(PSII2, 0.0, "m*V", "P-term of SII2")

`MPRnb(SIID, 0.0, "V", "3rd Vds dependence parameter of Iii")
`MPRnb(LSIID, 0.0, "m*V", "L-term of SIID")
`MPRnb(NSIID, 0.0, "V", "N-term of SIID")
`MPRnb(PSIID, 0.0, "m*V", "P-term of SIID")

// Accumulation capacitance
`MPRco(EOTACC, EOT, "m", 1.0e-10, inf, "Equivalent oxide thickness for accumulation region")
`MPRnb(DELVFBACC, 0.0, "V", "Change in flatband voltage: Vfb_accumulation - Vfb_inversion")

// Fringe capacitance
`MPRcz(CFS, 2.5e-11, "F/m", "Outer fringe capacitance at source side")
`MPRnb(LCFS, 0.0, "F", "L-term of CFS")
`MPRnb(NCFS, 0.0, "F/m", "N-term of CFS")
`MPRnb(PCFS, 0.0, "F", "P-term of CFS")

`MPRcz(CFD, CFS, "F/m", "Outer fringe capacitance at drain side")
`MPRnb(LCFD, LCFS, "F", "L-term of CFD")
`MPRnb(NCFD, NCFS, "F/m", "N-term of CFD")
`MPRnb(PCFD, PCFS, "F", "P-term of CFD")

// Overlap capacitance
`MPRcz(CGSO, 0.0, "F/m", "User-designated non-LDD region source-gate overlap capacitance per unit channel width")
`MPRcz(CGDO, CGSO, "F/m", "User-designated non-LDD region drain-gate overlap capacitance per unit channel width")
`MPRcz(CGBO, 0.0, "F/m", "Gate-to-substrate overlap capacitance per unit channel length per finger per NGCON")
`MPRcz(CGBN, 0.0, "F/m", "Gate-to-substrate overlap capacitance per unit channel length per fin per finger")

`MPRcz(CGSL, 0.0, "F/m", "Overlap capacitance between gate and lightly-doped source region (CGEOMOD = 0, 2)")
`MPRnb(LCGSL, 0.0, "F", "L-term of CGSL")
`MPRnb(NCGSL, 0.0, "F/m", "N-term of CGSL")
`MPRnb(PCGSL, 0.0, "F", "P-term of CGSL")

`MPRcz(CGDL, CGSL, "F/m", "Overlap capacitance between gate and lightly-doped drain region (CGEOMOD = 0, 2)")
`MPRnb(LCGDL, LCGSL, "F", "L-term of CGDL")
`MPRnb(NCGDL, NCGSL, "F/m", "N-term of CGDL")
`MPRnb(PCGDL, PCGSL, "F", "P-term of CGDL")

`MPRcz(CGBL, 0.0, "F/m", "Bias-dependent component of gate-to-substrate overlap capacitance per unit channel length per fin per finger")
`MPRnb(LCGBL, 0.0, "F", "L-term of CGBL")
`MPRnb(NCGBL, 0.0, "F/m", "N-term of CGBL")
`MPRnb(PCGBL, 0.0, "F", "P-term of CGBL")

`MPRco(CKAPPAS, 0.6, "V", 2.0e-2, inf, "Coefficient of bias-dependent overlap capacitance for the source side (CGEOMOD = 0, 2)")
`MPRnb(LCKAPPAS, 0.0, "m*V", "L-term of CKAPPAS")
`MPRnb(NCKAPPAS, 0.0, "V", "N-term of CKAPPAS")
`MPRnb(PCKAPPAS, 0.0, "m*V", "P-term of CKAPPAS")

`MPRco(CKAPPAD, CKAPPAS, "V", 2.0e-2, inf, "Coefficient of bias-dependent overlap capacitance for the drain side (CGEOMOD = 0, 2)")
`MPRnb(LCKAPPAD, LCKAPPAS, "m*V", "L-term of CKAPPAD")
`MPRnb(NCKAPPAD, NCKAPPAS, "V", "N-term of CKAPPAD")
`MPRnb(PCKAPPAD, PCKAPPAS, "m*V", "P-term of CKAPPAD")

`MPRco(CKAPPAB, 0.6, "V", 2.0e-2, inf, "Bias-dependent gate-to-substrate parasitic capacitance")
`MPRnb(LCKAPPAB, 0.0, "m*V", "L-term of CKAPPAB")
`MPRnb(NCKAPPAB, 0.0, "V", "N-term of CKAPPAB")
`MPRnb(PCKAPPAB, 0.0, "m*V", "P-term of CKAPPAB")

// Source/drain-to-substrate sidewall capacitance
`MPRcz(CSDESW, 0.0, "F/m", "Coefficient for source/drain-to-substrate sidewall capacitance")

// Junction capacitance
`MPRcz(CJS, 5.0e-4, "F/m^2", "Unit area source-side junction capacitance at zero bias")
`MPRcz(CJD, CJS, "F/m^2", "Unit area drain-side junction capacitance at zero bias")
`MPRcz(CJSWS, 5.0e-10, "F/m", "Unit length source-side sidewall junction capacitance at zero bias")
`MPRcz(CJSWD, CJSWS, "F/m", "Unit length drain-side sidewall junction capacitance at zero bias")
`MPRcz(CJSWGS, 0.0, "F/m", "Unit length source-side gate sidewall junction capacitance at zero bias")
`MPRcz(CJSWGD, CJSWGS, "F/m", "Unit length drain-side gate sidewall junction capacitance at zero bias")
`MPRnb(PBS, 1.0, "V", "Source-side bulk junction built-in potential")
`MPRnb(PBD, PBS, "V", "Drain-side bulk junction built-in potential")
`MPRnb(PBSWS, 1.0, "V", "Built-in potential for Source-side sidewall junction capacitance")
`MPRnb(PBSWD, PBSWS, "V", "Built-in potential for Drain-side sidewall junction capacitance")
`MPRnb(PBSWGS, PBSWS, "V", "Built-in potential for Source-side gate sidewall junction capacitance")
`MPRnb(PBSWGD, PBSWGS, "V", "Built-in potential for Drain-side gate sidewall junction capacitance")
`MPRoz(MJS, 0.5, "", "Source bottom junction capacitance grading coefficient")
`MPRoz(MJD, MJS, "", "Drain bottom junction capacitance grading coefficient")
`MPRoz(MJSWS, 0.33, "", "Source sidewall junction capacitance grading coefficient")
`MPRoz(MJSWD, MJSWS, "", "Drain sidewall junction capacitance grading coefficient")
`MPRoz(MJSWGS, MJSWS, "", "Source-side gate sidewall junction capacitance grading coefficient")
`MPRoz(MJSWGD, MJSWGS, "", "Drain-side gate sidewall junction capacitance grading coefficient")

// Second junction for two-step junction capacitance
`MPRcz(SJS, 0.0, "", "Constant for source-side two-step second junction")
`MPRcz(SJD, SJS, "", "Constant for drain-side two-step second junction")
`MPRcz(SJSWS, 0.0, "", "Constant for source-side sidewall two-step second junction")
`MPRcz(SJSWD, SJSWS, "", "Constant for drain-side sidewall two-step second junction")
`MPRcz(SJSWGS, 0.0, "", "Constant for source-side gate sidewall two-step second junction")
`MPRcz(SJSWGD, SJSWGS, "", "Constant for source-side gate sidewall two-step second junction")
`MPRnb(MJS2, 1.25e-1, "", "Source bottom two-step second junction capacitance grading coefficient")
`MPRnb(MJD2, MJS2, "", "Drain bottom two-step second junction capacitance grading coefficient")
`MPRnb(MJSWS2, 8.3e-2, "", "Source sidewall two-step second junction capacitance grading coefficient")
`MPRnb(MJSWD2, MJSWS2, "", "Drain sidewall two-step second junction capacitance grading coefficient")
`MPRnb(MJSWGS2, MJSWS2, "", "Source-side gate sidewall two-step second junction capacitance grading coefficient")
`MPRnb(MJSWGD2, MJSWGS2, "", "Drain-side gate sidewall two-step second junction capacitance grading coefficient")

// Junction current
`MPRcz(JSS, 1.0e-4, "A/m^2", "Bottom source junction reverse saturation current density")
`MPRcz(JSD, JSS, "A/m^2", "Bottom drain junction reverse saturation current density")
`MPRcz(JSWS, 0.0, "A/m", "Unit length reverse saturation current for sidewall source junction")
`MPRcz(JSWD, JSWS, "A/m", "Unit length reverse saturation current for sidewall drain junction")
`MPRcz(JSWGS, 0.0, "A/m", "Unit length reverse saturation current for gate-edge sidewall source junction")
`MPRcz(JSWGD, JSWGS, "A/m", "Unit length reverse saturation current for gate-edge sidewall drain junction")
`MPRoz(NJS, 1.0, "", "Source junction emission coefficient")
`MPRoz(NJD, NJS, "", "Drain junction emission coefficient")
`MPRnb(IJTHSFWD, 0.1, "A", "Forward source diode breakdown limiting current")
`MPRnb(IJTHDFWD, IJTHSFWD, "A", "Forward drain diode breakdown limiting current")
`MPRnb(IJTHSREV, 0.1, "A", "Reverse source diode breakdown limiting current")
`MPRnb(IJTHDREV, IJTHSREV, "A", "Reverse drain diode breakdown limiting current")
`MPRnb(BVS, 1.0e1, "V", "Source diode breakdown voltage")
`MPRnb(BVD, BVS, "V", "Drain diode breakdown voltage")
`MPRex(XJBVS, 1.0, "", 0.0, "Fitting parameter for source diode breakdown current")
`MPRex(XJBVD, XJBVS, "", 0.0, "Fitting parameter for drain diode breakdown current")

// Tunneling component of junction current
`MPRnb(JTSS, 0.0, "A/m^2", "Bottom source junction trap-assisted saturation current density")
`MPRnb(JTSD, JTSS, "A/m^2", "Bottom drain junction trap-assisted saturation current density")
`MPRnb(JTSSWS, 0.0, "A/m", "Unit length trap-assisted saturation current for sidewall source junction")
`MPRnb(JTSSWD, JTSSWS, "A/m", "Unit length trap-assisted saturation current for sidewall drain junction")
`MPRnb(JTSSWGS, 0.0, "A/m", "Unit length trap-assisted saturation current for gate-edge sidewall source junction")
`MPRnb(JTSSWGD, JTSSWGS, "A/m", "Unit length trap-assisted saturation current for gate-edge sidewall drain junction")
`MPRcz(JTWEFF, 0.0, "m", "Trap-assisted tunneling current width dependence")
`MPRnb(NJTS, 2.0e1, "", "Non-ideality factor for JTSS")
`MPRnb(NJTSD, NJTS, "", "Non-ideality factor for JTSD")
`MPRnb(NJTSSW, 2.0e1, "", "Non-ideality factor for JTSSWS")
`MPRnb(NJTSSWD, NJTSSW, "", "Non-ideality factor for JTSSWD")
`MPRnb(NJTSSWG, 2.0e1, "", "Non-ideality factor for JTSSWGS")
`MPRnb(NJTSSWGD, NJTSSWG, "", "Non-ideality factor for JTSSWGD")
`MPRnb(VTSS, 1.0e1, "V", "Bottom source junction trap-assisted current voltage dependent parameter")
`MPRnb(VTSD, VTSS, "V", "Bottom drain junction trap-assisted current voltage dependent parameter")
`MPRnb(VTSSWS, 1.0e1, "V", "Unit length trap-assisted current voltage dependent parameter for sidewall source junction")
`MPRnb(VTSSWD, VTSSWS, "V", "Unit length trap-assisted current voltage dependent parameter for sidewall drain junction")
`MPRnb(VTSSWGS, 1.0e1, "V", "Unit length trap-assisted current voltage dependent parameter for gate-edge sidewall source junction")
`MPRnb(VTSSWGD, VTSSWGS, "V", "Unit length trap-assisted current voltage dependent parameter for gate-edge sidewall drain junction")

// Recombination-generation current
`MPRnb(LINTIGEN, 0.0, "m", "Lint for thermal generation current")

`MPRnb(NTGEN, 1.0, "", "Thermal generation current parameter")
`MPRnb(LNTGEN, 0.0, "m", "L-term of NTGEN")
`MPRnb(NNTGEN, 0.0, "", "N-term of NTGEN")
`MPRnb(PNTGEN, 0.0, "m", "P-term of NTGEN")

`MPRnb(AIGEN, 0.0, "/(m^3*V)", "Thermal generation current parameter")
`MPRnb(LAIGEN, 0.0, "/(m^2*V)", "L-term of AIGEN")
`MPRnb(NAIGEN, 0.0, "/(m^3*V)", "N-term of AIGEN")
`MPRnb(PAIGEN, 0.0, "/(m^2*V)", "P-term of AIGEN")

`MPRnb(BIGEN, 0.0, "/(m^3*V^3)", "Thermal generation current parameter")
`MPRnb(LBIGEN, 0.0, "/(m^2*V^3)", "L-term of BIGEN")
`MPRnb(NBIGEN, 0.0, "/(m^3*V^3)", "N-term of BIGEN")
`MPRnb(PBIGEN, 0.0, "/(m^2*V^3)", "P-term of BIGEN")

// NQS gate resistance model & charge deficit model
`MPRnb(XRCRG1, 12.0, "", "Parameter for non-quasistatic gate resistance NQSMOD = 1, 2")
`MPRnb(LXRCRG1, 0.0, "m", "L-term of XRCRG1")
`MPRnb(NXRCRG1, 0.0, "", "N-term of XRCRG1")
`MPRnb(PXRCRG1, 0.0, "m", "P-term of XRCRG1")

`MPRnb(XRCRG2, 1.0, "", "Parameter for non-quasistatic gate resistance NQSMOD = 1, 2")
`MPRnb(LXRCRG2, 0.0, "m", "L-term of XRCRG2")
`MPRnb(NXRCRG2, 0.0, "", "N-term of XRCRG2")
`MPRnb(PXRCRG2, 0.0, "m", "P-term of XRCRG2")

// Flicker noise
`MPRcz(EF, 1.0, "", "Flicker noise frequency exponent")
`MPRcz(EM, 4.1e7, "V/m", "Flicker noise parameter")
`MPRcz(NOIA, 6.25e39, "s^(1-EF)/(eV*m^3)", "Flicker noise parameter")
`MPRcz(NOIB, 3.125e24, "s^(1-EF)/(eV*m)", "Flicker noise parameter")
`MPRcz(NOIC, 8.75e7, "m*s^(1-EF)/eV", "Flicker noise parameter")
`MPRnb(LINTNOI, 0.0, "m", "L offset for flicker noise calculation")

// Thermal noise
`MPRcz(NTNOI, 1.0, "", "Thermal noise parameter")

// Correlated thermal noise
`MPRcz(RNOIA, 0.5774, "", "Empirical parameter for Sid level")
`MPRnb(TNOIA, 0.0, "/m", "Empirical parameter for Leff trend of Sid")
`MPRcz(RNOIB, 0.3652, "", "Empirical parameter for Sig level")
`MPRnb(TNOIB, 0.0, "/m", "Empirical parameter for Leff trend of Sig")
`MPRcz(RNOIC, 0.3953, "", "Empirical parameter for correlation coefficient")
`MPRnb(TNOIC, 0.0, "/m", "Empirical parameter for Leff trend of correlation coefficient")
`MPRcz(RNOIK, 0.0, "", "Empirical parameter for Sid level at low Ids")
`MPRnb(TNOIK, 0.0, "/m", "Empirical parameter for Leff trend of Sid at low Ids")
`MPRcz(TNOIK2, 0.1, "", "Empirical parameter for sensitivity of RNOIK")

// Temperature effects
`MPRco(TNOM, 27.0, "degC", -`P_CELSIUS0, inf, "Temperature at which the model is extracted")
`MPRnb(TBGASUB, 7.02e-4, "eV/K", "Bandgap temperature coefficient")
`MPRnb(TBGBSUB, 1.108e3, "K", "Bandgap temperature coefficient")
`MPRnb(KT1L, 0.0, "V*m", "Vth temperature L coefficient")
`MPRnb(TCJ, 0.0, "/K", "Temperature coefficient for CJS/CJD")
`MPRnb(TCJSW, 0.0, "/K", "Temperature coefficient for CJSWS/CJSWD")
`MPRnb(TCJSWG, 0.0, "/K", "Temperature coefficient for CJSWGS/CJSWGD")
`MPRnb(TPB, 0.0, "/K", "Temperature coefficient for PBS/PBD")
`MPRnb(TPBSW, 0.0, "/K", "Temperature coefficient for PBSWS/PBSWD")
`MPRnb(TPBSWG, 0.0, "/K", "Temperature coefficient for PBSWGS/PBSWGD")
`MPRnb(XTIS, 3.0, "", "Source junction current temperature exponent")
`MPRnb(XTID, XTIS, "", "Drain junction current temperature exponent")
`MPRnb(XTSS, 2.0e-2, "", "Power dependence of JTSS on temperature")
`MPRnb(XTSD, XTSS, "", "Power dependence of JTSD on temperature")
`MPRnb(XTSSWS, 2.0e-2, "", "Power dependence of JTSSWS on temperature")
`MPRnb(XTSSWD, XTSSWS, "", "Power dependence of JTSSWD on temperature")
`MPRnb(XTSSWGS, 2.0e-2, "", "Power dependence of JTSSWGS on temperature")
`MPRnb(XTSSWGD, XTSSWGS, "", "Power dependence of JTSSWGD on temperature")
`MPRnb(TNJTS, 0.0, "", "Temperature coefficient for NJTS")
`MPRnb(TNJTSD, TNJTS, "", "Temperature coefficient for NJTSD")
`MPRnb(TNJTSSW, 0.0, "", "Temperature coefficient for NJTSSW")
`MPRnb(TNJTSSWD, TNJTSSW, "", "Temperature coefficient for NJTSSWD")
`MPRnb(TNJTSSWG, 0.0, "", "Temperature coefficient for NJTSSWG")
`MPRnb(TNJTSSWGD, TNJTSSWG, "", "Temperature coefficient for NJTSSWGD")

`MPRnb(KT1, 0.0, "V", "Vth temperature coefficient")
`MPRnb(LKT1, 0.0, "m*V", "L-term of KT1")
`MPRnb(NKT1, 0.0, "V", "N-term of KT1")
`MPRnb(PKT1, 0.0, "m*V", "P-term of KT1")

`MPRnb(TSS, 0.0, "/K", "Swing temperature coefficient")
`MPRnb(LTSS, 0.0, "m/K", "L-term of TSS")
`MPRnb(NTSS, 0.0, "/K", "N-term of TSS")
`MPRnb(PTSS, 0.0, "m/K", "P-term of TSS")

`MPRnb(IIT, -0.5, "", "Impact ionization temperature dependence for IIMOD = 1")
`MPRnb(LIIT, 0.0, "m", "L-term of IIT")
`MPRnb(NIIT, 0.0, "", "N-term of IIT")
`MPRnb(PIIT, 0.0, "m", "P-term of IIT")

`MPRnb(TII, 0.0, "", "Impact ionization temperature dependence for IIMOD = 2")
`MPRnb(LTII, 0.0, "m", "L-term of TII")
`MPRnb(NTII, 0.0, "", "N-term of TII")
`MPRnb(PTII, 0.0, "m", "P-term of TII")

`MPRnb(TGIDL, -3.0e-3, "/K", "GIDL/GISL temperature dependence")
`MPRnb(LTGIDL, 0.0, "m/K", "L-term of TGIDL")
`MPRnb(NTGIDL, 0.0, "/K", "N-term of TGIDL")
`MPRnb(PTGIDL, 0.0, "m/K", "P-term of TGIDL")

`MPRnb(IGT, 2.5, "", "Gate current temperature dependence")
`MPRnb(LIGT, 0.0, "m", "L-term of IGT")
`MPRnb(NIGT, 0.0, "", "N-term of IGT")
`MPRnb(PIGT, 0.0, "m", "P-term of IGT")

// Self-heating
`MPRcz(RTH0, 1.0e-2, "ohm*m*K/W", "Thermal resistance")
`MPRcz(CTH0, 1.0e-5, "W*s/(m*K)", "Thermal capacitance")
`MPRcz(WTH0, 0.0, "m", "Width dependence coefficient for Rth and Cth")
`MPRcz(ASHEXP, 1.0, "", "Exponent to tune RTH dependence of NFINTOTAL")
`MPRcz(BSHEXP, 1.0, "", "Exponent to tune RTH dependence of NF")

// Unified model
`MPRoz(ACH_UFCM, 1.0, "m^2", "Area of the channel for the unified model")
`MPRoz(CINS_UFCM, 1.0, "F/m", "Insulator capacitance for the unified model")
`MPRoz(W_UFCM, 1.0, "m", "Effective channel width for the unified model")
`MPRcz(TFIN_TOP, 0.0, "m", "If non-zero, top fin thickness for trapezoidal triple gate")
`MPRcz(TFIN_BASE, 0.0, "m", "If non-zero, base fin thickness for trapezoidal triple gate")
`MPRcz(QMFACTORCV, 0.0, "", "Charge dependence taking QM effects into account")
`MPRcz(ALPHA_UFCM, 0.5556, "", "Mobile charge scaling term taking QM effects into account")

// Operating-point information
`OPP(WEFF, "m", "Effective width for I-V")
`OPP(LEFF, "m", "Effective length for I-V")
`OPP(WEFFCV, "m", "Effective width for C-V")
`OPP(LEFFCV, "m", "Effective length for C-V")
`OPM(IDS, "A", "Intrinsic drain current")
`OPM(IDEFF, "A", "Total drain current")
`OPM(ISEFF, "A", "Total source current")
`OPM(IGTOT, "A", "Total gate current")
`OPM(IDSGEN, "A", "Generation-recombination current")
`OPM(III, "A", "Impact ionization current")
`OPM(IGIDL, "A", "GIDL current")
`OPM(IGISL, "A", "GISL current")
`OPM(IJSB, "A", "Source-to-substrate junction current")
`OPM(IJDB, "A", "Drain-to-substrate junction current")
`OPM(ISUB, "A", "Substrate current")
`OPP(BETA, "A/V^2", "Drain current prefactor per fin per finger")
`OPP(VDSSAT, "V", "Drain-to-source saturation voltage")
`OPP(VDSEFF, "V", "Effective drain-to-source voltage")
`OPP(VFB, "V", "Flatband voltage")
`OPP(VTH, "V", "Threshold voltage")
`OPM(GM, "A/V", "Transconductance")
`OPM(GDS, "A/V", "Output conductance")
`OPM(GMBS, "A/V", "Substrate conductance")
`OPM(QGI, "C", "Intrinsic gate charge")
`OPM(QDI, "C", "Intrinsic drain charge")
`OPM(QSI, "C", "Intrinsic source charge")
`OPM(QBI, "C", "Intrinsic substrate charge")
`OPM(QG, "C", "Total gate charge")
`OPM(QD, "C", "Total drain charge")
`OPM(QS, "C", "Total source charge")
`OPM(QB, "C", "Total substrate charge")
`OPM(CGGI, "F", "Intrinsic gate capacitance")
`OPM(CGSI, "F", "Intrinsic gate-to-source capacitance")
`OPM(CGDI, "F", "Intrinsic gate-to-drain capacitance")
`OPM(CGEI, "F", "Intrinsic gate-to-substrate capacitance")
`OPM(CDGI, "F", "Intrinsic drain-to-gate capacitance")
`OPM(CDDI, "F", "Intrinsic drain capacitance")
`OPM(CDSI, "F", "Intrinsic drain-to-source capacitance")
`OPM(CDEI, "F", "Intrinsic drain-to-substrate capacitance")
`OPM(CSGI, "F", "Intrinsic source-to-gate capacitance")
`OPM(CSDI, "F", "Intrinsic source-to-drain capacitance")
`OPM(CSSI, "F", "Intrinsic source capacitance")
`OPM(CSEI, "F", "Intrinsic source-to-substrate capacitance")
`OPM(CEGI, "F", "Intrinsic substrate-to-gate capacitance")
`OPM(CEDI, "F", "Intrinsic substrate-to-drain capacitance")
`OPM(CESI, "F", "Intrinsic substrate-to-source capacitance")
`OPM(CEEI, "F", "Intrinsic substrate capacitance")
`OPM(CGG, "F", "Total gate capacitance")
`OPM(CGS, "F", "Total gate-to-source capacitance")
`OPM(CGD, "F", "Total gate-to-drain capacitance")
`OPM(CGE, "F", "Total gate-to-substrate capacitance")
`OPM(CDG, "F", "Total drain-to-gate capacitance")
`OPM(CDD, "F", "Total drain capacitance")
`OPM(CDS, "F", "Total drain-to-source capacitance")
`OPM(CDE, "F", "Total drain-to-substrate capacitance")
`OPM(CSG, "F", "Total source-to-gate capacitance")
`OPM(CSD, "F", "Total source-to-drain capacitance")
`OPM(CSS, "F", "Total source capacitance")
`OPM(CSE, "F", "Total source-to-substrate capacitance")
`OPM(CEG, "F", "Total substrate-to-gate capacitance")
`OPM(CED, "F", "Total substrate-to-drain capacitance")
`OPM(CES, "F", "Total substrate-to-source capacitance")
`OPM(CEE, "F", "Total substrate capacitance")
`OPM(CGSEXT, "F", "External gate-to-source capacitance")
`OPM(CGDEXT, "F", "External gate-to-drain capacitance")
`OPM(CGBOV, "F", "Gate-to-substrate overlap capacitance")
`OPM(CJST, "F", "Total junction and source-to-substrate capacitance")
`OPM(CJDT, "F", "Total junction and drain-to-substrate capacitance")
`OPD(RSGEO, "Ohm", "External bias-independent source resistance")
`OPD(RDGEO, "Ohm", "External bias-independent drain resistance")
`OPM(CFGEO, "F", "Geometric parasitic capacitance")
`OPP(T_TOTAL_K, "K", "Device temperature in Kelvin")
`OPP(T_TOTAL_C, "degC", "Device temperature in Celsius")
`OPP(T_DELTA_SH, "K or degC", "Delta temperature by self-heating")
`OPM(IGS, "A", "Gate-to-source tunneling current")
`OPM(IGD, "A", "Gate-to-drain tunneling current")
`OPM(IGCS, "A", "Gate-to-channel tunneling current at source")
`OPM(IGCD, "A", "Gate-to-channel tunneling current at drain")
`OPM(IGBS, "A", "Gate-to-substrate tunneling current at source")
`OPM(IGBD, "A", "Gate-to-substrate tunneling current at drain")
`OPM(IGBACC, "A", "Gate-to-substrate tunneling current in accumulation")
`OPM(IGBINV, "A", "Gate-to-substrate tunneling current in inversion")
`OPM(DIDSDVG, "A/V", "dIds / dVg")
`OPM(DIDSDVS, "A/V", "dIds / dVs")
`OPM(DIDSDVD, "A/V", "dIds / dVd")
`OPM(DIGSDVG, "A/V", "dIgs / dVg")
`OPM(DIGSDVS, "A/V", "dIgs / dVs")
`OPM(DIGSDVD, "A/V", "dIgs / dVd")
`OPM(DIGDDVG, "A/V", "dIgd / dVg")
`OPM(DIGDDVS, "A/V", "dIgd / dVs")
`OPM(DIGDDVD, "A/V", "dIgd / dVd")
`OPM(DIIIDVG, "A/V", "dIii / dVg")
`OPM(DIIIDVS, "A/V", "dIii / dVs")
`OPM(DIIIDVD, "A/V", "dIii / dVd")
`OPM(DIGIDLDVG, "A/V", "dIgidl / dVg")
`OPM(DIGIDLDVS, "A/V", "dIgidl / dVs")
`OPM(DIGIDLDVD, "A/V", "dIgidl / dVd")
`OPM(DIGISLDVG, "A/V", "dIgisl / dVg")
`OPM(DIGISLDVS, "A/V", "dIgisl / dVs")
`OPM(DIGISLDVD, "A/V", "dIgisl / dVd")
`OPM(CGT, "C/K", "dQg / dTemp")
`OPM(CST, "C/K", "dQs / dTemp")
`OPM(CDT, "C/K", "dQd / dTemp")
`OPM(DIDSDVTH, "A/K", "dIds / dTemp")
`OPM(DIGSDVTH, "A/K", "dIgs / dTemp")
`OPM(DIGDDVTH, "A/K", "dIgd / dTemp")
`OPM(DIIIDVTH, "A/K", "dIii / dTemp")
`OPM(DIGIDLDVTH, "A/K", "dIgidl / dTemp")
`OPM(DIGISLDVTH, "A/K", "dIgisl / dTemp")
`OPM(ITH, "A*V", "Device power")
`OPM(DITHDVTH, "A*V/K", "dPower / dTemp")
`OPM(DITHDVG, "A", "dPower / dVg")
`OPM(DITHDVS, "A", "dPower / dVs")
`OPM(DITHDVD, "A", "dPower / dVd")
