add bsimcmg, from Berkeley's BSIMCMG110.0.0_20160101.tar.gz
This commit is contained in:
parent
aa5009fbe4
commit
6bf7af75f5
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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) $<
|
||||
Loading…
Reference in New Issue