The junction diode is the the basic semiconductor device and the simplest one modeled in NGSPICE, but it's model is quite complex, even if not all the physical phenomena affecting a pn junction are modelled. The diode is modeled in three different regions:
Parameters Scaling
Model parameters are scaled using the unitless parameters AREA and PJ and the multiplier M as depicted below:
AREAeff = AREA * M PJeff = PJ * M ISeff = IS * AREAeff + JSW * PJeff IKeff = IK * AREAeff IKReff = IKR * AREAeff CJeff = CJ0 * AREAeff CJPeff = CJP * PJeff
Diode DC, Transient and AC model equations
To be written!
The breakdown region must be described with more depth since the breakdown is not modelled in physically. As written before, the breakdown modelling is based on two model parameters: the "nominal breakdown voltage" BV and the current at the onset of breakdown IBV. For the diode model to be consistent, the current value cannot be arbitrary chosen, since the reverse bias and breakdown regions must match.
When the diode enters breakdown region from reverse bias, the current is calculated using the formula:
To be written!
Note: if you look at the code in diotemp.c you will discover that the exponential relation is replaced with a first order taylor series expansion.
The computed current is necessary to adjust the breakdown voltage making the two regions match. The algorithm is a little bit convoluted and only a brief description is given here:
IF IBVeff < Ibdwm THEN IBVeff = Ibwn BVeff = BV ELSE BVeff = BV - N * Vt * LN(IBVeff/Ibdvn) END IF
Most real diodes shows a current increase that, at high current levels, does not follow the exponential relationship given above. This behaviour is due to high level of carriers injected into the junction. High injection effects (as they are called) are modelled with IK and IKR.
Not yet written!
Diode capacitance is divided into two different terms:
Depletion capacitance is composed by two different contributes, one associated to the bottom of the junction (bottowall depletion capacitance) and the other to the periphery (sidewall depletion capacitance).
The basic equations are:
Cdiode = Cdiffusion + Cdepletion
Where the depletion capacitance i defined as:
Cdepletion = CdeplBW + CdeplSW
The diffusion capacitance, due to the injected minority carriers is modeled with the transit time TT:
dIDeff Cdiffusion = ----- * TT dVd
The depletion capacitance is more complex to model, since the function used to approximate it diverges when the diode voltage become greater than the junction built-in potential. To avoid function divergence, the capacitance function is approximated with a linear extrapolation for applied voltage greater than a fraction of the junction built-in potential.
Not yet written!
The temperature affects many of the parameters in the equations above, the following equations show how. One of the most significant parameter that varies with the temperature for a semiconductor is the band-gap energy:
2 TNOM EGnom = 1.16 - 7.02e-4 * --------------- TNOM + 1108.0 2 T EG(T) = 1.16 - 7.02e-4 * --------------- TNOM + 1108.0
The leakeage currents temperature dependence is:
logfactor --------- N IS(T) = IS * e logfactor --------- N JSW(T) = JSW * e
where "logfactor" is defined:
EG EG T logfactor = -------- - ----- + XTI * ln ( ---- ) Vt(TNOM) Vt(t) TNOM
The contact potentials (bottowall an sidewall) temperature dependence is:
T T EGnom EG(T) VJ(T) = VJ * ( ----- ) - Vt(T) * [ 3 * ln ( ----- ) + -------- - ----- ] TNOM TNOM Vt(TNOM) Vt(T) T T EGnom EG(T) PHP(T) = PHP * ( ----- ) - Vt(T) * [ 3 * ln ( ----- ) + -------- - ----- ] TNOM TNOM Vt(TNOM) Vt(T)
The depletion capacitances temperature dependence is:
PB(T) CJ(T) = CJ * [1 + MJ * (4.0e-4 * (T - TMON) - ----- + 1) ] PB PHP(T) CJSW(T) = CJSW * [1 + MJ * (4.0e-4 * (T - TMON) - ------ + 1) ] PHP
The transit time temperature dependence is:
TT(T) = TT * (1 + TTT1 * (T - TNOM) + TTT2) * (T -TNOM)^2)
The junction grading coefficient temperature dependence is:
MJ(T) = MJ * (1 + TM1 * (T - TNOM) + TM2) * (T -TNOM)^2)
The series resistance temperature dependence is:
RS(T) = RS * (1 + TRS * (T - TNOM) + TRS2) * (T -TNOM)^2)