Simulator: add missing ngspice models.

Fixes #14813
https://gitlab.com/kicad/code/kicad/-/issues/14813
This commit is contained in:
jean-pierre charras 2023-05-26 14:44:05 +02:00
parent 942ee13cd1
commit 68464a1993
6 changed files with 474 additions and 0 deletions

View File

@ -188,6 +188,8 @@ set( EESCHEMA_SIM_SRCS
sim/sim_model_kibis.cpp
sim/sim_model_ngspice.cpp
sim/sim_model_ngspice_data_bjt.cpp
sim/sim_model_ngspice_data_bsim1.cpp
sim/sim_model_ngspice_data_bsim2.cpp
sim/sim_model_ngspice_data_bsim3.cpp
sim/sim_model_ngspice_data_bsim4.cpp
sim/sim_model_ngspice_data_b3soi.cpp
@ -199,6 +201,7 @@ set( EESCHEMA_SIM_SRCS
sim/sim_model_ngspice_data_jfet.cpp
sim/sim_model_ngspice_data_mes.cpp
sim/sim_model_ngspice_data_mos.cpp
sim/sim_model_ngspice_data_mos6.cpp
sim/sim_model_ngspice_data_mos9.cpp
sim/sim_model_ngspice_data_vbic.cpp
sim/sim_model_r_pot.cpp

View File

@ -310,6 +310,8 @@ NGSPICE_MODEL_INFO_MAP::NGSPICE_MODEL_INFO_MAP()
{
modelInfos[SIM_MODEL_NGSPICE::MODEL_TYPE::NONE] = {};
addBJT();
addBSIM1();
addBSIM2();
addBSIM3();
addBSIM4();
addB3SOI();
@ -321,6 +323,7 @@ NGSPICE_MODEL_INFO_MAP::NGSPICE_MODEL_INFO_MAP()
addJFET();
addMES();
addMOS();
addMOS6();
addMOS9();
addVBIC();
}

View File

@ -126,6 +126,8 @@ struct NGSPICE_MODEL_INFO_MAP
private:
void addBJT();
void addBSIM1();
void addBSIM2();
void addBSIM3();
void addBSIM4();
void addB3SOI();
@ -137,6 +139,7 @@ private:
void addJFET();
void addMES();
void addMOS();
void addMOS6();
void addMOS9();
void addVBIC();
};

View File

@ -0,0 +1,128 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2022 Mikolaj Wielgus
* Copyright (C) 2023 KiCad Developers, see AUTHORS.TXT for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <sim/sim_model_ngspice.h>
void NGSPICE_MODEL_INFO_MAP::addBSIM1()
{
modelInfos[MODEL_TYPE::BSIM1] = { "BSIM1", "NMOS", "PMOS", { "D", "G", "S", "B" }, "Berkeley Short Channel IGFET Model", {}, {} };
// Model parameters
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "vfb", 101, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Flat band voltage" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lvfb", 102, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of vfb" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wvfb", 103, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of vfb" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "phi", 104, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Strong inversion surface potential" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lphi", 105, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of phi" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wphi", 106, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of phi" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "k1", 107, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "sqrt V", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Bulk effect coefficient 1" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lk1", 108, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of k1" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wk1", 109, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of k1" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "k2", 110, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Bulk effect coefficient 2" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lk2", 111, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of k2" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wk2", 112, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of k2" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "eta", 113, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VDS dependence of threshold voltage" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "leta", 114, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of eta" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "weta", 115, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of eta" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "x2e", 116, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of eta" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lx2e", 117, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of x2e" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wx2e", 118, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of x2e" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "x3e", 119, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VDS dependence of eta" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lx3e", 120, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of x3e" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wx3e", 121, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of x3e" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "dl", 122, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "um", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Channel length reduction in um" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "dw", 123, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "um", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Channel width reduction in um" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "muz", 124, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "cm²/V s", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Zero field mobility at VDS=0 VGS=VTH" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "x2mz", 125, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of muz" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lx2mz", 126, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of x2mz" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wx2mz", 127, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of x2mz" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "mus", 128, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "1/V", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Mobility at VDS=VDD VGS=VTH, channel length modulation" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lmus", 129, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of mus" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wmus", 130, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of mus" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "x2ms", 131, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of mus" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lx2ms", 132, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of x2ms" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wx2ms", 133, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of x2ms" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "x3ms", 134, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VDS dependence of mus" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lx3ms", 135, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of x3ms" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wx3ms", 136, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of x3ms" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "u0", 137, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VGS dependence of mobility" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lu0", 138, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of u0" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wu0", 139, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of u0" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "x2u0", 140, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of u0" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lx2u0", 141, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of x2u0" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wx2u0", 142, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of x2u0" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "u1", 143, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m/s", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VDS depence of mobility, velocity saturation" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lu1", 144, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of u1" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wu1", 145, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of u1" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "x2u1", 146, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS depence of u1" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lx2u1", 147, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length depence of x2u1" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wx2u1", 148, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width depence of x2u1" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "x3u1", 149, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "um/V²", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VDS depence of u1" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lx3u1", 150, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of x3u1" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wx3u1", 151, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width depence of x3u1" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "n0", 152, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Subthreshold slope" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "ln0", 153, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of n0" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wn0", 154, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of n0" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "nb", 155, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of subthreshold slope" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lnb", 156, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of nb" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wnb", 157, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of nb" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "nd", 158, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VDS dependence of subthreshold slope" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "lnd", 159, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of nd" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wnd", 160, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of nd" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "tox", 161, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "um", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Gate oxide thickness in um" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "temp", 162, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "°C", SIM_MODEL::PARAM::CATEGORY::PRINCIPAL, "0", "0", "Temperature in degree Celcius" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "vdd", 163, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Supply voltage to specify mus" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "cgso", 164, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F/m", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "Gate source overlap capacitance per unit channel width(m)" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "cgdo", 165, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F/m", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "Gate drain overlap capacitance per unit channel width(m)" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "cgbo", 166, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F/m", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "Gate bulk overlap capacitance per unit channel length(m)" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "xpart", 167, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_BOOL, "", SIM_MODEL::PARAM::CATEGORY::FLAGS, "0", "0", "Flag for channel charge partitioning" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "rsh", 168, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "Ω/m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Source drain diffusion sheet resistance in ohm per square" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "js", 169, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "A", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Source drain junction saturation current per unit area" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "pb", 170, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "0.1", "0.1", "Source drain junction built in potential" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "mj", 171, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "Source drain bottom junction capacitance grading coefficient" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "pbsw", 172, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0.1", "0.1", "Source drain side junction capacitance built in potential" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "mjsw", 173, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "Source drain side junction capacitance grading coefficient" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "cj", 174, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "Source drain bottom junction capacitance per unit area" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "cjsw", 175, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "Source drain side junction capacitance per unit area" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "wdf", 176, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "um", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Default width of source drain diffusion in um" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "dell", 177, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length reduction of source drain diffusion" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "kf", 180, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::NOISE, "0", "0", "Flicker noise coefficient" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "af", 181, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::NOISE, "1", "1", "Flicker noise exponent" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "nmos", 178, SIM_MODEL::PARAM::DIR_IN, SIM_VALUE::TYPE_BOOL, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Flag to indicate NMOS" );
modelInfos[MODEL_TYPE::BSIM1].modelParams.emplace_back( "pmos", 179, SIM_MODEL::PARAM::DIR_IN, SIM_VALUE::TYPE_BOOL, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Flag to indicate PMOS" );
// Instance parameters
modelInfos[MODEL_TYPE::BSIM1].instanceParams.emplace_back( "l", 2, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Length", true );
modelInfos[MODEL_TYPE::BSIM1].instanceParams.emplace_back( "w", 1, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Width", true );
modelInfos[MODEL_TYPE::BSIM1].instanceParams.emplace_back( "m", 14, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Parallel Multiplier", true );
modelInfos[MODEL_TYPE::BSIM1].instanceParams.emplace_back( "ad", 4, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Drain area", true );
modelInfos[MODEL_TYPE::BSIM1].instanceParams.emplace_back( "as", 3, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Source area", true );
modelInfos[MODEL_TYPE::BSIM1].instanceParams.emplace_back( "pd", 6, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Drain perimeter", true );
modelInfos[MODEL_TYPE::BSIM1].instanceParams.emplace_back( "ps", 5, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Source perimeter", true );
modelInfos[MODEL_TYPE::BSIM1].instanceParams.emplace_back( "nrd", 8, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Number of squares in drain", true );
modelInfos[MODEL_TYPE::BSIM1].instanceParams.emplace_back( "nrs", 7, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Number of squares in source", true );
modelInfos[MODEL_TYPE::BSIM1].instanceParams.emplace_back( "off", 9, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_BOOL, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Device is initially off", true );
modelInfos[MODEL_TYPE::BSIM1].instanceParams.emplace_back( "vds", 11, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Initial D-S voltage", true );
modelInfos[MODEL_TYPE::BSIM1].instanceParams.emplace_back( "vgs", 12, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Initial G-S voltage", true );
modelInfos[MODEL_TYPE::BSIM1].instanceParams.emplace_back( "vbs", 10, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Initial B-S voltage", true );
modelInfos[MODEL_TYPE::BSIM1].instanceParams.emplace_back( "ic", 13, SIM_MODEL::PARAM::DIR_IN, SIM_VALUE::TYPE_FLOAT_VECTOR /*SIM_VALUE::TYPE::VECTOR*/, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Vector of DS,GS,BS initial voltages", true );
}

View File

@ -0,0 +1,184 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2022 Mikolaj Wielgus
* Copyright (C) 2023 KiCad Developers, see AUTHORS.TXT for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <sim/sim_model_ngspice.h>
void NGSPICE_MODEL_INFO_MAP::addBSIM2()
{
modelInfos[MODEL_TYPE::BSIM2] = { "BSIM2", "NMOS", "PMOS", { "D", "G", "S", "B" }, "Berkeley Short Channel IGFET Model", {}, {} };
// Model parameters
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "vfb", 101, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "-1", "-1", "Flat band voltage" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lvfb", 102, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of vfb" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wvfb", 103, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of vfb" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "phi", 104, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "0.75", "0.75", "Strong inversion surface potential" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lphi", 105, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of phi" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wphi", 106, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of phi" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "k1", 107, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "sqrt V", SIM_MODEL::PARAM::CATEGORY::DC, "0.8", "0.8", "Bulk effect coefficient 1" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lk1", 108, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of k1" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wk1", 109, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of k1" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "k2", 110, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Bulk effect coefficient 2" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lk2", 111, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of k2" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wk2", 112, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of k2" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "eta0", 113, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VDS dependence of threshold voltage at VDD=0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "leta0", 114, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of eta0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "weta0", 115, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of eta0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "etab", 116, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of eta" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "letab", 117, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of etab" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wetab", 118, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of etab" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "dl", 119, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "um", SIM_MODEL::PARAM::CATEGORY::DC, "1.23516e-322", "1.23516e-322", "Channel length reduction in um" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "dw", 120, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "um", SIM_MODEL::PARAM::CATEGORY::DC, "1.23516e-322", "1.23516e-322", "Channel width reduction in um" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "mu0", 121, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "400", "400", "Low-field mobility, at VDS=0 VGS=VTH" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "mu0b", 122, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of low-field mobility" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lmu0b", 123, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of mu0b" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wmu0b", 124, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of mu0b" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "mus0", 125, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "500", "500", "Mobility at VDS=VDD VGS=VTH" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lmus0", 126, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of mus0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wmus0", 127, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of mus" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "musb", 128, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of mus" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lmusb", 129, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of musb" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wmusb", 130, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of musb" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "mu20", 131, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "1.5", "1.5", "VDS dependence of mu in tanh term" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lmu20", 132, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of mu20" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wmu20", 133, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of mu20" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "mu2b", 134, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of mu2" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lmu2b", 135, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of mu2b" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wmu2b", 136, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of mu2b" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "mu2g", 137, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VGS dependence of mu2" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lmu2g", 138, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of mu2g" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wmu2g", 139, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of mu2g" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "mu30", 140, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "10", "10", "VDS dependence of mu in linear term" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lmu30", 141, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of mu30" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wmu30", 142, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of mu30" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "mu3b", 143, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of mu3" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lmu3b", 144, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of mu3b" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wmu3b", 145, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of mu3b" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "mu3g", 146, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VGS dependence of mu3" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lmu3g", 147, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of mu3g" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wmu3g", 148, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of mu3g" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "mu40", 149, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VDS dependence of mu in linear term" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lmu40", 150, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of mu40" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wmu40", 151, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of mu40" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "mu4b", 152, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of mu4" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lmu4b", 153, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of mu4b" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wmu4b", 154, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of mu4b" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "mu4g", 155, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VGS dependence of mu4" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lmu4g", 156, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of mu4g" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wmu4g", 157, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of mu4g" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "ua0", 158, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0.2", "0.2", "Linear VGS dependence of mobility" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lua0", 159, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of ua0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wua0", 160, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of ua0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "uab", 161, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of ua" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "luab", 162, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of uab" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wuab", 163, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of uab" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "ub0", 164, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Quadratic VGS dependence of mobility" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lub0", 165, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of ub0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wub0", 166, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of ub0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "ubb", 167, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of ub" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lubb", 168, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of ubb" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wubb", 169, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of ubb" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "u10", 170, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0.1", "0.1", "VDS depence of mobility" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lu10", 171, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of u10" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wu10", 172, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of u10" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "u1b", 173, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS depence of u1" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lu1b", 174, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length depence of u1b" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wu1b", 175, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width depence of u1b" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "u1d", 176, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "um/V²", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VDS depence of u1" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lu1d", 177, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length depence of u1d" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wu1d", 178, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width depence of u1d" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "n0", 179, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "1.4", "1.4", "Subthreshold slope at VDS=0 VBS=0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "ln0", 180, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of n0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wn0", 181, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of n0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "nb", 182, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0.5", "0.5", "VBS dependence of n" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lnb", 183, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of nb" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wnb", 184, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of nb" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "nd", 185, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VDS dependence of n" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lnd", 186, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of nd" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wnd", 187, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of nd" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "vof0", 188, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "1.8", "1.8", "Threshold voltage offset AT VDS=0 VBS=0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lvof0", 189, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of vof0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wvof0", 190, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of vof0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "vofb", 191, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of vof" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lvofb", 192, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of vofb" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wvofb", 193, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of vofb" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "vofd", 194, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VDS dependence of vof" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lvofd", 195, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of vofd" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wvofd", 196, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of vofd" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "ai0", 197, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Pre-factor of hot-electron effect." );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lai0", 198, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of ai0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wai0", 199, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of ai0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "aib", 200, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of ai" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "laib", 201, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of aib" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "waib", 202, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of aib" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "bi0", 203, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Exponential factor of hot-electron effect." );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lbi0", 204, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of bi0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wbi0", 205, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of bi0" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "bib", 206, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "VBS dependence of bi" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lbib", 207, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of bib" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wbib", 208, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of bib" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "vghigh", 209, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0.2", "0.2", "Upper bound of the cubic spline function." );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lvghigh", 210, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of vghigh" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wvghigh", 211, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of vghigh" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "vglow", 212, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "-0.15", "-0.15", "Lower bound of the cubic spline function." );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "lvglow", 213, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length dependence of vglow" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wvglow", 214, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Width dependence of vglow" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "tox", 215, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "um", SIM_MODEL::PARAM::CATEGORY::DC, "0.03", "0.03", "Gate oxide thickness in um" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "temp", 216, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "°C", SIM_MODEL::PARAM::CATEGORY::PRINCIPAL, "27", "27", "Temperature in degree Celcius" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "vdd", 217, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "5", "5", "Maximum Vds" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "vgg", 218, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "5", "5", "Maximum Vgs" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "vbb", 219, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "5", "5", "Maximum Vbs" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "cgso", 220, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F/m", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "Gate source overlap capacitance per unit channel width(m)" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "cgdo", 221, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F/m", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "Gate drain overlap capacitance per unit channel width(m)" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "cgbo", 222, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F/m", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "Gate bulk overlap capacitance per unit channel length(m)" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "xpart", 223, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Flag for channel charge partitioning" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "rsh", 224, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "Ω/m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Source drain diffusion sheet resistance in ohm per square" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "js", 225, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "A", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Source drain junction saturation current per unit area" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "pb", 226, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "0.1", "0.1", "Source drain junction built in potential" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "mj", 227, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "Source drain bottom junction capacitance grading coefficient" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "pbsw", 228, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0.1", "0.1", "Source drain side junction capacitance built in potential" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "mjsw", 229, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "Source drain side junction capacitance grading coefficient" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "cj", 230, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "Source drain bottom junction capacitance per unit area" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "cjsw", 231, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "Source drain side junction capacitance per unit area" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "wdf", 232, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "um", SIM_MODEL::PARAM::CATEGORY::DC, "10", "10", "Default width of source drain diffusion in um" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "dell", 233, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Length reduction of source drain diffusion" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "kf", 236, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::NOISE, "0", "0", "Flicker noise coefficient" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "af", 237, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::NOISE, "0", "0", "Flicker noise exponent" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "nmos", 234, SIM_MODEL::PARAM::DIR_IN, SIM_VALUE::TYPE_BOOL, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Flag to indicate NMOS" );
modelInfos[MODEL_TYPE::BSIM2].modelParams.emplace_back( "pmos", 235, SIM_MODEL::PARAM::DIR_IN, SIM_VALUE::TYPE_BOOL, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Flag to indicate PMOS" );
// Instance parameters
modelInfos[MODEL_TYPE::BSIM2].instanceParams.emplace_back( "l", 2, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Length", true );
modelInfos[MODEL_TYPE::BSIM2].instanceParams.emplace_back( "w", 1, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Width", true );
modelInfos[MODEL_TYPE::BSIM2].instanceParams.emplace_back( "m", 14, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Parallel Multiplier", true );
modelInfos[MODEL_TYPE::BSIM2].instanceParams.emplace_back( "ad", 4, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Drain area", true );
modelInfos[MODEL_TYPE::BSIM2].instanceParams.emplace_back( "as", 3, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Source area", true );
modelInfos[MODEL_TYPE::BSIM2].instanceParams.emplace_back( "pd", 6, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Drain perimeter", true );
modelInfos[MODEL_TYPE::BSIM2].instanceParams.emplace_back( "ps", 5, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Source perimeter", true );
modelInfos[MODEL_TYPE::BSIM2].instanceParams.emplace_back( "nrd", 8, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Number of squares in drain", true );
modelInfos[MODEL_TYPE::BSIM2].instanceParams.emplace_back( "nrs", 7, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Number of squares in source", true );
modelInfos[MODEL_TYPE::BSIM2].instanceParams.emplace_back( "off", 9, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_BOOL, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Device is initially off", true );
modelInfos[MODEL_TYPE::BSIM2].instanceParams.emplace_back( "vds", 11, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Initial D-S voltage", true );
modelInfos[MODEL_TYPE::BSIM2].instanceParams.emplace_back( "vgs", 12, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Initial G-S voltage", true );
modelInfos[MODEL_TYPE::BSIM2].instanceParams.emplace_back( "vbs", 10, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Initial B-S voltage", true );
modelInfos[MODEL_TYPE::BSIM2].instanceParams.emplace_back( "ic", 13, SIM_MODEL::PARAM::DIR_IN, SIM_VALUE::TYPE_FLOAT_VECTOR /*SIM_VALUE::TYPE::VECTOR*/, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Vector of DS,GS,BS initial voltages", true );
}

View File

@ -0,0 +1,153 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2022 Mikolaj Wielgus
* Copyright (C) 2023 KiCad Developers, see AUTHORS.TXT for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <sim/sim_model_ngspice.h>
void NGSPICE_MODEL_INFO_MAP::addMOS6()
{
modelInfos[MODEL_TYPE::MOS6] = { "Mos6", "NMOS", "PMOS", { "D", "G", "S", "B" }, "Level 6 MOSfet model with Meyer capacitance model", {}, {} };
// Model parameters
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "type", 140, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_STRING, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "nmos", "pmos", "N-channel or P-channel MOS" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "vto", 101, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Threshold voltage" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "vt0", 101, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "0", "0", "n.a." );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "kv", 102, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "2", "2", "Saturation voltage factor" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "nv", 103, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "0.5", "0.5", "Saturation voltage coeff." );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "kc", 104, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "A", SIM_MODEL::PARAM::CATEGORY::DC, "5e-05", "5e-05", "Saturation current factor" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "nc", 105, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "A", SIM_MODEL::PARAM::CATEGORY::DC, "1", "1", "Saturation current coeff." );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "nvth", 106, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "0.5", "0.5", "Threshold voltage coeff." );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "ps_", 107, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "A", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Sat. current modification par." );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "gamma", 108, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "sqrt V", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Bulk threshold parameter" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "gamma1", 109, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "sqrt V", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Bulk threshold parameter 1" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "sigma", 110, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "static const feedback effect par." );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "phi", 111, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "0.6", "0.6", "Surface potential" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "lambda", 112, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "1/V", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Channel length modulation param." );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "lambda0", 113, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "1/V", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Channel length modulation param. 0" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "lambda1", 114, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "1/V", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Channel length modulation param. 1" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "rd_", 115, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "Ω", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Drain ohmic resistance" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "rs_", 116, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "Ω", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Source ohmic resistance" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "cbd_", 117, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "B-D junction capacitance" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "cbs_", 118, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::CAPACITANCE, "0", "0", "B-S junction capacitance" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "is_", 119, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "A", SIM_MODEL::PARAM::CATEGORY::DC, "1e-14", "1e-14", "Bulk junction sat. current" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "pb", 120, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "0.8", "0.8", "Bulk junction potential" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "cgso", 121, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F/m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Gate-source overlap cap." );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "cgdo", 122, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F/m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Gate-drain overlap cap." );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "cgbo", 123, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F/m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Gate-bulk overlap cap." );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "rsh", 131, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "Ω/m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Sheet resistance" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "cj", 124, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F/m²", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Bottom junction cap per area" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "mj", 125, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0.5", "0.5", "Bottom grading coefficient" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "cjsw", 126, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F/m²", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Side junction cap per area" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "mjsw", 127, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0.5", "0.5", "Side grading coefficient" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "js", 128, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "A/m²", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Bulk jct. sat. current density" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "ld", 130, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Lateral diffusion" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "tox", 129, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Oxide thickness" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "u0", 132, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "cm²/V s", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Surface mobility" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "uo", 132, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "0", "0", "n.a." );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "fc", 133, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0.5", "0.5", "Forward bias jct. fit parm." );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "nmos", 137, SIM_MODEL::PARAM::DIR_IN, SIM_VALUE::TYPE_BOOL, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "N type MOSfet model" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "pmos", 138, SIM_MODEL::PARAM::DIR_IN, SIM_VALUE::TYPE_BOOL, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "P type MOSfet model" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "tpg", 135, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_INT, "", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Gate type" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "nsub", 134, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "1/cm³", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Substrate doping" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "nss", 136, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "1/cm²", SIM_MODEL::PARAM::CATEGORY::DC, "0", "0", "Surface state density" );
modelInfos[MODEL_TYPE::MOS6].modelParams.emplace_back( "tnom", 139, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "°C", SIM_MODEL::PARAM::CATEGORY::TEMPERATURE, "300.15", "300.15", "Parameter measurement temperature" );
// Instance parameters
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "l", 2, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Length", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "w", 1, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Width", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "m", 22, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Parallel Multiplier", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "ad", 4, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Drain area", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "as", 3, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Source area", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "pd", 6, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Drain perimeter", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "ps", 5, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "0", "0", "Source perimeter", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "id", 215, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "A", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Drain current", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "cd", 215, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "A", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Drain current", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "is", 18, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "A", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "1e-14", "1e-14", "Source current", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "ig", 17, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "A", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Gate current", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "ib", 16, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "A", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Bulk current", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "ibs", 216, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "B-S junction capacitance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "ibd", 217, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "B-D junction capacitance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "vgs", 231, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Gate-Source voltage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "vds", 232, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Drain-Source voltage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "vbs", 230, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Bulk-Source voltage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "vbd", 229, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Bulk-Drain voltage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "nrd", 8, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Drain squares", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "nrs", 7, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::GEOMETRY, "", "", "Source squares", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "off", 9, SIM_MODEL::PARAM::DIR_IN, SIM_VALUE::TYPE_BOOL, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Device initially off", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "icvds", 12, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Initial D-S voltage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "icvgs", 13, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Initial G-S voltage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "icvbs", 11, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Initial B-S voltage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "temp", 20, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "°C", SIM_MODEL::PARAM::CATEGORY::PRINCIPAL, "", "", "Instance temperature", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "dtemp", 21, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "°C", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Instance temperature difference", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "ic", 10, SIM_MODEL::PARAM::DIR_IN, SIM_VALUE::TYPE_FLOAT_VECTOR, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Vector of D-S, G-S, B-S voltages", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sens_l", 15, SIM_MODEL::PARAM::DIR_IN, SIM_VALUE::TYPE_BOOL, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "flag to request sensitivity WRT length", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sens_w", 14, SIM_MODEL::PARAM::DIR_IN, SIM_VALUE::TYPE_BOOL, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "flag to request sensitivity WRT width", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "dnode", 203, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_INT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Number of the drain node", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "gnode", 204, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_INT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Number of the gate node", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "snode", 205, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_INT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Number of the source node", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "bnode", 206, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_INT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Number of the node", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "dnodeprime", 207, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_INT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Number of int. drain node", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "snodeprime", 208, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_INT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Number of int. source node", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "rs", 258, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "Ω", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "0", "0", "Source resistance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sourceconductance", 209, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Source conductance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "rd", 259, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "Ω", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "0", "0", "Drain resistance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "drainconductance", 210, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Drain conductance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "von", 211, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Turn-on voltage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "vdsat", 212, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Saturation drain voltage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sourcevcrit", 213, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Critical source voltage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "drainvcrit", 214, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Critical drain voltage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "gmbs", 218, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Bulk-Source transconductance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "gm", 219, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Transconductance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "gds", 220, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Drain-Source conductance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "gbd", 221, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Bulk-Drain conductance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "gbs", 222, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Bulk-Source conductance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "cgs", 233, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Gate-Source capacitance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "cgd", 236, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Gate-Drain capacitance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "cgb", 239, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Gate-Bulk capacitance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "cbd", 223, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "0", "0", "Bulk-Drain capacitance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "cbs", 224, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "0", "0", "Bulk-Source capacitance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "cbd0", 225, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Zero-Bias B-D junction capacitance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "cbs0", 227, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Zero-Bias B-S junction capacitance", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "cqgs", 235, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Capacitance due to gate-source charge storage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "cqgd", 238, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Capacitance due to gate-drain charge storage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "cqgb", 241, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Capacitance due to gate-bulk charge storage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "cqbd", 243, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Capacitance due to bulk-drain charge storage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "cqbs", 245, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Capacitance due to bulk-source charge storage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "qgs", 234, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Gate-Source charge storage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "qgd", 237, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Gate-Drain charge storage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "qgb", 240, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Gate-Bulk charge storage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "qbd", 242, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Bulk-Drain charge storage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "qbs", 244, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Bulk-Source charge storage", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "p", 19, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "Instaneous power", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sens_l_dc", 256, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "dc sensitivity wrt length", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sens_l_real", 246, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "real part of ac sensitivity wrt length", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sens_l_imag", 247, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "imag part of ac sensitivity wrt length", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sens_l_mag", 248, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "sensitivity wrt l of ac magnitude", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sens_l_ph", 249, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "sensitivity wrt l of ac phase", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sens_l_cplx", 250, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_COMPLEX, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "ac sensitivity wrt length", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sens_w_dc", 257, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "dc sensitivity wrt width", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sens_w_real", 251, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "real part of ac sensitivity wrt width", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sens_w_imag", 252, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "m", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "imag part of ac sensitivity wrt width", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sens_w_mag", 253, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "sensitivity wrt w of ac magnitude", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sens_w_ph", 254, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "sensitivity wrt w of ac phase", true );
modelInfos[MODEL_TYPE::MOS6].instanceParams.emplace_back( "sens_w_cplx", 255, SIM_MODEL::PARAM::DIR_OUT, SIM_VALUE::TYPE_COMPLEX, "", SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS, "", "", "ac sensitivity wrt width", true );
}