KiCad PCB EDA Suite
Loading...
Searching...
No Matches
sim_model_ngspice_data_diode.cpp
Go to the documentation of this file.
1
/*
2
* This program source code file is part of KiCad, a free EDA CAD application.
3
*
4
* Copyright (C) 2022 Mikolaj Wielgus
5
* Copyright (C) 2023 KiCad Developers, see AUTHORS.TXT for contributors.
6
*
7
* This program is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU General Public License
9
* as published by the Free Software Foundation; either version 2
10
* of the License, or (at your option) any later version.
11
*
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this program; if not, you may find one here:
19
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
20
* or you may search the http://www.gnu.org website for the version 2 license,
21
* or you may write to the Free Software Foundation, Inc.,
22
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23
*/
24
25
#include <
sim/sim_model_ngspice.h
>
26
27
28
void
NGSPICE_MODEL_INFO_MAP::addDIODE
()
29
{
30
modelInfos
[MODEL_TYPE::DIODE] = {
"Diode"
,
"D"
,
""
, {
"A"
,
"K"
},
"Junction Diode model"
, {}, {} };
31
// Model parameters
32
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"level"
, 100,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_INT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
"1"
,
""
,
"Diode level selector"
);
33
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"is"
, 101,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"A"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1e-14"
,
""
,
"Saturation current"
);
34
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"js"
, 101,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
"1e-14"
,
""
,
"n.a."
);
35
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"jsw"
, 118,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"A"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Sidewall Saturation current"
);
36
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"tnom"
, 115,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"°C"
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"27"
,
""
,
"Parameter measurement temperature"
);
37
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"tref"
, 115,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"°C"
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
"27"
,
""
,
"Parameter measurement temperature"
);
38
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"rs"
, 102,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"Ω"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Ohmic resistance"
);
39
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"trs"
, 129,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"1/°C"
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"0"
,
""
,
"Ohmic resistance 1st order temp. coeff."
);
40
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"trs1"
, 129,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
"0"
,
""
,
"n.a."
);
41
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"trs2"
, 130,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"1/°C²"
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"0"
,
""
,
"Ohmic resistance 2nd order temp. coeff."
);
42
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"n"
, 103,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1"
,
""
,
"Emission Coefficient"
);
43
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"ns"
, 141,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1"
,
""
,
"Sidewall emission Coefficient"
);
44
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"tt"
, 104,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"s"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Transit Time"
);
45
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"ttt1"
, 125,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"1/°C"
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"0"
,
""
,
"Transit Time 1st order temp. coeff."
);
46
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"ttt2"
, 126,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"1/°C²"
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"0"
,
""
,
"Transit Time 2nd order temp. coeff."
);
47
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"cjo"
, 105,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"F"
,
SIM_MODEL::PARAM::CATEGORY::CAPACITANCE
,
"0"
,
""
,
"Junction capacitance"
);
48
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"cj0"
, 105,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"F"
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
"0"
,
""
,
"Junction capacitance"
);
49
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"cj"
, 105,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"F"
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
"0"
,
""
,
"Junction capacitance"
);
50
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"vj"
, 106,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"V"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1"
,
""
,
"Junction potential"
);
51
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"pb"
, 106,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
"1"
,
""
,
"n.a."
);
52
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"m_"
, 107,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0.5"
,
""
,
"Grading coefficient"
);
53
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"mj"
, 107,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
"0.5"
,
""
,
"n.a."
);
54
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"tm1"
, 127,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"1/°C²"
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"0"
,
""
,
"Grading coefficient 1st temp. coeff."
);
55
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"tm2"
, 128,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"1/°C"
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"0"
,
""
,
"Grading coefficient 2nd temp. coeff."
);
56
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"cjp"
, 119,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"F"
,
SIM_MODEL::PARAM::CATEGORY::CAPACITANCE
,
"0"
,
""
,
"Sidewall junction capacitance"
);
57
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"cjsw"
, 119,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
"0"
,
""
,
"n.a."
);
58
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"php"
, 120,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"V"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1"
,
""
,
"Sidewall junction potential"
);
59
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"mjsw"
, 121,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0.33"
,
""
,
"Sidewall Grading coefficient"
);
60
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"ikf"
, 122,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"A"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Forward Knee current"
);
61
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"ik"
, 122,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
"0"
,
""
,
"n.a."
);
62
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"ikr"
, 123,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"A"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Reverse Knee current"
);
63
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"nbv"
, 138,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1"
,
""
,
"Breakdown Emission Coefficient"
);
64
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"area_"
, 139,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1"
,
""
,
"Area factor"
);
65
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"pj_"
, 140,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Perimeter factor"
);
66
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"tlev"
, 131,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_INT
,
""
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"0"
,
""
,
"Diode temperature equation selector"
);
67
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"tlevc"
, 132,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_INT
,
""
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"0"
,
""
,
"Diode temperature equation selector"
);
68
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"eg"
, 108,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"eV"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1.11"
,
""
,
"Activation energy"
);
69
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"xti"
, 109,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"A"
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"3"
,
""
,
"Saturation current temperature exp."
);
70
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"cta"
, 133,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"1/°C"
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"0"
,
""
,
"Area junction temperature coefficient"
);
71
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"ctc"
, 133,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
"0"
,
""
,
"n.a."
);
72
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"ctp"
, 134,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"1/°C"
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"0"
,
""
,
"Perimeter junction capacitance temperature coefficient"
);
73
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"tpb"
, 135,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"1/°C"
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"0"
,
""
,
"Area junction potential temperature coefficient"
);
74
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"tvj"
, 135,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
"0"
,
""
,
"n.a."
);
75
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"tphp"
, 136,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"1/°C"
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"0"
,
""
,
"Perimeter junction potential temperature coefficient"
);
76
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"jtun"
, 142,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"A"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Tunneling saturation current"
);
77
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"jtunsw"
, 143,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"A"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Tunneling sidewall saturation current"
);
78
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"ntun"
, 144,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"30"
,
""
,
"Tunneling emission coefficient"
);
79
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"xtitun"
, 145,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"3"
,
""
,
"Tunneling saturation current exponential"
);
80
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"keg"
, 146,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1"
,
""
,
"EG correction factor for tunneling"
);
81
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"kf"
, 116,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::NOISE
,
"0"
,
""
,
"flicker noise coefficient"
);
82
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"af"
, 117,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::NOISE
,
"1"
,
""
,
"flicker noise exponent"
);
83
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"fc"
, 110,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0.5"
,
""
,
"Forward bias junction fit parameter"
);
84
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"fcs"
, 124,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0.5"
,
""
,
"Forward bias sidewall junction fit parameter"
);
85
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"bv"
, 111,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"V"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1e+99"
,
""
,
"Reverse breakdown voltage"
);
86
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"ibv"
, 112,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"A"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0.001"
,
""
,
"Current at reverse breakdown voltage"
);
87
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"ib"
, 112,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
"0.001"
,
""
,
"n.a."
);
88
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"tcv"
, 137,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"1/°C"
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"0"
,
""
,
"Reverse breakdown voltage temperature coefficient"
);
89
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"cond"
, 114,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Ohmic conductance"
);
90
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"isr"
, 152,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"A"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1e-14"
,
""
,
"Recombination saturation current"
);
91
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"nr"
, 153,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1"
,
""
,
"Recombination current emission coefficient"
);
92
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"fv_max"
, 147,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"V"
,
SIM_MODEL::PARAM::CATEGORY::LIMITING_VALUES
,
"1e+99"
,
""
,
"maximum voltage in forward direction"
);
93
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"bv_max"
, 148,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"V"
,
SIM_MODEL::PARAM::CATEGORY::LIMITING_VALUES
,
"1e+99"
,
""
,
"maximum voltage in reverse direction"
);
94
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"id_max"
, 149,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"A"
,
SIM_MODEL::PARAM::CATEGORY::LIMITING_VALUES
,
"1e+99"
,
""
,
"maximum current"
);
95
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"te_max"
, 150,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"°C"
,
SIM_MODEL::PARAM::CATEGORY::LIMITING_VALUES
,
"1e+99"
,
""
,
"temperature"
);
96
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"pd_max"
, 151,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::LIMITING_VALUES
,
"1e+99"
,
""
,
"maximum power dissipation"
);
97
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"rth0"
, 154,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"Ω"
,
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
,
"0"
,
""
,
"Self-heating thermal resistance"
);
98
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"cth0"
, 155,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"F"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1e-05"
,
""
,
"Self-heating thermal capacitance"
);
99
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"lm_"
, 156,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"m"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Length of metal capacitor (level=3)"
);
100
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"lp_"
, 157,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"m"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Length of polysilicon capacitor (level=3)"
);
101
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"wm_"
, 158,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"m"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Width of metal capacitor (level=3)"
);
102
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"wp_"
, 159,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"m"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Width of polysilicon capacitor (level=3)"
);
103
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"xom"
, 160,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"m"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1e-06"
,
""
,
"Thickness of the metal to bulk oxide (level=3)"
);
104
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"xoi"
, 161,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"m"
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"1e-06"
,
""
,
"Thickness of the polysilicon to bulk oxide (level=3)"
);
105
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"xm"
, 162,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Masking and etching effects in metal (level=3)"
);
106
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"xp"
, 163,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::DC
,
"0"
,
""
,
"Masking and etching effects in polysilicon (level=3)"
);
107
modelInfos
[MODEL_TYPE::DIODE].modelParams.emplace_back(
"d"
, 113,
SIM_MODEL::PARAM::DIR_IN
,
SIM_VALUE::TYPE_BOOL
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"Diode model"
);
108
// Instance parameters
109
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"off"
, 3,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_BOOL
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"Initially off"
,
true
);
110
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"temp"
, 11,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"°C"
,
SIM_MODEL::PARAM::CATEGORY::PRINCIPAL
,
""
,
""
,
"Instance temperature"
,
true
);
111
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"dtemp"
, 23,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"°C"
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"Instance delta temperature"
,
true
);
112
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"ic"
, 2,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"V"
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"Initial device voltage"
,
true
);
113
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"m"
, 22,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::GEOMETRY
,
"0.5"
,
""
,
"Multiplier"
,
true
);
114
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"area"
, 1,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::GEOMETRY
,
"1"
,
""
,
"Area factor"
,
true
);
115
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"pj"
, 19,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::GEOMETRY
,
"0"
,
""
,
"Perimeter factor"
,
true
);
116
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"w"
, 20,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"m"
,
SIM_MODEL::PARAM::CATEGORY::GEOMETRY
,
""
,
""
,
"Diode width"
,
true
);
117
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"l"
, 21,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"m"
,
SIM_MODEL::PARAM::CATEGORY::GEOMETRY
,
""
,
""
,
"Diode length"
,
true
);
118
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"lm"
, 25,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"m"
,
SIM_MODEL::PARAM::CATEGORY::GEOMETRY
,
"0"
,
""
,
"Length of metal capacitor (level=3)"
,
true
);
119
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"lp"
, 26,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"m"
,
SIM_MODEL::PARAM::CATEGORY::GEOMETRY
,
"0"
,
""
,
"Length of polysilicon capacitor (level=3)"
,
true
);
120
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"wm"
, 27,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"m"
,
SIM_MODEL::PARAM::CATEGORY::GEOMETRY
,
"0"
,
""
,
"Width of metal capacitor (level=3)"
,
true
);
121
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"wp"
, 28,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_FLOAT
,
"m"
,
SIM_MODEL::PARAM::CATEGORY::GEOMETRY
,
"0"
,
""
,
"Width of polysilicon capacitor (level=3)"
,
true
);
122
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"thermal"
, 24,
SIM_MODEL::PARAM::DIR_INOUT
,
SIM_VALUE::TYPE_BOOL
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"Self heating mode selector"
,
true
);
123
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"sens_area"
, 9,
SIM_MODEL::PARAM::DIR_IN
,
SIM_VALUE::TYPE_BOOL
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"flag to request sensitivity WRT area"
,
true
);
124
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"vd"
, 5,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
"V"
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"Diode voltage"
,
true
);
125
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"id"
, 4,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
"A"
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"Diode current"
,
true
);
126
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"c"
, 4,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
"A"
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"Diode current"
,
true
);
127
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"gd"
, 8,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"Diode conductance"
,
true
);
128
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"cd"
, 18,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
"F"
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"Diode capacitance"
,
true
);
129
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"charge"
, 6,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"Diode capacitor charge"
,
true
);
130
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"qd"
, 6,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"Diode capacitor charge"
,
true
);
131
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"capcur"
, 7,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
"A"
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"Diode capacitor current"
,
true
);
132
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"p"
, 10,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"Diode power"
,
true
);
133
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"sens_dc"
, 17,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"dc sensitivity"
,
true
);
134
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"sens_real"
, 12,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"dc sens. and real part of ac sensitivity"
,
true
);
135
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"sens_imag"
, 13,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"imag part of ac sensitivity"
,
true
);
136
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"sens_mag"
, 14,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"sensitivity of ac magnitude"
,
true
);
137
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"sens_ph"
, 15,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_FLOAT
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"sensitivity of ac phase"
,
true
);
138
modelInfos
[MODEL_TYPE::DIODE].instanceParams.emplace_back(
"sens_cplx"
, 16,
SIM_MODEL::PARAM::DIR_OUT
,
SIM_VALUE::TYPE_COMPLEX
,
""
,
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
,
""
,
""
,
"ac sensitivity"
,
true
);
139
}
SIM_VALUE::TYPE_BOOL
@ TYPE_BOOL
Definition:
sim_value.h:67
SIM_VALUE::TYPE_INT
@ TYPE_INT
Definition:
sim_value.h:68
SIM_VALUE::TYPE_FLOAT
@ TYPE_FLOAT
Definition:
sim_value.h:69
SIM_VALUE::TYPE_COMPLEX
@ TYPE_COMPLEX
Definition:
sim_value.h:70
sim_model_ngspice.h
NGSPICE_MODEL_INFO_MAP::modelInfos
std::unordered_map< MODEL_TYPE, MODEL_INFO > modelInfos
Definition:
sim_model_ngspice.h:123
NGSPICE_MODEL_INFO_MAP::addDIODE
void addDIODE()
Definition:
sim_model_ngspice_data_diode.cpp:28
SIM_MODEL::PARAM::DIR_OUT
@ DIR_OUT
Definition:
sim_model.h:320
SIM_MODEL::PARAM::DIR_IN
@ DIR_IN
Definition:
sim_model.h:319
SIM_MODEL::PARAM::DIR_INOUT
@ DIR_INOUT
Definition:
sim_model.h:321
SIM_MODEL::PARAM::CATEGORY::LIMITING_VALUES
@ LIMITING_VALUES
SIM_MODEL::PARAM::CATEGORY::NOISE
@ NOISE
SIM_MODEL::PARAM::CATEGORY::PRINCIPAL
@ PRINCIPAL
SIM_MODEL::PARAM::CATEGORY::GEOMETRY
@ GEOMETRY
SIM_MODEL::PARAM::CATEGORY::TEMPERATURE
@ TEMPERATURE
SIM_MODEL::PARAM::CATEGORY::DC
@ DC
SIM_MODEL::PARAM::CATEGORY::SUPERFLUOUS
@ SUPERFLUOUS
SIM_MODEL::PARAM::CATEGORY::CAPACITANCE
@ CAPACITANCE
src
eeschema
sim
sim_model_ngspice_data_diode.cpp
Generated on Sun Dec 22 2024 00:05:22 for KiCad PCB EDA Suite by
1.9.6