Extraction of diode SPICE parameters related to forward Current-Voltage (I-V) 
Theory
Introduction:
The primary goal of parameter extraction is to find the values for a set of model parameters that allow the SPICE (Simulation Program with Integrated Circuit Emphasis) equations to accurately replicate the measured current-voltage (I-V) data of a real diode.
Fig. 1. Threshold Voltage and Inversion charge
The SPICE Diode Model for Forward Bias
For the forward-bias DC characteristic, the total applied voltage ($V_D$) across the diode's terminals is the sum of the voltage across the internal ideal p-n junction ($V_j$) and the voltage dropped across the parasitic series resistance ($V_{RS}$).
$$V_D = V_j + V_{RS} = V_j + I_D \cdot RS$$
The current ($I_D$) flowing through the diode is described by a modified version of the Shockley equation. The most critical SPICE parameters to extract for the forward I-V curve are:
- $IS$ (Saturation Current): The theoretical reverse-bias saturation current, primarily due to diffusion.
- $N$ (Ideality Factor): An empirical parameter (also called the emission coefficient) that accounts for the dominant current mechanism. $N \approx 1$ for ideal diffusion, and $N \approx 2$ for space-charge region recombination.
- $RS$ (Series Resistance): The parasitic ohmic resistance from the semiconductor bulk material, metal contacts, and package leads.
More advanced models also include parameters for low-current and high-current non-idealities:
- $ISR$ (Recombination Saturation Current): A separate saturation current for the non-ideal recombination component that dominates at low bias.
- $NR$ (Recombination Ideality Factor): The ideality factor for $ISR$, typically fixed at 2.
- $IKF$ (High-Injection Knee Current): The forward current at which high-level injection effects become significant, causing the ideality factor to increase.
I-V Curve Regions and Parameter Dominance
A typical diode forward I-V curve, when plotted on a semi-log scale ($log(I_D)$ vs. $V_D$), can be divided into three distinct regions, each dominated by different physical effects and parameters.
Low-Current Region (Recombination-Dominated):
- At very low forward voltages, the current is dominated by the recombination of electrons and holes within the space-charge region.
- This current is modeled using the $ISR$ and $NR$ parameters, and the curve has a slope corresponding to an ideality factor $N \approx 2$.
Mid-Current Region (Diffusion-Dominated):
- As the voltage increases, the ideal diffusion current (modeled by $IS$ and $N$) becomes dominant.
- On the $log(I_D)$ vs. $V_D$ plot, this region appears as a straight line.
- The behavior here is described by the ideal Shockley equation: $I_D \approx IS \cdot e^{\frac{V_j}{N \cdot V_T}}$.
- $V_T$ is the thermal voltage, $kT/q$, which is $\approx 25.9 \text{ mV}$ at 300K (room temperature).
High-Current Region (Series Resistance & High-Injection):
- At high forward voltages, two effects become dominant:
- Series Resistance ($RS$): The voltage drop across $RS$ ($I_D \cdot RS$) becomes a significant portion of the total applied voltage $V_D$. This "robs" the internal junction of voltage, causing the $log(I_D)$ curve to bend and "roll off" from its straight-line path.
- High-Level Injection ($IKF$): The concentration of injected minority carriers approaches the majority carrier doping concentration. This effect also causes the curve to bend (ideality factor trends towards 2).
- At high forward voltages, two effects become dominant:
Graphical Extraction Methods
The simplest extraction techniques rely on analyzing the $log(I_D)$ vs. $V_D$ plot in these distinct regions.
1. Extracting $N$ (Ideality Factor) and $IS$ (Saturation Current)
These parameters are extracted from the linear mid-current region of the $log(I_D)$ vs. $V_D$ plot.
Ideality Factor ($N$): The slope of this linear region is used to find $N$. From the diode equation, we can write: $$log(I_D) = log(IS) + \frac{V_j}{N \cdot V_T}$$ Assuming $V_j \approx V_D$ in this region (where $RS$ effects are small) and using $log_{10}$, the slope is: $$\text{Slope} = \frac{\Delta log_{10}(I_D)}{\Delta V_D} = \frac{1}{N \cdot V_T \cdot ln(10)}$$ By measuring the slope from the graph and knowing $V_T$, we can solve for $N$: $$N = \frac{1}{\text{Slope} \cdot V_T \cdot ln(10)}$$
Saturation Current ($IS$): Once $N$ is known, $IS$ can be found by extrapolating the linear mid-current region back to the $V_D = 0$ axis.
- The y-intercept of this extrapolated line is $log_{10}(IS)$.
- Therefore, $IS = 10^{\text{intercept}}$.
2. Extracting $RS$ (Series Resistance)
$RS$ is extracted from the high-current region where the curve deviates from the ideal straight line.
Method 1: High-Current Slope (Approximation) At very high currents, the device behaves more like a resistor. The dynamic resistance $r_d = dV_D / dI_D$ is measured from the linear I-V plot (not the log plot) at the highest current. This dynamic resistance approaches the series resistance: $$r_d = \frac{dV_D}{dI_D} \approx RS$$
Method 2: Voltage Difference Pick a point ($V_{D, high}, I_{D, high}$) in the high-current region. Find the corresponding voltage $V_{ideal}$ on the extrapolated ideal line (from the mid-current region) for the same current $I_{D, high}$. The difference between these voltages is the drop across $RS$. $$V_{RS} = V_{D, high} - V_{ideal} = I_{D, high} \cdot RS$$ Therefore, $RS = (V_{D, high} - V_{ideal}) / I_{D, high}$.
Method 3: Differential Plot (Advanced) A more robust method is to plot a function like $H(I_D) = V_D - N \cdot V_T \cdot ln(I_D / IS)$ vs. $I_D$, using the $N$ and $IS$ found earlier. This plot should ideally be a straight line with a slope equal to $RS$.
Numerical Optimization (Curve Fitting)
Graphical methods are simple but have limitations, as the parameters are not truly independent. The modern and most accurate approach is numerical optimization.
Define a Model: The full SPICE equation is used, combining all parameters: $$I_D = IS \cdot \left(e^{\frac{V_D - I_D \cdot RS}{N \cdot V_T}} - 1\right) + ISR \cdot \left(e^{\frac{V_D - I_D \cdot RS}{NR \cdot V_T}} - 1\right)$$ (This is a simplified representation; the full model also includes $IKF$).
Define an Error Function: An error function (e.g., sum of squared errors) is defined to quantify the difference between the measured current ($I_{meas}$) and the calculated model current ($I_{model}$) at each measured voltage point $V_D$. $$\text{Error} = \sum_{i} \left[ \log(I_{meas, i}) - \log(I_{model}(V_{D, i}, IS, N, RS, ...)) \right]^2$$ (Fitting the log of the current is common to give equal weight to all current decades).
Optimize: A numerical algorithm (like Levenberg-Marquardt) iteratively adjusts the parameters ($IS$, $N$, $RS$, etc.) to minimize the total error. This "best-fit" set of parameters is the one that makes the model equation most closely match the real-world data across the entire I-V curve.