add bsimcmg, from Berkeley's BSIMCMG110.0.0_20160101.tar.gz

This commit is contained in:
rlar 2017-07-06 22:02:36 +02:00 committed by Holger Vogt
parent aa5009fbe4
commit 6bf7af75f5
10 changed files with 5538 additions and 0 deletions

View File

@ -16,6 +16,7 @@ Using: /home/larice/s/ngspice.work/work/ngspice/adms/ADMS/testcases/../admsXml/a
(compile "cd src/spicelib/devices/adms/mextram/admsva && make -if my.mak to")
(compile "cd src/spicelib/devices/adms/psp102/admsva && make -if my.mak to")
(compile "cd src/spicelib/devices/adms/ekv/admsva && make -if my.mak to")
(compile "cd src/spicelib/devices/adms/bsimcmg/admsva && make -if my.mak to")
;; note only some blessed module names are accepted, see ngspiceVersion.xml
;; here I reuse r2_cmc
@ -38,3 +39,7 @@ and all the code in bsim..h
((GEOMOD)==(0))
kommt in /* case */ als GEOMOD statt here->GEOMOD
(compile "wget http://bsim.berkeley.edu/BSIMCMG/BSIMCMG110.0.0_20160101.tar.gz")
(compile "mkdir -p src/spicelib/devices/adms/bsimcmg/admsva")
(compile "tar --dir src/spicelib/devices/adms/bsimcmg/admsva -zxvf BSIMCMG110.0.0_20160101.tar.gz code")

View File

@ -2182,6 +2182,53 @@
</admst:if>
</admst:when>
<admst:when test="[lower-case(name)='bsimcmg']">
<admst:if test="[nilled(variable[name='nmos'])]">
<admst:value-of select="analog"/>
<admst:value-of select="."/>
<admst:new datatype="variable" arguments="%p,nmos,%p">
<admst:push into="module/variable" select="." onduplicate="ignore"/>
<admst:value-to select="sizetype" value="scalar"/>
<admst:value-to select="type" value="integer"/>
<admst:value-to select="input" value="yes"/>
<admst:value-to select="output" value="yes"/>
<admst:value-to select="parametertype" value="model"/>
<admst:value-to select="scope" value="global_model"/>
<admst:new datatype="number" arguments="1">
<admst:value-to select="scalingunit" value="1"/>
<admst:value-of select="."/>
<admst:value-of select="../module"/>
<admst:new datatype="expression" arguments="%p,%p">
<admst:value-of select="."/>
<admst:value-to select="../../default" value="%p"/>
</admst:new>
</admst:new>
</admst:new>
</admst:if>
<admst:if test="[nilled(variable[name='pmos'])]">
<admst:value-of select="analog"/>
<admst:value-of select="."/>
<admst:new datatype="variable" arguments="%p,pmos,%p">
<admst:push into="module/variable" select="." onduplicate="ignore"/>
<admst:value-to select="sizetype" value="scalar"/>
<admst:value-to select="type" value="integer"/>
<admst:value-to select="input" value="yes"/>
<admst:value-to select="output" value="yes"/>
<admst:value-to select="parametertype" value="model"/>
<admst:value-to select="scope" value="global_model"/>
<admst:new datatype="number" arguments="1">
<admst:value-to select="scalingunit" value="1"/>
<admst:value-of select="."/>
<admst:value-of select="../module"/>
<admst:new datatype="expression" arguments="%p,%p">
<admst:value-of select="."/>
<admst:value-to select="../../default" value="%p"/>
</admst:new>
</admst:new>
</admst:new>
</admst:if>
</admst:when>
<admst:otherwise>
<admst:value-of select="name"/>
<admst:fatal format="%s: device not handled by the adms ngspice interface\n"/>

View File

@ -0,0 +1,117 @@
// ********************************************************
// **** BSIM-CMG 110.0.0 released by Sourabh Khandelwal on 01/01/2016 *****/
// * BSIM Common Multi-Gate Model Equations (Verilog-A)
// ********************************************************
//
// ********************************************************
// * Copyright 2016 Regents of the University of California.
// * All rights reserved.
// *
// * Project Director: Prof. Chenming Hu.
// * Authors: Sriramkumar V., Navid Paydavosi, Juan Duarte, Darsen Lu, Sourabh Khandelwal
// * Chung-Hsun Lin, Mohan Dunga, Shijing Yao,
// * Ali Niknejad, Chenming Hu
// ********************************************************
// ********************************************************
// * NONDISCLOSURE STATEMENT
// Software is distributed as is, completely without warranty or service
// support. The University of California and its employees are not liable
// for the condition or performance of the software.
// The University of California owns the copyright and grants users a perpetual,
// irrevocable, worldwide, non-exclusive, royalty-free license with
// respect to the software as set forth below.
// The University of California hereby disclaims all implied warranties.
// The University of California grants the users the right to modify, copy,
// and redistribute the software and documentation, both within the user's
// organization and externally, subject to the following restrictions
// 1. The users agree not to charge for the University of California code
// itself but may charge for additions, extensions, or support.
// 2. In any product based on the software, the users agree to acknowledge
// the University of California that developed the software. This
// acknowledgment shall appear in the product documentation.
// 3. The users agree to obey all U.S. Government restrictions governing
// redistribution or export of the software.
// 4. The users agree to reproduce any copyright notice which appears on
// the software on any copy or modification of such made available
// to others
// Agreed to on __Jan 01, 2016__________________
// By: ___University of California, Berkeley____
// ___Chenming Hu_____________________
// ___Professor in Graduate School _______
// ********************************************************
`include "constants.vams"
`include "disciplines.vams"
/**************************************************************/
/* SHMOD is a model parameter */
/* SHMOD = 1 : Self-heating turned on */
/* SHMOD = 0 : Self-heating turned off */
/* */
/* RDSMOD is a model parameter */
/* RDSMOD = 1 : External source/drain resistance model */
/* RDSMOD = 0 : Internal source/drain resistance model */
/* RDSMOD = 2 : Internal Bias Dependent and Bias Independent part of source/drain resistance */
/* */
/* NQSMOD is a model parameter */
/* NQSMOD = 1 : NQS Resistance / gi node turned on */
/* NQSMOD = 0 : NQS Resistance / gi node turned off */
/* */
/* RGATEMOD is a model parameter */
/* RGATEMOD = 1 : Gate Resistance / ge node turned on */
/* RGATEMOD = 0 : Gate Resistance / ge node turned off */
/**************************************************************/
//
// In Verilog-A the number of internal nodes cannot be controlled by
// a model parameter. Therefore we use `define statements
// to control it. Comment the following lines whenever
// possible for best computational efficiency.
`define __OPINFO__
`define __DEBUG__
`define __SHMOD__
`define __RDSMOD__
//`define __NQSMOD1__
//`define __NQSMOD2__
`define __RGATEMOD__
`define __TNOIMOD1__ //Correlated Thermal Noise Switch
`include "common_defs.include"
`include "bsimcmg_cfringe.include"
module bsimcmg(d, g, s, e, t);
inout g, d, s, e, t;
electrical g, d, s, e;
electrical si, di;
`ifdef __NQSMOD1__
electrical gi;
`endif
`ifdef __NQSMOD2__
electrical q;
`endif
`ifdef __RGATEMOD__
electrical ge;
`endif
`ifdef __SHMOD__
thermal t;
branch (t) rth_branch;
branch (t) ith_branch;
`else
thermal t;
`endif
// Internal node controlled by Correlated Thermal Noise Switch
`ifdef __TNOIMOD1__
electrical N;
`endif
`include "bsimcmg_body.include"
endmodule

View File

@ -0,0 +1,756 @@
// ********************************************************
// **** BSIM-CMG 110.0.0 released by Sourabh Khandelwal on 01/01/2016 ****/
// * BSIM Common Multi-Gate Model Equations (Verilog-A)
// ********************************************************
//
// ********************************************************
// * Copyright 2016 Regents of the University of California.
// * All rights reserved.
// *
// * Project Director: Prof. Chenming Hu.
// * Authors: Sriramkumar V., Navid Paydavosi, Juan Duarte, Darsen Lu, Sourabh Khandelwal
// * Chung-Hsun Lin, Mohan Dunga, Shijing Yao,
// * Ali Niknejad, Chenming Hu
// ********************************************************
// ********************************************************
// * NONDISCLOSURE STATEMENT
// Software is distributed as is, completely without warranty or service
// support. The University of California and its employees are not liable
// for the condition or performance of the software.
// The University of California owns the copyright and grants users a perpetual,
// irrevocable, worldwide, non-exclusive, royalty-free license with
// respect to the software as set forth below.
// The University of California hereby disclaims all implied warranties.
// The University of California grants the users the right to modify, copy,
// and redistribute the software and documentation, both within the user's
// organization and externally, subject to the following restrictions
// 1. The users agree not to charge for the University of California code
// itself but may charge for additions, extensions, or support.
// 2. In any product based on the software, the users agree to acknowledge
// the University of California that developed the software. This
// acknowledgment shall appear in the product documentation.
// 3. The users agree to obey all U.S. Government restrictions governing
// redistribution or export of the software.
// 4. The users agree to reproduce any copyright notice which appears on
// the software on any copy or modification of such made available
// to others
// Agreed to on __Jan 01, 2016_________________
// By: ___University of California, Berkeley____
// ___Chenming Hu_____________________
// ___Professor in Graduate School _______
// ********************************************************
`MPRnb( LNBODY ,0.0 ,"m^-2" ,"" )
`MPRnb( NNBODY ,0.0 ,"m^-2" ,"" )
`MPRnb( PNBODY ,0.0 ,"m^-1" ,"" )
`MPRnb( LPHIG ,0.0 ,"m*eV" ,"" )
`MPRnb( NPHIG ,0.0 ,"m*eV" ,"" )
`MPRnb( PPHIG ,0.0 ,"(m^2)*eV" ,"" )
`MPRnb( LNGATE ,0.0 ,"m^-2" ,"" )
`MPRnb( NNGATE ,0.0 ,"m^-2" ,"" )
`MPRnb( PNGATE ,0.0 ,"m^-1" ,"" )
`MPRnb( LCIT ,0.0 ,"F/m" ,"" )
`MPRnb( NCIT ,0.0 ,"F/m" ,"" )
`MPRnb( PCIT ,0.0 ,"F" ,"" )
`MPRnb( LCITR ,LCIT ,"" ,"" )
`MPRnb( NCITR ,NCIT ,"" ,"" )
`MPRnb( PCITR ,PCIT ,"" ,"" )
`MPRnb( LCDSC ,0.0 ,"F/m" ,"" )
`MPRnb( NCDSC ,0.0 ,"F/m" ,"" )
`MPRnb( PCDSC ,0.0 ,"F" ,"" )
`MPRnb( LCDSCD ,0.0 ,"F/m" ,"" )
`MPRnb( NCDSCD ,0.0 ,"F/m" ,"" )
`MPRnb( PCDSCD ,0.0 ,"F" ,"" )
`MPRnb( LCDSCDR ,LCDSCD ,"F/m" ,"" )
`MPRnb( NCDSCDR ,NCDSCD ,"F/m" ,"" )
`MPRnb( PCDSCDR ,PCDSCD ,"F" ,"" )
`MPRnb( LDVT0 ,0.0 ,"" ,"" )
`MPRnb( NDVT0 ,0.0 ,"" ,"" )
`MPRnb( PDVT0 ,0.0 ,"" ,"" )
`MPRnb( LDVT1 ,0.0 ,"" ,"" )
`MPRnb( NDVT1 ,0.0 ,"" ,"" )
`MPRnb( PDVT1 ,0.0 ,"" ,"" )
`MPRnb( LDVT1SS ,LDVT1 ,"" ,"" )
`MPRnb( NDVT1SS ,NDVT1 ,"" ,"" )
`MPRnb( PDVT1SS ,PDVT1 ,"" ,"" )
`MPRnb( LPHIN ,0.0 ,"m*V" ,"" )
`MPRnb( NPHIN ,0.0 ,"m*V" ,"" )
`MPRnb( PPHIN ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LETA0 ,0.0 ,"" ,"" )
`MPRnb( NETA0 ,0.0 ,"" ,"" )
`MPRnb( PETA0 ,0.0 ,"" ,"" )
`MPRnb( LETA0R ,LETA0 ,"" ,"" )
`MPRnb( NETA0R ,NETA0 ,"" ,"" )
`MPRnb( PETA0R ,PETA0 ,"" ,"" )
`MPRnb( LDSUB ,0.0 ,"" ,"" )
`MPRnb( NDSUB ,0.0 ,"" ,"" )
`MPRnb( PDSUB ,0.0 ,"" ,"" )
`MPRnb( LK1RSCE ,0.0 ,"m*V^(1/2)" ,"" )
`MPRnb( NK1RSCE ,0.0 ,"m*V^(1/2)" ,"" )
`MPRnb( PK1RSCE ,0.0 ,"(m^2)*V^(1/2)" ,"" )
`MPRnb( LLPE0 ,0.0 ,"m^2" ,"" )
`MPRnb( NLPE0 ,0.0 ,"m^2" ,"" )
`MPRnb( PLPE0 ,0.0 ,"m^3" ,"" )
`MPRnb( LDVTSHIFT ,0.0 ,"m*V" ,"" )
`MPRnb( NDVTSHIFT ,0.0 ,"m*V" ,"" )
`MPRnb( PDVTSHIFT ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LDVTSHIFTR ,LDVTSHIFT ,"" ,"" )
`MPRnb( NDVTSHIFTR ,NDVTSHIFT ,"" ,"" )
`MPRnb( PDVTSHIFTR ,PDVTSHIFT ,"" ,"" )
`MPRnb( LPHIBE ,0.0 ,"m*V" ,"" )
`MPRnb( NPHIBE ,0.0 ,"m*V" ,"" )
`MPRnb( PPHIBE ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LK0 ,0.0 ,"m*V" ,"" )
`MPRnb( NK0 ,0.0 ,"m*V" ,"" )
`MPRnb( PK0 ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LK01 ,0.0 ,"(m*V)/K" ,"" )
`MPRnb( NK01 ,0.0 ,"(m*V)/K" ,"" )
`MPRnb( PK01 ,0.0 ,"(m^2*V)/K" ,"" )
`MPRnb( LK0SI ,0.0 ,"" ,"" )
`MPRnb( NK0SI ,0.0 ,"" ,"" )
`MPRnb( PK0SI ,0.0 ,"" ,"" )
`MPRnb( LK0SI1 ,0.0 ,"m/K" ,"" )
`MPRnb( NK0SI1 ,0.0 ,"m/K" ,"" )
`MPRnb( PK0SI1 ,0.0 ,"(m^2)/K" ,"" )
`MPRnb( LK1 ,0.0 ,"m*V^(1/2)" ,"" )
`MPRnb( NK1 ,0.0 ,"m*V^(1/2)" ,"" )
`MPRnb( PK1 ,0.0 ,"(m^2)*V^(1/2)" ,"" )
`MPRnb( LK11 ,0.0 ,"(m*V^(-1/2))/K" ,"" )
`MPRnb( NK11 ,0.0 ,"(m*V^(-1/2))/K" ,"" )
`MPRnb( PK11 ,0.0 ,"(m^2*V^(-1/2))/K" ,"" )
`MPRnb( LK2SI ,LK0SI ,"" ,"" )
`MPRnb( NK2SI ,NK0SI ,"" ,"" )
`MPRnb( PK2SI ,PK0SI ,"" ,"" )
`MPRnb( LK2SI1 ,LK0SI1 ,"" ,"" )
`MPRnb( NK2SI1 ,NK0SI1 ,"" ,"" )
`MPRnb( PK2SI1 ,PK0SI1 ,"" ,"" )
`MPRnb( LK0SISAT ,0.0 ,"" ,"" )
`MPRnb( NK0SISAT ,0.0 ,"" ,"" )
`MPRnb( PK0SISAT ,0.0 ,"" ,"" )
`MPRnb( LK0SISAT1 ,0.0 ,"" ,"" )
`MPRnb( NK0SISAT1 ,0.0 ,"" ,"" )
`MPRnb( PK0SISAT1 ,0.0 ,"" ,"" )
`MPRnb( LK2SISAT ,LK0SISAT ,"" ,"" )
`MPRnb( NK2SISAT ,NK0SISAT ,"" ,"" )
`MPRnb( PK2SISAT ,PK0SISAT ,"" ,"" )
`MPRnb( LK2SISAT1 ,LK0SISAT1 ,"" ,"" )
`MPRnb( NK2SISAT1 ,NK0SISAT1 ,"" ,"" )
`MPRnb( PK2SISAT1 ,PK0SISAT1 ,"" ,"" )
`MPRnb( LK2SAT ,0.0 ,"" ,"" )
`MPRnb( NK2SAT ,0.0 ,"" ,"" )
`MPRnb( PK2SAT ,0.0 ,"" ,"" )
`MPRnb( LK2SAT1 ,0.0 ,"" ,"" )
`MPRnb( NK2SAT1 ,0.0 ,"" ,"" )
`MPRnb( PK2SAT1 ,0.0 ,"" ,"" )
`MPRnb( LK2 ,0.0 ,"" ,"" )
`MPRnb( NK2 ,0.0 ,"" ,"" )
`MPRnb( PK2 ,0.0 ,"" ,"" )
`MPRnb( LK21 ,0.0 ,"" ,"" )
`MPRnb( NK21 ,0.0 ,"" ,"" )
`MPRnb( PK21 ,0.0 ,"" ,"" )
`MPRnb( LDVTB ,0.0 ,"" ,"" )
`MPRnb( NDVTB ,0.0 ,"" ,"" )
`MPRnb( PDVTB ,0.0 ,"" ,"" )
`MPRnb( LLPEB ,0.0 ,"" ,"" )
`MPRnb( NLPEB ,0.0 ,"" ,"" )
`MPRnb( PLPEB ,0.0 ,"" ,"" )
`MPRnb( LQMFACTOR ,0.0 ,"" ,"" )
`MPRnb( NQMFACTOR ,0.0 ,"" ,"" )
`MPRnb( PQMFACTOR ,0.0 ,"" ,"" )
`MPRnb( LQMTCENCV ,0.0 ,"" ,"" )
`MPRnb( NQMTCENCV ,0.0 ,"" ,"" )
`MPRnb( PQMTCENCV ,0.0 ,"" ,"" )
`MPRnb( LQMTCENCVA ,0.0 ,"" ,"" )
`MPRnb( NQMTCENCVA ,0.0 ,"" ,"" )
`MPRnb( PQMTCENCVA ,0.0 ,"" ,"" )
`MPRnb( LVSAT ,0.0 ,"(m^2)/s" ,"" )
`MPRnb( NVSAT ,0.0 ,"(m^2)/s" ,"" )
`MPRnb( PVSAT ,0.0 ,"(m^3)/s" ,"" )
`MPRnb( LVSATR ,LVSAT ,"" ,"" )
`MPRnb( NVSATR ,NVSAT ,"" ,"" )
`MPRnb( PVSATR ,PVSAT ,"" ,"" )
`MPRnb( LVSAT1 ,LVSAT ,"" ,"" )
`MPRnb( NVSAT1 ,NVSAT ,"" ,"" )
`MPRnb( PVSAT1 ,PVSAT ,"" ,"" )
`MPRnb( LVSAT1R ,LVSAT1 ,"(m^2)/s" ,"" )
`MPRnb( NVSAT1R ,NVSAT1 ,"(m^2)/s" ,"" )
`MPRnb( PVSAT1R ,PVSAT1 ,"(m^3)/s" ,"" )
`MPRnb( LPSAT ,0.0 ,"" ,"" )
`MPRnb( NPSAT ,0.0 ,"" ,"" )
`MPRnb( PPSAT ,0.0 ,"" ,"" )
`MPRnb( LDELTAVSAT ,0.0 ,"" ,"" )
`MPRnb( NDELTAVSAT ,0.0 ,"" ,"" )
`MPRnb( PDELTAVSAT ,0.0 ,"" ,"" )
`MPRnb( LKSATIV ,0.0 ,"" ,"" )
`MPRnb( NKSATIV ,0.0 ,"" ,"" )
`MPRnb( PKSATIV ,0.0 ,"" ,"" )
`MPRnb( LKSATIVR ,LKSATIV ,"" ,"" )
`MPRnb( NKSATIVR ,NKSATIV ,"" ,"" )
`MPRnb( PKSATIVR ,PKSATIV ,"" ,"" )
`MPRnb( LVSATCV ,0.0 ,"(m^2)/s" ,"" )
`MPRnb( NVSATCV ,0.0 ,"(m^2)/s" ,"" )
`MPRnb( PVSATCV ,0.0 ,"(m^3)/s" ,"" )
`MPRnb( LPSATCV ,0.0 ,"" ,"" )
`MPRnb( NPSATCV ,0.0 ,"" ,"" )
`MPRnb( PPSATCV ,0.0 ,"" ,"" )
`MPRnb( LDELTAVSATCV ,0.0 ,"" ,"" )
`MPRnb( NDELTAVSATCV ,0.0 ,"" ,"" )
`MPRnb( PDELTAVSATCV ,0.0 ,"" ,"" )
`MPRnb( LMEXP ,0.0 ,"" ,"" )
`MPRnb( NMEXP ,0.0 ,"" ,"" )
`MPRnb( PMEXP ,0.0 ,"" ,"" )
`MPRnb( LMEXPR ,LMEXP ,"" ,"" )
`MPRnb( NMEXPR ,NMEXP ,"" ,"" )
`MPRnb( PMEXPR ,PMEXP ,"" ,"" )
`MPRnb( LPTWG ,0.0 ,"m*(V^-2)" ,"" )
`MPRnb( NPTWG ,0.0 ,"m*(V^-2)" ,"" )
`MPRnb( PPTWG ,0.0 ,"m^2*(V^-2)" ,"" )
`MPRnb( LPTWGR ,LPTWG ,"m*(V^-2)" ,"" )
`MPRnb( NPTWGR ,NPTWG ,"m*(V^-2)" ,"" )
`MPRnb( PPTWGR ,PPTWG ,"m^2*(V^-2)" ,"" )
`MPRnb( LU0 ,0.0 ,"(m^3)/V*s" ,"" )
`MPRnb( NU0 ,0.0 ,"(m^3)/V*s" ,"" )
`MPRnb( PU0 ,0.0 ,"(m^4)/V*s" ,"" )
`MPRnb( LU0R ,LU0 ,"" ,"" )
`MPRnb( NU0R ,NU0 ,"" ,"" )
`MPRnb( PU0R ,PU0 ,"" ,"" )
`MPRnb( LETAMOB ,0.0 ,"" ,"" )
`MPRnb( NETAMOB ,0.0 ,"" ,"" )
`MPRnb( PETAMOB ,0.0 ,"" ,"" )
`MPRnb( LUP ,0.0 ,"m*(um^LPA)" ,"" )
`MPRnb( NUP ,0.0 ,"m*(um^LPA)" ,"" )
`MPRnb( PUP ,0.0 ,"m^2*(um^LPA)" ,"" )
`MPRnb( LUPR ,LUP ,"" ,"" )
`MPRnb( NUPR ,NUP ,"" ,"" )
`MPRnb( PUPR ,PUP ,"" ,"" )
`MPRnb( LUA ,0.0 ,"m*((cm/MV)^EU)" ,"" )
`MPRnb( NUA ,0.0 ,"m*((cm/MV)^EU)" ,"" )
`MPRnb( PUA ,0.0 ,"m^2*((cm/MV)^EU)" ,"" )
`MPRnb( LUAR ,LUA ,"" ,"" )
`MPRnb( NUAR ,NUA ,"" ,"" )
`MPRnb( PUAR ,PUA ,"" ,"" )
`MPRnb( LUC ,0.0 ,"" ,"" )
`MPRnb( NUC ,0.0 ,"" ,"" )
`MPRnb( PUC ,0.0 ,"" ,"" )
`MPRnb( LUCR ,LUC ,"" ,"" )
`MPRnb( NUCR ,NUC ,"" ,"" )
`MPRnb( PUCR ,PUC ,"" ,"" )
`MPRnb( LEU ,0.0 ,"m*(cm/MV)" ,"" )
`MPRnb( NEU ,0.0 ,"m*(cm/MV)" ,"" )
`MPRnb( PEU ,0.0 ,"m^2*(cm/MV)" ,"" )
`MPRnb( LEUR ,LEU ,"" ,"" )
`MPRnb( NEUR ,NEU ,"" ,"" )
`MPRnb( PEUR ,PEU ,"" ,"" )
`MPRnb( LUD ,0.0 ,"m*(cm/MV)" ,"" )
`MPRnb( NUD ,0.0 ,"m*(cm/MV)" ,"" )
`MPRnb( PUD ,0.0 ,"m^2*(cm/MV)" ,"" )
`MPRnb( LUDR ,LUD ,"" ,"" )
`MPRnb( NUDR ,NUD ,"" ,"" )
`MPRnb( PUDR ,PUD ,"" ,"" )
`MPRnb( LUCS ,0.0 ,"" ,"" )
`MPRnb( NUCS ,0.0 ,"" ,"" )
`MPRnb( PUCS ,0.0 ,"" ,"" )
`MPRnb( LPCLM ,0.0 ,"" ,"" )
`MPRnb( NPCLM ,0.0 ,"" ,"" )
`MPRnb( PPCLM ,0.0 ,"" ,"" )
`MPRnb( LPCLMR ,LPCLM ,"" ,"" )
`MPRnb( NPCLMR ,NPCLM ,"" ,"" )
`MPRnb( PPCLMR ,PPCLM ,"" ,"" )
`MPRnb( LPCLMG ,0.0 ,"" ,"" )
`MPRnb( NPCLMG ,0.0 ,"" ,"" )
`MPRnb( PPCLMG ,0.0 ,"" ,"" )
`MPRnb( LPCLMCV ,LPCLM ,"" ,"" )
`MPRnb( NPCLMCV ,NPCLM ,"" ,"" )
`MPRnb( PPCLMCV ,PPCLM ,"" ,"" )
`MPRnb( LA1 ,0.0 ,"m*(V^-2)" ,"" )
`MPRnb( NA1 ,0.0 ,"m*(V^-2)" ,"" )
`MPRnb( PA1 ,0.0 ,"m^2*(V^-2)" ,"" )
`MPRnb( LA11 ,0.0 ,"m*(V^-2/K)" ,"" )
`MPRnb( NA11 ,0.0 ,"m*(V^-2/K)" ,"" )
`MPRnb( PA11 ,0.0 ,"m^2*(V^-2/K)" ,"" )
`MPRnb( LA2 ,0.0 ,"m*(V^-1)" ,"" )
`MPRnb( NA2 ,0.0 ,"m*(V^-1)" ,"" )
`MPRnb( PA2 ,0.0 ,"m^2*(V^-1)" ,"" )
`MPRnb( LA21 ,0.0 ,"m*(V^-1/K)" ,"" )
`MPRnb( NA21 ,0.0 ,"m*(V^-1/K)" ,"" )
`MPRnb( PA21 ,0.0 ,"m^2*(V^-1/K)" ,"" )
`MPRnb( LRDSW ,0.0 ,"m*(ohm-um^WR)" ,"" )
`MPRnb( NRDSW ,0.0 ,"m*(ohm-um^WR)" ,"" )
`MPRnb( PRDSW ,0.0 ,"(m^2)*(ohm-um^WR)" ,"" )
`MPRnb( LRSW ,0.0 ,"m*(ohm-um^WR)" ,"" )
`MPRnb( NRSW ,0.0 ,"m*(ohm-um^WR)" ,"" )
`MPRnb( PRSW ,0.0 ,"(m^2)*(ohm-um^WR)" ,"" )
`MPRnb( LRDW ,0.0 ,"m*(ohm-um^WR)" ,"" )
`MPRnb( NRDW ,0.0 ,"m*(ohm-um^WR)" ,"" )
`MPRnb( PRDW ,0.0 ,"(m^2)*(ohm-um^WR)" ,"" )
`MPRnb( LPRWGS ,0.0 ,"m/V" ,"" )
`MPRnb( NPRWGS ,0.0 ,"m/V" ,"" )
`MPRnb( PPRWGS ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LPRWGD ,0.0 ,"m/V" ,"" )
`MPRnb( NPRWGD ,0.0 ,"m/V" ,"" )
`MPRnb( PPRWGD ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LWR ,0.0 ,"" ,"" )
`MPRnb( NWR ,0.0 ,"" ,"" )
`MPRnb( PWR ,0.0 ,"" ,"" )
`MPRnb( LPDIBL1 ,0.0 ,"" ,"" )
`MPRnb( NPDIBL1 ,0.0 ,"" ,"" )
`MPRnb( PPDIBL1 ,0.0 ,"" ,"" )
`MPRnb( LPDIBL1R ,LPDIBL1 ,"" ,"" )
`MPRnb( NPDIBL1R ,NPDIBL1 ,"" ,"" )
`MPRnb( PPDIBL1R ,PPDIBL1 ,"" ,"" )
`MPRnb( LPDIBL2 ,0.0 ,"" ,"" )
`MPRnb( NPDIBL2 ,0.0 ,"" ,"" )
`MPRnb( PPDIBL2 ,0.0 ,"" ,"" )
`MPRnb( LPDIBL2R ,LPDIBL2 ,"" ,"" )
`MPRnb( NPDIBL2R ,NPDIBL2 ,"" ,"" )
`MPRnb( PPDIBL2R ,PPDIBL2 ,"" ,"" )
`MPRnb( LDROUT ,0.0 ,"" ,"" )
`MPRnb( NDROUT ,0.0 ,"" ,"" )
`MPRnb( PDROUT ,0.0 ,"" ,"" )
`MPRnb( LPVAG ,0.0 ,"" ,"" )
`MPRnb( NPVAG ,0.0 ,"" ,"" )
`MPRnb( PPVAG ,0.0 ,"" ,"" )
`MPRnb( LAIGBINV ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( NAIGBINV ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( PAIGBINV ,0.0 ,"((F*s^2/g)^0.5)*m" ,"" )
`MPRnb( LAIGBINV1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( NAIGBINV1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( PAIGBINV1 ,0.0 ,"((F*s^2/g)^0.5)*(m/K)" ,"" )
`MPRnb( LBIGBINV ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( NBIGBINV ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( PBIGBINV ,0.0 ,"((F*s^2/g)^0.5)*(m/V)" ,"" )
`MPRnb( LCIGBINV ,0.0 ,"m/V" ,"" )
`MPRnb( NCIGBINV ,0.0 ,"m/V" ,"" )
`MPRnb( PCIGBINV ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LEIGBINV ,0.0 ,"m*V" ,"" )
`MPRnb( NEIGBINV ,0.0 ,"m*V" ,"" )
`MPRnb( PEIGBINV ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LNIGBINV ,0.0 ,"" ,"" )
`MPRnb( NNIGBINV ,0.0 ,"" ,"" )
`MPRnb( PNIGBINV ,0.0 ,"" ,"" )
`MPRnb( LAIGBACC ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( NAIGBACC ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( PAIGBACC ,0.0 ,"((F*s^2/g)^0.5)*m" ,"" )
`MPRnb( LAIGBACC1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( NAIGBACC1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( PAIGBACC1 ,0.0 ,"((F*s^2/g)^0.5)*(m/K)" ,"" )
`MPRnb( LBIGBACC ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( NBIGBACC ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( PBIGBACC ,0.0 ,"((F*s^2/g)^0.5)*(m/V)" ,"" )
`MPRnb( LCIGBACC ,0.0 ,"m/V" ,"" )
`MPRnb( NCIGBACC ,0.0 ,"m/V" ,"" )
`MPRnb( PCIGBACC ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LNIGBACC ,0.0 ,"" ,"" )
`MPRnb( NNIGBACC ,0.0 ,"" ,"" )
`MPRnb( PNIGBACC ,0.0 ,"" ,"" )
`MPRnb( LAIGC ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( NAIGC ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( PAIGC ,0.0 ,"((F*s^2/g)^0.5)*m" ,"" )
`MPRnb( LAIGC1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( NAIGC1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( PAIGC1 ,0.0 ,"((F*s^2/g)^0.5)*(m/K)" ,"" )
`MPRnb( LBIGC ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( NBIGC ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( PBIGC ,0.0 ,"((F*s^2/g)^0.5)*(m/V)" ,"" )
`MPRnb( LCIGC ,0.0 ,"m/V" ,"" )
`MPRnb( NCIGC ,0.0 ,"m/V" ,"" )
`MPRnb( PCIGC ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LPIGCD ,0.0 ,"" ,"" )
`MPRnb( NPIGCD ,0.0 ,"" ,"" )
`MPRnb( PPIGCD ,0.0 ,"" ,"" )
`MPRnb( LAIGS ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( NAIGS ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( PAIGS ,0.0 ,"((F*s^2/g)^0.5)*m" ,"" )
`MPRnb( LAIGS1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( NAIGS1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( PAIGS1 ,0.0 ,"((F*s^2/g)^0.5)*(m/K)" ,"" )
`MPRnb( LBIGS ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( NBIGS ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( PBIGS ,0.0 ,"((F*s^2/g)^0.5)*(m/V)" ,"" )
`MPRnb( LCIGS ,0.0 ,"m/V" ,"" )
`MPRnb( NCIGS ,0.0 ,"m/V" ,"" )
`MPRnb( PCIGS ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LAIGD ,LAIGS ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( NAIGD ,NAIGS ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( PAIGD ,PAIGS ,"((F*s^2/g)^0.5)*m" ,"" )
`MPRnb( LAIGD1 ,LAIGS1 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( NAIGD1 ,NAIGS1 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( PAIGD1 ,PAIGS1 ,"((F*s^2/g)^0.5)*(m/K)" ,"" )
`MPRnb( LBIGD ,LBIGS ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( NBIGD ,NBIGS ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( PBIGD ,PBIGS ,"((F*s^2/g)^0.5)*(m/V)" ,"" )
`MPRnb( LCIGD ,LCIGS ,"m/V" ,"" )
`MPRnb( NCIGD ,NCIGS ,"m/V" ,"" )
`MPRnb( PCIGD ,PCIGS ,"(m^2)/V" ,"" )
`MPRnb( LNTOX ,0.0 ,"" ,"" )
`MPRnb( NNTOX ,0.0 ,"" ,"" )
`MPRnb( PNTOX ,0.0 ,"" ,"" )
`MPRnb( LPOXEDGE ,0.0 ,"" ,"" )
`MPRnb( NPOXEDGE ,0.0 ,"" ,"" )
`MPRnb( PPOXEDGE ,0.0 ,"" ,"" )
`MPRnb( LAGISL ,0.0 ,"m/ohm" ,"" )
`MPRnb( NAGISL ,0.0 ,"m/ohm" ,"" )
`MPRnb( PAGISL ,0.0 ,"(m^2)/ohm" ,"" )
`MPRnb( LBGISL ,0.0 ,"V" ,"" )
`MPRnb( NBGISL ,0.0 ,"V" ,"" )
`MPRnb( PBGISL ,0.0 ,"m*V" ,"" )
`MPRnb( LCGISL ,0.0 ,"m*(V^3)" ,"" )
`MPRnb( NCGISL ,0.0 ,"m*(V^3)" ,"" )
`MPRnb( PCGISL ,0.0 ,"(m^2)*(V^3)" ,"" )
`MPRnb( LEGISL ,0.0 ,"m*V" ,"" )
`MPRnb( NEGISL ,0.0 ,"m*V" ,"" )
`MPRnb( PEGISL ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LPGISL ,0.0 ,"" ,"" )
`MPRnb( NPGISL ,0.0 ,"" ,"" )
`MPRnb( PPGISL ,0.0 ,"" ,"" )
`MPRnb( LAGIDL ,LAGISL ,"m/ohm" ,"" )
`MPRnb( NAGIDL ,NAGISL ,"m/ohm" ,"" )
`MPRnb( PAGIDL ,PAGISL ,"(m^2)/ohm" ,"" )
`MPRnb( LBGIDL ,LBGISL ,"V" ,"" )
`MPRnb( NBGIDL ,NBGISL ,"V" ,"" )
`MPRnb( PBGIDL ,PBGISL ,"m*V" ,"" )
`MPRnb( LCGIDL ,LCGISL ,"m*(V^3)" ,"" )
`MPRnb( NCGIDL ,NCGISL ,"m*(V^3)" ,"" )
`MPRnb( PCGIDL ,PCGISL ,"(m^2)*(V^3)" ,"" )
`MPRnb( LEGIDL ,LEGISL ,"m*V" ,"" )
`MPRnb( NEGIDL ,NEGISL ,"m*V" ,"" )
`MPRnb( PEGIDL ,PEGISL ,"(m^2)*V" ,"" )
`MPRnb( LPGIDL ,LPGISL ,"" ,"" )
`MPRnb( NPGIDL ,NPGISL ,"" ,"" )
`MPRnb( PPGIDL ,PPGISL ,"" ,"" )
`MPRnb( LALPHA0 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( NALPHA0 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( PALPHA0 ,0.0 ,"(m^3)/V" ,"" )
`MPRnb( LALPHA1 ,0.0 ,"m/V" ,"" )
`MPRnb( NALPHA1 ,0.0 ,"m/V" ,"" )
`MPRnb( PALPHA1 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LALPHAII0 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( NALPHAII0 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( PALPHAII0 ,0.0 ,"(m^3)/V" ,"" )
`MPRnb( LALPHAII1 ,0.0 ,"m/V" ,"" )
`MPRnb( NALPHAII1 ,0.0 ,"m/V" ,"" )
`MPRnb( PALPHAII1 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LBETA0 ,0.0 ,"m/V" ,"" )
`MPRnb( NBETA0 ,0.0 ,"m/V" ,"" )
`MPRnb( PBETA0 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LBETAII0 ,0.0 ,"m/V" ,"" )
`MPRnb( NBETAII0 ,0.0 ,"m/V" ,"" )
`MPRnb( PBETAII0 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LBETAII1 ,0.0 ,"" ,"" )
`MPRnb( NBETAII1 ,0.0 ,"" ,"" )
`MPRnb( PBETAII1 ,0.0 ,"" ,"" )
`MPRnb( LBETAII2 ,0.0 ,"m*V" ,"" )
`MPRnb( NBETAII2 ,0.0 ,"m*V" ,"" )
`MPRnb( PBETAII2 ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LESATII ,0.0 ,"V" ,"" )
`MPRnb( NESATII ,0.0 ,"V" ,"" )
`MPRnb( PESATII ,0.0 ,"m*V" ,"" )
`MPRnb( LLII ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( NLII ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( PLII ,0.0 ,"(m^3)*V" ,"" )
`MPRnb( LSII0 ,0.0 ,"m/V" ,"" )
`MPRnb( NSII0 ,0.0 ,"m/V" ,"" )
`MPRnb( PSII0 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LSII1 ,0.0 ,"" ,"" )
`MPRnb( NSII1 ,0.0 ,"" ,"" )
`MPRnb( PSII1 ,0.0 ,"" ,"" )
`MPRnb( LSII2 ,0.0 ,"m*V" ,"" )
`MPRnb( NSII2 ,0.0 ,"m*V" ,"" )
`MPRnb( PSII2 ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LSIID ,0.0 ,"m*V" ,"" )
`MPRnb( NSIID ,0.0 ,"m*V" ,"" )
`MPRnb( PSIID ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LCFS ,0.0 ,"F" ,"" )
`MPRnb( NCFS ,0.0 ,"F" ,"" )
`MPRnb( PCFS ,0.0 ,"F*m" ,"" )
`MPRnb( LCFD ,LCFS ,"F" ,"" )
`MPRnb( NCFD ,NCFS ,"F" ,"" )
`MPRnb( PCFD ,PCFS ,"F*m" ,"" )
`MPRnb( LCOVS ,0.0 ,"F" ,"" )
`MPRnb( NCOVS ,0.0 ,"F" ,"" )
`MPRnb( PCOVS ,0.0 ,"F*m" ,"" )
`MPRnb( LCOVD ,LCOVS ,"F" ,"" )
`MPRnb( NCOVD ,NCOVS ,"F" ,"" )
`MPRnb( PCOVD ,PCOVS ,"F*m" ,"" )
`MPRnb( LCGSL ,0.0 ,"F" ,"" )
`MPRnb( NCGSL ,0.0 ,"F" ,"" )
`MPRnb( PCGSL ,0.0 ,"F*m" ,"" )
`MPRnb( LCGDL ,LCGSL ,"F" ,"" )
`MPRnb( NCGDL ,NCGSL ,"F" ,"" )
`MPRnb( PCGDL ,PCGSL ,"F*m" ,"" )
`MPRnb( LCKAPPAS ,0.0 ,"m*V" ,"" )
`MPRnb( NCKAPPAS ,0.0 ,"m*V" ,"" )
`MPRnb( PCKAPPAS ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LCKAPPAD ,LCKAPPAS ,"m*V" ,"" )
`MPRnb( NCKAPPAD ,NCKAPPAS ,"m*V" ,"" )
`MPRnb( PCKAPPAD ,PCKAPPAS ,"(m^2)*V" ,"" )
`MPRnb( LCGBL ,0.0 ,"F" ,"" )
`MPRnb( NCGBL ,0.0 ,"F" ,"" )
`MPRnb( PCGBL ,0.0 ,"F*m" ,"" )
`MPRnb( LCKAPPAB ,0.0 ,"m*V" ,"" )
`MPRnb( NCKAPPAB ,0.0 ,"m*V" ,"" )
`MPRnb( PCKAPPAB ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LNTGEN ,0.0 ,"" ,"" )
`MPRnb( NNTGEN ,0.0 ,"" ,"" )
`MPRnb( PNTGEN ,0.0 ,"" ,"" )
`MPRnb( LAIGEN ,0.0 ,"(m^-2)*(V^-1)" ,"" )
`MPRnb( NAIGEN ,0.0 ,"(m^-2)*(V^-1)" ,"" )
`MPRnb( PAIGEN ,0.0 ,"(m^-1)*(V^-1)" ,"" )
`MPRnb( LBIGEN ,0.0 ,"(m^-2)*(V^-3)" ,"" )
`MPRnb( NBIGEN ,0.0 ,"(m^-2)*(V^-3)" ,"" )
`MPRnb( PBIGEN ,0.0 ,"(m^-1)*(V^-3)" ,"" )
`MPRnb( LXRCRG1 ,0.0 ,"" ,"" )
`MPRnb( NXRCRG1 ,0.0 ,"" ,"" )
`MPRnb( PXRCRG1 ,0.0 ,"" ,"" )
`MPRnb( LXRCRG2 ,0.0 ,"" ,"" )
`MPRnb( NXRCRG2 ,0.0 ,"" ,"" )
`MPRnb( PXRCRG2 ,0.0 ,"" ,"" )
`MPRnb( LUTE ,0.0 ,"" ,"" )
`MPRnb( NUTE ,0.0 ,"" ,"" )
`MPRnb( PUTE ,0.0 ,"" ,"" )
`MPRnb( LUTER ,LUTE ,"" ,"" )
`MPRnb( NUTER ,NUTE ,"" ,"" )
`MPRnb( PUTER ,PUTE ,"" ,"" )
`MPRnb( LUTL ,0.0 ,"" ,"" )
`MPRnb( NUTL ,0.0 ,"" ,"" )
`MPRnb( PUTL ,0.0 ,"" ,"" )
`MPRnb( LUTLR ,LUTL ,"" ,"" )
`MPRnb( NUTLR ,NUTL ,"" ,"" )
`MPRnb( PUTLR ,PUTL ,"" ,"" )
`MPRnb( LEMOBT ,0.0 ,"" ,"" )
`MPRnb( NEMOBT ,0.0 ,"" ,"" )
`MPRnb( PEMOBT ,0.0 ,"" ,"" )
`MPRnb( LUA1 ,0.0 ,"" ,"" )
`MPRnb( NUA1 ,0.0 ,"" ,"" )
`MPRnb( PUA1 ,0.0 ,"" ,"" )
`MPRnb( LUA1R ,LUA1 ,"" ,"" )
`MPRnb( NUA1R ,NUA1 ,"" ,"" )
`MPRnb( PUA1R ,PUA1 ,"" ,"" )
`MPRnb( LUC1 ,0.0 ,"" ,"" )
`MPRnb( NUC1 ,0.0 ,"" ,"" )
`MPRnb( PUC1 ,0.0 ,"" ,"" )
`MPRnb( LUC1R ,LUC1 ,"" ,"" )
`MPRnb( NUC1R ,NUC1 ,"" ,"" )
`MPRnb( PUC1R ,PUC1 ,"" ,"" )
`MPRnb( LUD1 ,0.0 ,"" ,"" )
`MPRnb( NUD1 ,0.0 ,"" ,"" )
`MPRnb( PUD1 ,0.0 ,"" ,"" )
`MPRnb( LUD1R ,LUD1 ,"" ,"" )
`MPRnb( NUD1R ,NUD1 ,"" ,"" )
`MPRnb( PUD1R ,PUD1 ,"" ,"" )
`MPRnb( LUCSTE ,0.0 ,"" ,"" )
`MPRnb( NUCSTE ,0.0 ,"" ,"" )
`MPRnb( PUCSTE ,0.0 ,"" ,"" )
`MPRnb( LPTWGT ,0.0 ,"m/K" ,"" )
`MPRnb( NPTWGT ,0.0 ,"m/K" ,"" )
`MPRnb( PPTWGT ,0.0 ,"(m^2)/K" ,"" )
`MPRnb( LAT ,0.0 ,"m/K" ,"" )
`MPRnb( NAT ,0.0 ,"m/K" ,"" )
`MPRnb( PAT ,0.0 ,"(m^2)/K" ,"" )
`MPRnb( LATR ,LAT ,"" ,"" )
`MPRnb( NATR ,NAT ,"" ,"" )
`MPRnb( PATR ,PAT ,"" ,"" )
`MPRnb( LATCV ,0.0 ,"m/K" ,"" )
`MPRnb( NATCV ,0.0 ,"m/K" ,"" )
`MPRnb( PATCV ,0.0 ,"(m^2)/K" ,"" )
`MPRnb( LSTTHETASAT ,0.0 ,"" ,"" )
`MPRnb( NSTTHETASAT ,0.0 ,"" ,"" )
`MPRnb( PSTTHETASAT ,0.0 ,"" ,"" )
`MPRnb( LPRT ,0.0 ,"m/K" ,"" )
`MPRnb( NPRT ,0.0 ,"m/K" ,"" )
`MPRnb( PPRT ,0.0 ,"(m^2)/K" ,"" )
`MPRnb( LKT1 ,0.0 ,"m*V" ,"" )
`MPRnb( NKT1 ,0.0 ,"m*V" ,"" )
`MPRnb( PKT1 ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LTSS ,0.0 ,"" ,"" )
`MPRnb( NTSS ,0.0 ,"" ,"" )
`MPRnb( PTSS ,0.0 ,"" ,"" )
`MPRnb( LIIT ,0.0 ,"" ,"" )
`MPRnb( NIIT ,0.0 ,"" ,"" )
`MPRnb( PIIT ,0.0 ,"" ,"" )
`MPRnb( LTII ,0.0 ,"" ,"" )
`MPRnb( NTII ,0.0 ,"" ,"" )
`MPRnb( PTII ,0.0 ,"" ,"" )
`MPRnb( LTGIDL ,0.0 ,"m/K" ,"" )
`MPRnb( NTGIDL ,0.0 ,"m/K" ,"" )
`MPRnb( PTGIDL ,0.0 ,"(m^2)/K" ,"" )
`MPRnb( LIGT ,0.0 ,"" ,"" )
`MPRnb( NIGT ,0.0 ,"" ,"" )
`MPRnb( PIGT ,0.0 ,"" ,"" )

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,103 @@
// ********************************************************
// **** BSIM-CMG 110.0.0 released by Sourabh Khandelwal on 01/01/2016****/
// * BSIM Common Multi-Gate Model Equations (Verilog-A)
// ********************************************************
//
// ********************************************************
// * Copyright 2016 Regents of the University of California.
// * All rights reserved.
// *
// * Project Director: Prof. Chenming Hu.
// * Authors: Sriramkumar V., Navid Paydavosi, Juan Duarte, Darsen Lu, Sourabh Khandelwal,
// * Chung-Hsun Lin, Mohan Dunga, Shijing Yao,
// * Ali Niknejad, Chenming Hu
// ********************************************************
// ********************************************************
// * NONDISCLOSURE STATEMENT
// Software is distributed as is, completely without warranty or service
// support. The University of California and its employees are not liable
// for the condition or performance of the software.
// The University of California owns the copyright and grants users a perpetual,
// irrevocable, worldwide, non-exclusive, royalty-free license with
// respect to the software as set forth below.
// The University of California hereby disclaims all implied warranties.
// The University of California grants the users the right to modify, copy,
// and redistribute the software and documentation, both within the user's
// organization and externally, subject to the following restrictions
// 1. The users agree not to charge for the University of California code
// itself but may charge for additions, extensions, or support.
// 2. In any product based on the software, the users agree to acknowledge
// the University of California that developed the software. This
// acknowledgment shall appear in the product documentation.
// 3. The users agree to obey all U.S. Government restrictions governing
// redistribution or export of the software.
// 4. The users agree to reproduce any copyright notice which appears on
// the software on any copy or modification of such made available
// to others
// Agreed to on __Jan 01, 2016__________________
// By: ___University of California, Berkeley____
// ___Chenming Hu_____________________
// ___Professor in Graduate School _______
// ********************************************************
// ********************************************************
// Macro for the geometry-dependent fringing capacitance
// model
// ********************************************************
`define Cfringe_2d(block_name, Hg, Hc, Lext, Wfin, Lc, Lg, Tox, Cf1, Cgg) \
begin : block_name \
real Hr, Lr, Hgdelta, Lmax, y, x; \
real CcgSat, Cnon, TT1, Ccg1, r1cf, Rcf, Ccg2; \
real Ccg, C1, C2, C3, Cfglog, dcf, TT0; \
real TT2, Cfgsat, delta, Cfg; \
\
Hr = 2.3 + 0.2 * ((Hg) + (Tox)) / (Hc); \
Lr = 1.05; \
Hgdelta = abs((Hg) + (Tox) - (Hc)); \
Lmax = (Lext) * Lr; \
\
y = min((Hc), (Hg) + (Tox)); \
x = (Lext) / (Hr + 1.0); \
Cnon = 1.7e12; \
CcgSat = epssp * (y - x) / (Lext); \
TT1 = Cnon * CcgSat; \
if(TT1 > `EXPL_THRESHOLD) \
Ccg1 = CcgSat; \
else \
Ccg1 = 1.0 / Cnon * ln(1.0 + lexp(TT1)); \
\
r1cf = 0.5 * \
min((Hc) / ((Hg) + (Tox)), ((Hg) + (Tox)) / (Hc)); \
Rcf = Hgdelta * r1cf; \
Ccg2 = epssp * 2 / `M_PI * \
ln(((Lext) + 0.5 * `M_PI * Rcf) / (Lext)); \
\
Ccg = (Wfin) * (Ccg1 + Ccg2); \
\
x = Lmax / (Hg); \
C1 = 4.0 / (sqrt(2.0 * (x + 1)) * `M_PI); \
C2 = sqrt((Tox) * (Tox) + 2.0 * (Hg) * (Tox) + \
(Hg) * (Hg) * (x + 1)) * sqrt(x + 1) + (Tox) + \
(Hg) * x + (Hg); \
C3 = (Tox) * sqrt((x + 1) * (x + 4)) + Tox * (x + 2); \
Cfglog = epssp * (C1 * ln(C2 / C3) + 12.27); \
\
dcf = Hr * Lr; \
TT0 = sqrt(dcf * dcf + 1.0); \
TT1 = sqrt((dcf * dcf + 1) * ((dcf * (Tox)) * (dcf * (Tox)) + \
2 * dcf * Lmax * (Tox) + (dcf * dcf + 1) * Lmax * Lmax)) \
+ dcf * (Tox) + dcf * dcf * Lmax + Lmax; \
TT2 = (TT0 + 1.0) * (dcf * (Tox)); \
Cfgsat = 2.0 * epssp * sqrt(2) / `M_PI * (Cf1) * dcf \
/ TT0 * ln(TT1 / TT2); \
\
delta = 1.2e-12; \
TT1 = Cfgsat - Cfglog - delta; \
Cfg = (Wfin) * (Cfgsat - 0.5 * (TT1 + \
sqrt(TT1 * TT1 + 4 * delta * Cfgsat))); \
Cgg = Ccg + Cfg; \
end

View File

@ -0,0 +1,89 @@
// ********************************************************
// **** BSIM-CMG 110.0.0 released by Sourabh Khandelwal on 01/01/2016 ****/
// * BSIM Common Multi-Gate Model Equations (Verilog-A)
// ********************************************************
//
// ********************************************************
// * Copyright 2016 Regents of the University of California.
// * All rights reserved.
// *
// * Project Director: Prof. Chenming Hu.
// * Authors: Sriramkumar V., Navid Paydavosi, Juan Duarte, Darsen Lu,
// * Chung-Hsun Lin, Mohan Dunga, Shijing Yao,
// * Ali Niknejad, Chenming Hu
// ********************************************************
// ********************************************************
// * NONDISCLOSURE STATEMENT
// Software is distributed as is, completely without warranty or service
// support. The University of California and its employees are not liable
// for the condition or performance of the software.
// The University of California owns the copyright and grants users a perpetual,
// irrevocable, worldwide, non-exclusive, royalty-free license with
// respect to the software as set forth below.
// The University of California hereby disclaims all implied warranties.
// The University of California grants the users the right to modify, copy,
// and redistribute the software and documentation, both within the user's
// organization and externally, subject to the following restrictions
// 1. The users agree not to charge for the University of California code
// itself but may charge for additions, extensions, or support.
// 2. In any product based on the software, the users agree to acknowledge
// the University of California that developed the software. This
// acknowledgment shall appear in the product documentation.
// 3. The users agree to obey all U.S. Government restrictions governing
// redistribution or export of the software.
// 4. The users agree to reproduce any copyright notice which appears on
// the software on any copy or modification of such made available
// to others
// Agreed to on __Jan 01, 2016_________________
// By: ___University of California, Berkeley____
// ___Chenming Hu_____________________
// ___Professor in Graduate School _______
// ********************************************************
// *** Quasi Static CV Model ***
T11 = (2.0*qia+nVtm)/DvsatCV;//G
qg = qia+dqi*dqi/(6.0*T11);//qc
qd = -0.5*(qia-(dqi/(6.0))*(1.0-(dqi/T11)*(1+dqi/(5.0*T11))));//qd
// Including CLM in qg and qd
inv_MclmCV = 1.0 / MclmCV;
qg = inv_MclmCV * qg + (MclmCV - 1.0) * qid;
qd = inv_MclmCV * inv_MclmCV * qd + 0.5 * (MclmCV - inv_MclmCV) * qid;
//Calculating partition for NQSMOD2
`ifdef __NQSMOD2__
if(NQSMOD == 2) xdpart = qd / qg;
else xdpart = 0;
`endif
qs = -qg-qd; //from charge conservation qs = -qg-qd;
T6 = NFINtotal*WeffCV0 * LeffCV * coxeff;
qg = T6*qg;
qd = T6*qd;
qs = T6*qs;
qinv = qg ;
if(BULKMOD != 0) begin
T1 = NFINtotal * WeffCV0 * LeffCV_acc * cox_acc;
T7 = qi_acc_for_QM;//qbulk
T10 = T7 * T1;
qg_acc = - T10;
qb_acc = T10;
T1 = NFINtotal * WeffCV0 * LeffCV * cox;
T2 = qba - qi_acc_for_QM;
T10 = T1*T2;
qg_acc = qg_acc - T10;
qb_acc = qb_acc + T10;
T1 = NFINtotal * WeffCV0 * LeffCV * cox;
T2 = (nq-1.0)*0.5*(qia+(dqi*dqi/(6.0*T11)));
T10 = T1*T2;
qg_acc = qg_acc - T10;
qb_acc = qb_acc + T10;
end
// if vds is negative, physical charge on qd is qs
if (sigvds < 0) begin
T1 = qd;
qd = qs;
qs = T1;
end

View File

@ -0,0 +1,84 @@
// *******************************************************
// **** BSIM-CMG 110.0.0 released by Sourabh Khandelwal on 01/01/2016 ****/
// * BSIM Common Multi-Gate Model Equations (Verilog-A)
// ********************************************************
//
// ********************************************************
// * Copyright 2016 Regents of the University of California.
// * All rights reserved.
// *
// * Project Director: Prof. Chenming Hu.
// * Authors: Sriramkumar V., Navid Paydavosi, Juan Duarte, Darsen Lu, Sourabh Khandelwal
// * Chung-Hsun Lin, Mohan Dunga, Shijing Yao,
// * Ali Niknejad, Chenming Hu
// ********************************************************
// ********************************************************
// * NONDISCLOSURE STATEMENT
// Software is distributed as is, completely without warranty or service
// support. The University of California and its employees are not liable
// for the condition or performance of the software.
// The University of California owns the copyright and grants users a perpetual,
// irrevocable, worldwide, non-exclusive, royalty-free license with
// respect to the software as set forth below.
// The University of California hereby disclaims all implied warranties.
// The University of California grants the users the right to modify, copy,
// and redistribute the software and documentation, both within the user's
// organization and externally, subject to the following restrictions
// 1. The users agree not to charge for the University of California code
// itself but may charge for additions, extensions, or support.
// 2. In any product based on the software, the users agree to acknowledge
// the University of California that developed the software. This
// acknowledgment shall appear in the product documentation.
// 3. The users agree to obey all U.S. Government restrictions governing
// redistribution or export of the software.
// 4. The users agree to reproduce any copyright notice which appears on
// the software on any copy or modification of such made available
// to others
// Agreed to on __Jan 01, 2016_________________
// By: ___University of California, Berkeley____
// ___Chenming Hu_____________________
// ___Professor in Graduate School _______
// ********************************************************
// Source-Drain Resistance Model
case(RDSMOD)
1: begin
Rdsi = 0.0;
Dr = 1.0;
T2 = vgs_noswap - vfbsd;
T3 = sqrt(T2 * T2 + 1.0e-1);
vgs_eff = 0.5 * (T2 + T3);
T4 = 1.0 + PRWGS_i * vgs_eff;
T1 = 1.0 / T4;
T0 = 0.5 * (T1 + sqrt(T1 * T1 + 0.01));
T5 = RSW_i * (1.0 + RSDR_a * lexp(0.5 * PRSDR * lln(V(si,s) * V(si,s) + 1.0E-6)));
Rsource = rdstemp * (RSourceGeo + (RSWMIN_i + T5 * T0) * WeffWRFactor);
T2 = vgd_noswap - vfbsd;
T3 = sqrt(T2 * T2 + 1.0e-1);
vgd_eff = 0.5 * (T2 + T3);
T4 = 1.0 + PRWGD_i * vgd_eff;
T1 = 1.0 / T4;
T0 = 0.5 * (T1 + sqrt(T1 * T1 + 0.01));
T5 = RDW_i * (1.0 + RDDR_a * lexp(0.5 * PRDDR * lln(V(di,d) * V(di,d) + 1.0E-6)));
Rdrain = rdstemp * (RDrainGeo + (RDWMIN_i + T5 * T0) * WeffWRFactor);
end
0: begin
Rsource = RSourceGeo;
Rdrain = RDrainGeo;
T4 = 1.0 + PRWGS_i * qia;
T1 = 1.0 / T4;
T0 = 0.5 * (T1 + sqrt(T1 * T1 + 0.01));
Rdsi = rdstemp * (RDSWMIN_i + RDSW_i * T0) * WeffWRFactor;
Dr = 1.0 + (NFINtotal) * beta * ids0_ov_dqi / (Dmob * Dvsat) * Rdsi;
end
2: begin
T4 = 1.0 + PRWGS_i * qia;
T1 = 1.0 / T4;
T0 = 0.5 * (T1 + sqrt(T1 * T1 + 0.01));
Rdsi = rdstemp * (RSourceGeo + RDrainGeo + RDSWMIN_i + RDSW_i * T0) * WeffWRFactor;
Dr = 1.0 + (NFINtotal) * beta * ids0_ov_dqi / (Dmob * Dvsat) * Rdsi;
Rsource = 0.0;
Rdrain = 0.0;
end
endcase

View File

@ -0,0 +1,185 @@
// ********************************************************
// **** BSIM-CMG 110.0.0 released by Sourabh Khandelwal on 01/01/2016 ****/
// * BSIM Common Multi-Gate Model Equations (Verilog-A)
// ********************************************************
//
// ********************************************************
// * Copyright 2016 Regents of the University of California.
// * All rights reserved.
// *
// * Project Director: Prof. Chenming Hu.
// * Authors: Sriramkumar V., Navid Paydavosi, Juan Duarte, Darsen Lu, Sourabh Khandelwal
// * Chung-Hsun Lin, Mohan Dunga, Shijing Yao,
// * Ali Niknejad, Chenming Hu
// ********************************************************
// ********************************************************
// * NONDISCLOSURE STATEMENT
// Software is distributed as is, completely without warranty or service
// support. The University of California and its employees are not liable
// for the condition or performance of the software.
// The University of California owns the copyright and grants users a perpetual,
// irrevocable, worldwide, non-exclusive, royalty-free license with
// respect to the software as set forth below.
// The University of California hereby disclaims all implied warranties.
// The University of California grants the users the right to modify, copy,
// and redistribute the software and documentation, both within the user's
// organization and externally, subject to the following restrictions
// 1. The users agree not to charge for the University of California code
// itself but may charge for additions, extensions, or support.
// 2. In any product based on the software, the users agree to acknowledge
// the University of California that developed the software. This
// acknowledgment shall appear in the product documentation.
// 3. The users agree to obey all U.S. Government restrictions governing
// redistribution or export of the software.
// 4. The users agree to reproduce any copyright notice which appears on
// the software on any copy or modification of such made available
// to others
// Agreed to on __Jan 01, 2016__________________
// By: ___University of California, Berkeley____
// ___Chenming Hu_____________________
// ___Professor in Graduate School _______
// ********************************************************
// Numerical Constants
`define EXPL_THRESHOLD 80.0
`define MAX_EXPL 5.540622384e34
`define MIN_EXPL 1.804851387e-35
`define N_MINLOG 1.0e-38
`define MEXPQM 4
`define DELTA_1 0.02
`define DELTA_ASYMM 0.04
`define CONSTCtoK (273.15)
`define REFTEMP (300.15) /* 27 degrees C */
// Model type definitions
`define ntype 1
`define ptype 0
// Physical Constants
`define q 1.60219e-19 // Coul
`define EPS0 8.8542e-12 // F/m
`define HBAR 1.05457e-34 // Joule-sec
`define MEL 9.11e-31 // kg
`define KboQ 8.617087e-5 // Joule / degree
// Mathematical functions
//`define SINH(x) (0.5 * (lexp(x) - lexp(-(x))))
`define COSH(x) (0.5 * (lexp(x) + lexp(-(x))))
//`define TANH(x) ((lexp(x) - lexp(-(x))) / (lexp(x) + lexp(-(x))))
`define COT(x) ((x)>=`M_PI/2 ? 0 : ((x)<=-`M_PI/2 ? 0 : 1.0/tan(x)))
// Junction capacitance
//ex:(ves_jct, Czbs, PBS_t, SBS, MJS, MJS2, Qes1)
`define BSIM6JunctnCap(vex, Cz, PB, SJ, MJ, MJ2, Qej) \
begin \
if (Cz > 0.0) begin \
T1 = vex / PB; \
if (T1 < 0.9) begin \
if (SJ > 0.0) begin /*second-step junction*/ \
vec = PB * (1.0 - lexp((1.0 / MJ) * lln(1.0/SJ))); /*Switch over voltage*/\
pb2 = PB * SJ * MJ2 / MJ / lexp(- (1.0 + MJ) * lln(1.0 - vec / PB)); /*PB for second doping region*/\
if (vex > vec) begin \
arg = 1.0 - T1; \
if (MJ == 0.5) sarg = 1.0 / sqrt(arg); \
else sarg = lexp(-MJ * lln(arg)); \
Qej = PB * Cz * (1.0 - arg * sarg) / (1.0 - MJ); \
end else begin /*vex < vec*/ \
arg = 1.0 - vec / PB; \
if (MJ == 0.5) sarg = 1.0 / sqrt(arg); \
else sarg = lexp(-MJ * lln(arg)); \
Qec = PB * Cz * (1.0 - arg * sarg) / (1.0 - MJ); \
arg = 1.0 - (vex - vec) / pb2; \
if (MJ2 == 0.5) sarg = 1.0 / sqrt(arg); \
else sarg = lexp(-MJ2 * lln(arg)); \
Qej = Qec + SJ * pb2 * Cz * (1.0 - arg * sarg) / (1.0 - MJ2); \
end \
end else begin /*single junction*/ \
arg = 1.0 - T1; \
if (MJ == 0.5) sarg = 1.0 / sqrt(arg); \
else sarg = lexp(-MJ * lln(arg)); \
Qej = PB * Cz * (1.0 - arg * sarg) / (1.0 - MJ); \
end \
end else begin /*vex/PB>=0.9*/ \
T2 = lexp(-MJ * lln(0.1)); \
T3 = 1.0 / (1.0-MJ); \
T4 = T2 * (T1 - 1.0) * (5.0 * MJ * (T1-1.0) + (1.0 + MJ) ); \
T5 = T3 * (1.0 - 0.05 * MJ * (1.0 + MJ) * T2 ); \
Qej = PB * Cz * (T4 + T5); /*Quadratic equation for Qej when vex/PB>=0.9*/\
end \
end else begin \
Qej = 0.0; \
end \
end
//
// Macros for the model/instance parameters
//
// MPRxx model parameter real
// MPIxx model parameter integer
// IPRxx instance parameter real
// IPIxx instance parameter integer
// ||
// cc closed lower bound, closed upper bound
// oo open lower bound, open upper bound
// co closed lower bound, open upper bound
// oc open lower bound, closed upper bound
// cz closed lower bound=0, open upper bound=inf
// oz open lower bound=0, open upper bound=inf
// nb no bounds
// ex no bounds with exclude
// sw switch(integer only, values 0=false and 1=true)
// ty switch(integer only, values -1=p-type and +1=n-type)
//
// IPM instance parameter mFactor(multiplicity, implicit for LRM2.2)
// OPP operating point parameter, includes units and description for printing
//
`define ALIAS(alias,paramName) aliasparam alias = paramName ;
`define OPP(nam,uni,des) (*units=uni, desc=des*) real nam ;
`define MPRnb(nam,def,uni, des) (*units=uni, desc=des*) parameter real nam=def ;
`define MPRex(nam,def,uni,exc, des) (*units=uni, desc=des*) parameter real nam=def exclude exc ;
`define MPRcc(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter real nam=def from[lwr:upr] ;
`define MPRoo(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter real nam=def from(lwr:upr) ;
`define MPRco(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter real nam=def from[lwr:upr) ;
`define MPRoc(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter real nam=def from(lwr:upr] ;
`define MPRcz(nam,def,uni, des) (*units=uni, desc=des*) parameter real nam=def from[ 0:inf);
`define MPRoz(nam,def,uni, des) (*units=uni, desc=des*) parameter real nam=def from( 0:inf);
`define MPInb(nam,def,uni, des) (*units=uni, desc=des*) parameter integer nam=def ;
`define MPIex(nam,def,uni,exc, des) (*units=uni, desc=des*) parameter integer nam=def exclude exc ;
`define MPIcc(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter integer nam=def from[lwr:upr] ;
`define MPIoo(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter integer nam=def from(lwr:upr) ;
`define MPIco(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter integer nam=def from[lwr:upr) ;
`define MPIoc(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter integer nam=def from(lwr:upr] ;
`define MPIcz(nam,def,uni, des) (*units=uni, desc=des*) parameter integer nam=def from[ 0:inf);
`define MPIoz(nam,def,uni, des) (*units=uni, desc=des*) parameter integer nam=def from( 0:inf);
`define MPIsw(nam,def,uni, des) (*units=uni, desc=des*) parameter integer nam=def from[ 0: 1] ;
`define MPIty(nam,def,uni, des) (*units=uni, desc=des*) parameter integer nam=def from[ -1: 1] exclude 0 ;
`define IPRnb(nam,def,uni, des) (*units=uni, type="instance", desc=des*) parameter real nam=def ;
`define IPRex(nam,def,uni,exc, des) (*units=uni, type="instance", desc=des*) parameter real nam=def exclude exc ;
`define IPRcc(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter real nam=def from[lwr:upr] ;
`define IPRoo(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter real nam=def from(lwr:upr) ;
`define IPRco(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter real nam=def from[lwr:upr) ;
`define IPRoc(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter real nam=def from(lwr:upr] ;
`define IPRcz(nam,def,uni, des) (*units=uni, type="instance", desc=des*) parameter real nam=def from[ 0:inf);
`define IPRoz(nam,def,uni, des) (*units=uni, type="instance", desc=des*) parameter real nam=def from( 0:inf);
`define IPInb(nam,def,uni, des) (*units=uni, type="instance", desc=des*) parameter integer nam=def ;
`define IPIex(nam,def,uni,exc, des) (*units=uni, type="instance", desc=des*) parameter integer nam=def exclude exc ;
`define IPIcc(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter integer nam=def from[lwr:upr] ;
`define IPIoo(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter integer nam=def from(lwr:upr) ;
`define IPIco(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter integer nam=def from[lwr:upr) ;
`define IPIoc(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter integer nam=def from(lwr:upr] ;
`define IPIcz(nam,def,uni, des) (*units=uni, type="instance", desc=des*) parameter integer nam=def from[ 0:inf);
`define IPIoz(nam,def,uni, des) (*units=uni, type="instance", desc=des*) parameter integer nam=def from( 0:inf);
`ifdef EXPLICIT_MFACTOR
`define IPM (*units="" , type="instance", desc="multiplicity factor"*) parameter real m=1.0 from(0.0:inf) ;
`define MFACTOR_USE m
`else //
`define IPM
`define MFACTOR_USE 1.0
`endif

View File

@ -0,0 +1,42 @@
# -*- makefile -*-
# (compile "make -i -f my.mak to")
# (compile "make -i -f my.mak do 2>&1 > log")
# (compile "make -i -f my.mak to 2>&1 > log")
CFLAGS=-I ../../../../../include -I ../../../../../../../w32/src/include
SRCS = \
bsimcmgacld.c bsimcmg.analogfunction.c bsimcmgask.c bsimcmg.c bsimcmgdel.c bsimcmgdest.c bsimcmgguesstopology.c bsimcmginit.c bsimcmgload.c bsimcmgmask.c bsimcmgmdel.c bsimcmgmpar.c bsimcmgnoise.c bsimcmgpar.c bsimcmgpzld.c bsimcmgsetup.c bsimcmgtemp.c bsimcmgtrunc.c
to : $(SRCS:%.c=%.o)
scripts = \
-e ../../admst/ngspiceVersion.xml \
-e ../../admst/analogfunction.xml \
-e ../../admst/ngspiceMODULEitf.h.xml \
-e ../../admst/ngspiceMODULEinit.c.xml \
-e ../../admst/ngspiceMODULEinit.h.xml \
-e ../../admst/ngspiceMODULEext.h.xml \
-e ../../admst/ngspiceMODULEdefs.h.xml \
-e ../../admst/ngspiceMODULEask.c.xml \
-e ../../admst/ngspiceMODULEmask.c.xml \
-e ../../admst/ngspiceMODULEpar.c.xml \
-e ../../admst/ngspiceMODULEmpar.c.xml \
-e ../../admst/ngspiceMODULEload.c.xml \
-e ../../admst/ngspiceMODULEacld.c.xml \
-e ../../admst/ngspiceMODULEpzld.c.xml \
-e ../../admst/ngspiceMODULEtemp.c.xml \
-e ../../admst/ngspiceMODULEtrunc.c.xml \
-e ../../admst/ngspiceMODULEsetup.c.xml \
-e ../../admst/ngspiceMODULEdel.c.xml \
-e ../../admst/ngspiceMODULEmdel.c.xml \
-e ../../admst/ngspiceMODULEdest.c.xml \
-e ../../admst/ngspiceMODULEnoise.c.xml \
-e ../../admst/ngspiceMODULEguesstopology.c.xml \
-e ../../admst/ngspiceMODULE.hxx.xml \
-e ../../admst/ngspiceMODULE.c.xml
$(SRCS) : do
do : bsimcmg.va
../../../../../../adms/ADMS/admsXml/admsXml $(scripts) $<