This example describes how to simulate the electrical behavior of an n-channel metal oxide semiconductor field effect transistor (MOSFET). In particular, we will calculate gate and drain I-V characteristics as well as leakage current with trap assisted and band to band tunneling.
A project file and script file are provided to assist with the application example. The project file contains the material properties, geometry, and simulation region required to run the example.
Simulation Setup
Open the nmos.ldev file in CHARGE. Notice that the MOSFET is specified as follows:
- A 2 um silicon layer is grown on a thick silicon dioxide (oxide) layer.
- The channel length is 1.5 um.
- SiO2 is used as the gate oxide.
- To define the space-charge regions in the silicon, first, the background doping concentration of the silicon is set to represent a p-type epitaxial layer with a concentration of 1x1015 cm-3. This is accomplished by defining a region of constant doping that encompasses the entire geometry. Next, diffusion doping regions are used to specify the dopant concentrations in the source and drain region and the region underneath the gate.
The doping concentration of the source and drain regions can be visualized as shown below. Click on the "mesh" button to mesh the simulation. Once the meshing is done, open and run the doping_profile.lsf script file provided in the associated files section.
Material Properties
For this example, silicon, aluminum, n-gate silicon and SiO2 (silicon dioxide) are defined. Expand the Material Group in the Objects Tree so you can view the materials used in the simulation. Three types of materials are defined:
- Conductor (for aluminum in the source, drain and body contacts and n-gate silicon for the gate)
- Insulator (for the field oxide, SiO2)
- Semiconductor (for the bulk silicon)
The conductors are defined with a work function. The insulator is defined with a DC dielectric permittivity value. The semiconductor is defined using the more complex semiconductor models available in the material database. In particular the "Recombination" tab of this material is of interest in this example.
For all parts of this example, the bulk recombination models, trap-assisted, radiative and Auger recombination are enabled. Further, trap assisted tunneling can be enabled using the field drop down menu under "Carrier Lifetime Correction Models" section.
When enabled, two models, Hurkx and Schenk are available. For the Hurkx model used here the tunneling mass coefficient mt is 0.25. Similarly, under "Band to Band Tunneling", two models, Hurkx and Schenk are available. For the Hurkx model used here, the coefficients are as follows:
- A = 4e14 cm-3s-1
- B = 1.9e7 V/cm
- Eta =2.5
For descriptions of the recombination processes as well as the tunneling models, please see Lumerical's knowledgebase on Semiconductors.
In this part of the example, we will perform small signal analysis on the MOSFET under investigation. We will calculate the input and output impedance of the MOSFET as a function of frequency and we will evaluate the bandwidth of the device by calculating the unity-current-gain cutoff frequency (fT). From the simulation results we will calculate parameter values for the small-signal equivalent circuit of the MOSFET.
Steady state simulation
In the first part of this example, we will be studying the gate and drain characteristics of the n-MOS device. Ensure that both trap assisted tunneling and band to band tunneling are disabled (set to None) for this step. We know from theory that the drain current in a MOSFET is related to the gate and drain voltages according to the equations below
$$ I_{d}=A\left[\left(V_{g}-V_{t h}\right) V_{d}-\frac{1}{2} V_{d}^{2}\right] \quad V_{d}\lt V_g + V_th$$
$$ I_{d}=\frac{A}{2}\left[\left(V_{g}-V_{t h}\right)^{2}\right] \quad V_{d} \gt V_{g}+V_{t h} $$
where A is a constant device parameter and Vth is the threshold voltage (not to be confused with the thermal voltage kT/q) of the device, which is dependant on the doping density and oxide thickness. The MOSFET operates in two main regions: the Triode region, or the region where Vd
Four contacts have been set up in the Boundary Conditions table. To investigate the gate characteristics, edit the electrical bias values for each of the electrical contacts according to the table below.
contact |
Voltage (volts) |
---|---|
source |
0 |
drain |
0.1 |
body |
0 |
gate |
DC sweep: from 0 to 2 volts in 11 points |
Once the biases are set, run the CHARGE solver. This will mesh the simulation region and run the file for 11 bias points of the gate contact. Once the simulation is done, use the script below into the script prompt:
# v drain= 0.1 V # vgate= 0 to 2 Volts in 0.2 V increments J_drain = pinch(getdata("CHARGE","drain.I")); V_gate = pinch(getdata("CHARGE","gate.V_gate")); plot(V_gate,J_drain," Vg [v]", "Id (A)"); legend("vd=0.1 volts");
The plot below will be generated:
The I-V response can also be directly visualized from the results stored in the CHARGE: in the results view, select and visualize the drain dataset. Remove all attributes except for I, which is the net current.
NOTE: the simulation is 2D but we have set the device length in the third dimension ( y dimension) to be 1um in the CHARGE edit window under the general tab (norm length). The conversion of current density to current takes this value into account. This means that the current in units of Amps reported here can also be interpreted as current in amps per micron. |
Next, we study the drain characteristics, so we sweep the drain bias while keeping the gate bias constant:
contact |
Voltage (volts) |
---|---|
source |
0 |
drain |
DC sweep: from 0 to 3 volts in 16 points |
body |
0 |
gate |
3 |
Once the biases are set, run the simulation file. This will mesh the simulation region and run the file for 16 bias points of the drain contact. Once the simulation is done, run the script below into the script prompt:
# v gate = 3 Volts # v drain= 0 to 3 V in 16 steps J_drain = pinch(getdata("CHARGE","drain.I")); V_drain = pinch(getdata("CHARGE","drain.V_drain")); plot(V_drain,J_drain," Vd [v]", "Id (A)"); legend("vg=3 volts");
The plot below will be generated. We are operating in the triode region here.
We can run the above simulation for Vg values of 1, 2, and 3 Volts to reproduce the plot below (use the holdon and holdoff commands to plot multiple curves on the same plot):
We can also visualize spatially-varying physical characteristics of the MOSFET. For example, visualize the electrostatic potential from the "electrostatics" dataset in the CHARGE object. The image plots of the electric field E and electrostatic potential V are shown. For Vd= 3 volts and Vg= 3 volts, the potential looks like the plot below. You can adjust the color bar limits in the plot settings for results that are more easily interpreted.
Next, from the material database, turn on band to band tunneling by choosing the Hurkx model from the drop down menu. (The field under trap assisted tunneling is still disabled). Now set the contact voltages according to the table below and plot the drain current
contact |
Voltage (volts) |
---|---|
source |
0 |
drain |
10 |
body |
0 |
gate |
DC sweep: from 0 to -4 volts in 16 points |
Once the biases are set, run the simulation file. This will mesh the simulation region and run the file for 16 bias points of the drain contact. Once the simulation is done, run the script below into the script prompt:
# v gate = 0 to -4 volts # v drain= 10 volts J_drain = pinch(getdata("CHARGE","drain.I")); V_gate = pinch(getdata("CHARGE","gate.V_gate")); plot(V_gate,log10(J_drain)," Vg [v]", "Id (A)"); legend("vd=10 volts");
The log plot of the diode current is generated:
You can also right click on the CHARGE object to visualize the recombination dataset. The plot below is a surface plot of thr Rbbt. Here, since values away from the peak are zero, in order to plot everything on a log plot, we have added a floor value of one to the entire matrix:
Small-signal analysis
Equivalent circuit model
A simplified version of the small-signal equivalent circuit of the MOSFET is shown below. Here Cgs and Cgd are the gate-source and gate-drain capacitance. gm is the transconductance and gd is the output conductance of the MOSFET. The values of these parameters are bias dependent and can be calculated by performing small-signal analysis at different DC operating (bias) points.
Input Impedance
Download the nmos_ac.ldev project file and the nmos_Zin.lsf script file in the same folder. Run the nmos_Zin.lsf script file. The script file will set up the dc bias to apply 5 V at the drain and sweep the gate voltage from 0 to 2 V in 11 steps. At bias point VD = 5 V and VG = 2 V a small signal ac voltage of 0.001 V is applied at the gate. The frequency of the small-signal voltage is swept from 1 MHz to 20 GHz. The script will automatically run the simulation and calculate the input impedance Zin = Vg/Ig. The figure below shows the magnitude and angle of Zin plotted by the script. It also saves the impedance values in a .mat file.
The input impedance of the MOSFET primarily comes from the gate capacitance (Cgs and Cgd) as evident from the equivalent circuit. This is also reflected in the input impedance plots. The angle of Zin shows that (at low frequencies) the input impedance is purely capacitive. The channel introduces a small resistance in series with Cgs that becomes comparable to the reactance at extremely large frequency only.
Output Impedance
Download the nmos_Zout.lsf script file in the same folder as the other files. In this case, the script applies a small signal ac voltage at the drain contact for a DC bias of VD = 5 V and VG = 2 V. Running the script will run the nmos_ac.ldev file and calculate output impedance Zout = Vd/Id. The figure below shows the output impedance of the MOSFET as a function of frequency plotted by the script. The script will also save the output impedance values on a .mat file.
The output impedance of the MOSFET is primarily due to the drain-source conductance (gd) as can be seen from the equivalent circuit. This is also seen in the plots of the output impedance above. At low frequencies the output impedance is purely resistive. As large frequencies however the reactance from Cgd becomes smaller and the input impedance becomes capacitive.
Unity-current-gain cutoff frequency
The unity current gain cutoff frequency or fT is a widely accepted figure of merit in determining the bandwidth of a MOSFET. As the name suggests, it denotes the frequency at which the current gain becomes 1. Download the nmos_fT.lsf script file and run it. The script will set the drain voltage to 5 V and sweep the gate voltage from 0 to 2.5 V. At each bias point, it applies a small signal voltage at the gate and calculates the current gain Ai = Id/Ig. Finally the script calculates the fT by identifying the frequencies where the current gain becomes unit and plots it as a function of gate bias.
Calculation of parameters for small-signal equivalent circuit
By inspecting the small-signal equivalent circuit of the MOSFET, the input impedance can be defined as,
$$Z_{i n} \approx \frac{1}{j w C_{g g}} \approx \frac{1}{j w\left(C_{g s}+C_{g d}\right)}$$
where Cgg is the sum of the gate capacitances Cgs and Cgd. Similarly, the output impedance of the MOSFET can be defined as,
$$Z_{o u t} \approx \frac{1}{Y_{o u t}} \approx \frac{1}{g_{d}+j w C_{g d}}$$
Finally, the unity-current-gain cutoff frequency of the MOSFET can be defined as,
$$ f_{T}=\frac{g_{m}}{2 \pi C_{g g}} $$
Thus, by inspecting the values if Zin, Zout, and fT, the small-signal circuit parameters can be calculated. Download the script file nmos_small_signal_parameters.lsf and run it. The script file loads the data saved by the previous scripts and calculates the circuit parameters for the MOSFET.