diff --git a/src/lib/netlist/analog/nld_bjt.h b/src/lib/netlist/analog/nld_bjt.h index 928ca7f9ffc..f6aa359088a 100644 --- a/src/lib/netlist/analog/nld_bjt.h +++ b/src/lib/netlist/analog/nld_bjt.h @@ -32,6 +32,58 @@ namespace netlist // nld_Q - Base classes // ----------------------------------------------------------------------------- + /* FIXME: Make table pretty */ + + /*! Class representing the bjt model paramers. + * This is the model representation of the bjt model. Typically, SPICE uses + * the following parameters. A "Y" in the first column indicates that the + * parameter is actually used in netlist. + * + * |NL? |name |parameter |units|default| example|area  | + * |:--:|:-----|:--------------------------------|:----|------:|-------:|:----:| + * | Y |IS |transport saturation current|A |1E-016|1E-015|* | + * | Y |BF |ideal maximum forward beta|- |100|100| | + * | Y |NF |forward current emission coefficient|- |1|1| | + * | |VAF |forward Early voltage|V |infinite |200| | + * | |IKF |corner for forward beta high current roll-off|A |infinite |0.01|* | + * | |ISE |B-E leakage saturation current|A |0|0.0000000000001|* | + * | |NE |B-E leakage emission coefficient|- |1.5|2| | + * | Y |BR |ideal maximum reverse beta |- |1|0.1| | + * | Y |NR |reverse current emission coefficient|- |1|1| | + * | |VAR |reverse Early voltage|V |infinite |200| | + * | |IKR |corner for reverse beta high current roll-off|A |infinite |0.01|* | + * | |ISC |leakage saturation current|A |0|8| | + * | |NC |leakage emission coefficient|- |2|1.5| | + * | |RB |zero bias base resistance| |0|100|* | + * | |IRB |current where base resistance falls halfway to its min value|A |infinte |0.1|* | + * | |RBM |minimum base resistance at high currents| |RB |10|* | + * | |RE |emitter resistance| |0|1|* | + * | |RC |collector resistance | |0|10|* | + * | |CJE |B-E zero-bias depletion capacitance|F |0|2pF |* | + * | |VJE |B-E built-in potential|V |0.75|0.6| | + * | |MJE |B-E junction exponential factor |- |0.33|0.33| | + * | |TF |ideal forward transit time |sec |0|0.1ns | | + * | |XTF|coefficient for bias dependence of TF |- |0| | | + * | |VTF |voltage describing VBC  dependence of TF |V |infinite | | | + * | |ITF |high-current parameter  for effect on TF |A |0| |* | + * | |PTF |excess phase at freq=1.0/(TF*2PI) Hz |deg |0| | | + * | |CJC |B-C zero-bias depletion capacitance |F |0|2pF |* | + * | |VJC |B-C built-in potential |V |0.75|0.5| | + * | |MJC |B-C junction exponential factor |- |0.33|0.5| | + * | |XCJC |fraction of B-C depletion capacitance connected to internal base node |- |1| | | + * | |TR |ideal reverse transit time |sec |0|10ns | | + * | |CJS |zero-bias collector-substrate capacitance |F |0|2pF |* | + * | |VJS |substrate junction built-in potential |V |0.75| | | + * | |MJS |substrate junction exponential factor |- |0|0.5| | + * | |XTB |forward and reverse beta temperature exponent |- |0| | | + * | |EG|energy gap for temperature effect on IS |eV |1.11| | | + * | |XTI|temperature exponent for effect on IS |- |3| | | + * | |KF |flicker-noise coefficient |- |0| | | + * | |AF |flicker-noise exponent |- |1| | | + * | |FC |coefficient for forward-bias depletion capacitance formula |- |0.5| | | + * | |TNOM |Parameter measurement temperature |C |27|50| | + */ + class bjt_model_t : public param_model_t { public: @@ -44,13 +96,14 @@ namespace netlist , m_NR(*this, "NR") {} - value_t m_IS; - value_t m_BF; - value_t m_NF; - value_t m_BR; - value_t m_NR; + value_t m_IS; //!< transport saturation current + value_t m_BF; //!< ideal maximum forward beta + value_t m_NF; //!< forward current emission coefficient + value_t m_BR; //!< ideal maximum reverse beta  + value_t m_NR; //!< reverse current emission coefficient }; -// Have a common start for transistors + + // Have a common start for transistors NETLIB_OBJECT(Q) { diff --git a/src/lib/netlist/analog/nld_opamps.h b/src/lib/netlist/analog/nld_opamps.h index 6c3fce9b25b..212269c95d3 100644 --- a/src/lib/netlist/analog/nld_opamps.h +++ b/src/lib/netlist/analog/nld_opamps.h @@ -39,10 +39,10 @@ namespace netlist : param_model_t(device, name, val) , m_TYPE(*this, "TYPE") , m_FPF(*this, "FPF") - , m_SLEW(*this, "TYPE") - , m_RI(*this, "VLL") - , m_RO(*this, "VLL") - , m_UGF(*this, "VLL") + , m_SLEW(*this, "SLEW") + , m_RI(*this, "RI") + , m_RO(*this, "RO") + , m_UGF(*this, "UGF") , m_VLL(*this, "VLL") , m_VLH(*this, "VLH") , m_DAB(*this, "DAB") diff --git a/src/lib/netlist/analog/nld_twoterm.h b/src/lib/netlist/analog/nld_twoterm.h index 275d0f40492..48c1e18c708 100644 --- a/src/lib/netlist/analog/nld_twoterm.h +++ b/src/lib/netlist/analog/nld_twoterm.h @@ -358,6 +358,31 @@ private: nl_double m_Vcrit; }; +/*! Class representing the diode model paramers. + * This is the model representation of the diode model. Typically, SPICE uses + * the following parameters. A "Y" in the first column indicates that the + * parameter is actually used in netlist. + * + * |NL? |name |parameter |units|default| example|area  | + * |:--:|:-----|:--------------------------------|:----|------:|-------:|:----:| + * | Y |IS |saturation current |A |1.0e-14| 1.0e-14| *  | + * | |RS |ohmic resistanc |Ohm | 0| 10| *  | + * | Y |N |emission coefficient |- | 1| 1| | + * | |TT |transit-time |sec | 0| 0.1ns| | + * | |CJO |zero-bias junction capacitance |F | 0| 2pF| *  | + * | |VJ |junction potential |V | 1| 0.6| | + * | |M |grading coefficient |- | 0.5| 0.5| | + * | |EG |band-gap energy |eV | 1.11| 1.11 Si| | + * | |XTI |saturation-current temp.exp |- | 3|3.0 pn. 2.0 Schottky| | + * | |KF |flicker noise coefficient |- | 0| | | + * | |AF |flicker noise exponent |- | 1| | | + * | |FC |coefficient for forward-bias depletion capacitance formula|-|0.5|| | + * | |BV |reverse breakdown voltage |V |infinite| 40| | + * | |IBV |current at breakdown voltage |V | 0.001| | | + * | |TNOM |parameter measurement temperature|deg C| 27| 50| | + * + */ + class diode_model_t : public param_model_t { public: @@ -367,8 +392,8 @@ public: , m_N(*this, "N") {} - value_t m_IS; - value_t m_N; + value_t m_IS; //!< saturation current. + value_t m_N; //!< emission coefficient. }; diff --git a/src/lib/netlist/build/doxygen.conf b/src/lib/netlist/build/doxygen.conf index 9f0ff127793..adf69b30e54 100644 --- a/src/lib/netlist/build/doxygen.conf +++ b/src/lib/netlist/build/doxygen.conf @@ -771,7 +771,7 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = ".." "../documentation" +INPUT = ".." "../analog" "../documentation" # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses diff --git a/src/lib/netlist/nl_base.h b/src/lib/netlist/nl_base.h index d1ad788b17b..00289b6e57a 100644 --- a/src/lib/netlist/nl_base.h +++ b/src/lib/netlist/nl_base.h @@ -963,7 +963,7 @@ namespace netlist printf("Looking for %s %s\n", param.name().c_str(), name.c_str()); m_value = param.model_value(name); } - const double operator()() const { return m_value; } + double operator()() const { return m_value; } operator double() const { return m_value; } private: double m_value;