Application Gallery

 Navigation: Other Applications > Electronic Components > 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: 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<Vg+Vth and the saturation region, where Vd>Vg+Vth. 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: Copyright Lumerical Inc. | Privacy | Site Map