N-CHANNEL MOSFET
TUTORIALS

In this tutorial we will show an example of 2D simulation of a Si n-MOSFET device.
We will calculate:


In order to execute correctly the example you should have the following files in the working directory:


For a detailed tutorial of the geometrical modelling with GMSH, see Getting started 2 »

Here is the geometry of the Mosfet device as it is meshed by GMSH.

Meshed Geometry


outputchar.tib and transchar.tib are the two tiberCAD input files.
The first is used to calculate the IV drain characteristics, the latter to calculate the Id/Vg transfer characteristics.

With the statement

@include mosfet.tib

both input files include the file mosfet.tib which gives the device and Module description common to both simulations.
In general, it is possible to include in a tiberCAD input file an external file by means of the expression /p>

@include file_name

Let's give now a look to the input file mosfet.tib. For further details you can refer to the program reference manual.

 

DEVICE STRUCTURE

Device
{
meshfile = mosfet.msh
material = Si

Region substrate 
{
Doping
{
density = 1e18
type = acceptor
}
}

Region contact
{
Doping
{
density = 5e19
type = donor
}
}

Region oxide
{
material = SiO2
}

}

In mosfet.tib, the device structure is defined: it is composed by three tiberCAD Regions: substrate and contact, both made of Silicon, and oxide (SiO2).

  • substrate region (which include channel) is doped p-type 1018 cm-3
  • contact region is composed by the two regions around source and drain, both heavily doped n-type 5x1019 cm-3
  • oxide is the gate dielectric


DRIFT-DIFFUSION SIMULATION

Then, still in the input file mosfet.tib, we define the tiberCAD Modules which will be used in this example.
We are going to calculate Poisson and Drift-diffusion (Module driftdiffusion) for all the device. The default is

physical_regions = all

A field dependent model for mobility is applied.

Module driftdiffusion
{
Physics
{
recombination srh {}
mobility
{
type = field_dependent
low_field_model = doping_dependent
}

Then, we have to specify the the three contacts of our Mosfet (plus a back contact on the substrate):

Contact gate
{
type = schottky
barrier_height = 3.0
voltage = $Vg
}
Contact source
{
type = ohmic
voltage = 0.0
}
Contact backcontact
{
type = ohmic
voltage = 0.0
}
Contact drain
{
type = ohmic
voltage = $Vd
}
} 

The contacts (boundary regions for this model) have to be associated each to the corresponding region defined in the mesher program (here GMSH) as a Boundary region.
In this case we have a 2D simulation, so it is a line.
In GMSH:

Physical Line

This is made simply with

Contact gate

and so on for the other contacts.
The gate contact is defined as a schottky contact, with a barrier value depending on the gate metal workfunction. The Schottky Barrier is defined with:

barrier_height

The gate voltage is expressed by the notation $Vg[0.0]. This means that the gate voltage will be given the value of the variable Vg, specified in one of the sweep block (see after). [0.0] means that the default voltage value is 0.0 V.
Source and drain contacts are defined as ohmic; while source is fixed to 0

voltage = 0.0

drain voltage is expressed, as for the gate, by the value of the sweep variable Vd

voltage = $Vd[0.5]

 

CALCULATION OF IV DRAIN CHARACTERISTIC

Module sweep
{
name = sweep_drain
solve = driftdiffusion
variable = $Vd
start = 0.0
stop = 2.0 
steps = 40 
plot_data = true
}
Module sweep
{
name = sweep_gate
solve = sweep_drain
variable = $Vg
start = 0.0
stop = 1.5
steps = 6
}

As a first step, we are going to calculate Id/Vd drain current characteristic.

This simulation is performed by executing the input file outputchar.tib.
Here, after including the external file mosfet.tib with the common specifications, we define the simulation to be performed.

We include the Module Sweep, whose syntax is the following:

Module sweep
{
name = sweep_name1
{
.....................
}
name = sweep_name2
{
.............................
}
}

Here we define two nested sweeps: the external sweep

sweep_gate

calculates the drain current for a series of gate voltages, from 0 to 1.5 V; for each calculation, a sweep on drain voltages is performed

solve = sweep_drain

defined by

sweep_drain

In sweep_drain driftdiffusion is calculated

solve = driftdiffusion

for a series of drain voltages from 0 to 2 V.

Finally, in Simulation section, we define the simulation to be performed, specified by

solve = sweep_gate

this means that we are going to perform a calculation of Poisson and drift-diffusion with a double sweep on gate and drain voltage, to calculate Id/Vd drain current characteristics.

Results of calculation will be in the format of paraview data visualization and post-processing program

output_format = vtk
Simulation
{
temperature = 300
solve = sweep_gate
resultpath = output_IV_char 
output_format = vtk
}


Now we can run TiberCAD....

tibercad outputchar.tib

 

OUTPUT

After the execution, the output directory contain the simulation results, as defined by the keywords output_format and plot.

TiberCAD supports the open source Paraview package for 2D and 3D data visualization and post-processing:

Let's see how to use Paraview to plot TiberCAD 2D results:

First, open the .vtk file from your directory:

Paraview


The name of the loaded files will be shown in the Pipeline browser.

To visualize the content of the file, you should click on the Apply button in the Properties tab in Object Inspector


Paraview



To select the output variable, go to Display and choose from the menu "Color by", e.g. electron _density. Also, in Display section Scale and legend bar can be setted.


Paraview      Paraview - Regions Mosfet


In driftdiffusion_Vd_2.0_Vg_1_msh.vtu and all the other files for each bias step, we have the output for the mesh quantities which have been calculated by the driftdiffusion Module, e.g. conduction and valence bands, (quasi)fermi levels, electron and hole density and mobility.

For example, this is the electron density for a drain voltage = 2V and a gate bias Vg = 1V.
You can see the large increase of electron density in the channel, which is pinched off close to drain contact due to the high drain voltage.

Paraview - Electron Density


In sweep_drain_driftdiffusion_Vg_1_Vd.dat and all the other files for each Vg bias step (sweep_drain_driftdiffusion_Vg_step_Vd.dat) we have the IV drain characteristics for each Vg bias.


IV Characteristics

Here are the IV characteristics obtained for a gate voltage Vg between -0.1 and 0,5 V.



CALCULATION OF TRANSFER CHARACTERISTIC

As a second step, we are going to calculate Id/Vg transfer characteristic.
To do this, we will run the input file transchar.tib .
Here, after including mosfet.tib file with the common specifications, we define the calculations to obtain the transfer characteristics.

To do so, two sweeps have to be defined in this way:

Module sweep
{
name = sweep_drain
solve = driftdiffusion
variable = $Vd
start = 0.0
stop = 1.0 
steps = 5 
}
Module sweep
{
name = sweep_gate
solve = driftdiffusion
variable = $Vg
start = -0.5
stop = 1.5 
steps = 100
# at maximum make steps of 0.1 V
max_step = 0.1
plot_data = true
}


The first sweep

sweep_drain

calculates the drain current

solve = driftdiffusion

for a series of drain voltages, from 0 to 1 V, while Vg is kept at its initial value Vg=0; at the end of this calculation we have polarized the mosfet at a drain voltage of 1 V. Then a sweep on gate voltages is performed, defined by

sweep_gate

In

sweep_gate

driftdiffusion is calculated

solve = driftdiffusion

for a series of gate voltages from -0.5 to 1.5 V, by keeping the drain voltage at Vd = 1 V.
At the end, the Id/Vg transfer characteristic for Vd=1 V is obtained.

This time, in Simulation section, we define the 2D simulation to be performed by writing

solve=(sweep_drain,sweep_gate)

this means that we are going to perform a calculation of Poisson and drift-diffusion
with two sweeps in series, first a sweep on drain and than a sweep on gate voltage, to calculate Id/Vg transfer characteristic.

Simulation
{
temperature = 300
solve = (sweep_drain, sweep_gate) 
resultpath = output_transchar
output_format = vtk
}

The rest of the input file remains unchanged.


Now we can run TiberCAD another time....

tibercad transchar.tib

  • Now, in the files sweep_gate_driftdiffusion_Vd_step_Vg.dat (e.g. sweep_gate_driftdiffusion_Vd_1_Vg.dat), we have the Id/Vg transfer characteristics for each Vd_step bias.


Here is the Id/Vg transfer characteristic for a drain voltage Vd = 1 V .

Id/Vg Transfer Characteristic


As before, in driftdiffusion_Vd_step_Vg_step_msh.vtu, we have the output for the quantities which have been calculated by the Module driftdiffusion.

The subthreshold S parameter, given by

subthreshold S parameter


in this case results to be ~80 mV/dec.


ATTACHMENTS