Added more documentation to diode and bjt model. (nw)

This commit is contained in:
couriersud 2017-01-15 14:54:21 +01:00
parent 3cfe098bb2
commit fd59a10f92
5 changed files with 92 additions and 14 deletions

View File

@ -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)
{

View File

@ -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")

View File

@ -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.
};

View File

@ -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

View File

@ -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;