From 111a56dd8ae66534702dea4ee1c94958e0e534ec Mon Sep 17 00:00:00 2001 From: Graham Keeth Date: Tue, 9 May 2023 19:38:30 -0400 Subject: [PATCH] sim: fixup some diode parameter units (cherry picked from commit df3560ab8e8d25ea7d39d1ee882bac167661caba) --- eeschema/sim/sim_model_ngspice_data.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/eeschema/sim/sim_model_ngspice_data.cpp b/eeschema/sim/sim_model_ngspice_data.cpp index 885274a9da..0b5bb24e61 100644 --- a/eeschema/sim/sim_model_ngspice_data.cpp +++ b/eeschema/sim/sim_model_ngspice_data.cpp @@ -88,14 +88,14 @@ struct MODEL_INFO_MAP 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" ); 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" ); 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" ); - modelInfos[MODEL_TYPE::DIODE].modelParams.emplace_back( "trs", 129, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "Ω", SIM_MODEL::PARAM::CATEGORY::TEMPERATURE, "0", "", "Ohmic resistance 1st order temp. coeff." ); + 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." ); 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." ); - modelInfos[MODEL_TYPE::DIODE].modelParams.emplace_back( "trs2", 130, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "Ω", SIM_MODEL::PARAM::CATEGORY::TEMPERATURE, "0", "", "Ohmic resistance 2nd order temp. coeff." ); + 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." ); 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" ); 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" ); 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" ); - modelInfos[MODEL_TYPE::DIODE].modelParams.emplace_back( "ttt1", 125, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "s", SIM_MODEL::PARAM::CATEGORY::TEMPERATURE, "0", "", "Transit Time 1st order temp. coeff." ); - modelInfos[MODEL_TYPE::DIODE].modelParams.emplace_back( "ttt2", 126, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "s", SIM_MODEL::PARAM::CATEGORY::TEMPERATURE, "0", "", "Transit Time 2nd order temp. coeff." ); + 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." ); + 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." ); 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" ); 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" ); 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" ); @@ -119,12 +119,12 @@ struct MODEL_INFO_MAP 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" ); 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" ); 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." ); - modelInfos[MODEL_TYPE::DIODE].modelParams.emplace_back( "cta", 133, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "°C", SIM_MODEL::PARAM::CATEGORY::TEMPERATURE, "0", "", "Area junction temperature coefficient" ); + 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" ); 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." ); - modelInfos[MODEL_TYPE::DIODE].modelParams.emplace_back( "ctp", 134, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "F", SIM_MODEL::PARAM::CATEGORY::TEMPERATURE, "0", "", "Perimeter junction capacitance temperature coefficient" ); - modelInfos[MODEL_TYPE::DIODE].modelParams.emplace_back( "tpb", 135, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::TEMPERATURE, "0", "", "Area junction potential temperature coefficient" ); + 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" ); + 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" ); 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." ); - modelInfos[MODEL_TYPE::DIODE].modelParams.emplace_back( "tphp", 136, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::TEMPERATURE, "0", "", "Perimeter junction potential temperature coefficient" ); + 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" ); 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" ); 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" ); 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" ); @@ -137,17 +137,17 @@ struct MODEL_INFO_MAP modelInfos[MODEL_TYPE::DIODE].modelParams.emplace_back( "bv", 111, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::DC, "0", "", "Reverse breakdown voltage" ); 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" ); 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." ); - modelInfos[MODEL_TYPE::DIODE].modelParams.emplace_back( "tcv", 137, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "V", SIM_MODEL::PARAM::CATEGORY::TEMPERATURE, "0", "", "Reverse breakdown voltage temperature coefficient" ); + 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" ); 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" ); 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" ); - modelInfos[MODEL_TYPE::DIODE].modelParams.emplace_back( "nr", 153, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "A", SIM_MODEL::PARAM::CATEGORY::DC, "1", "", "Recombination current emission coefficient" ); + 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" ); 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" ); 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" ); 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" ); 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" ); 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" ); 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" ); - modelInfos[MODEL_TYPE::DIODE].modelParams.emplace_back( "cth0", 155, SIM_MODEL::PARAM::DIR_INOUT, SIM_VALUE::TYPE_FLOAT, "", SIM_MODEL::PARAM::CATEGORY::DC, "1e-05", "", "Self-heating thermal capacitance" ); + 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" ); 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)" ); 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)" ); 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)" );