Getting started 2

In this second example we will refer to the Tutorial 4 (Si n-Mosfet) that you can find
in the Tutorials directory.

Step 1: Modeling the device

Again, as a first step, we have to model the device.
We’ll see in some details how to design and mesh a mosfet device with GMSH.

 

  • In the GMSH script mosfet.geo , several variables are defined and given a value in this way:


lsub=0.03;
lacc=0.002;
lct=0.0005;
lg=0.0015;
lh=0.01;
lc=0.0005;


these variables are used in the script to assign proper values to the mesh characteristic
length of the defined Points


Lg_2 = 0.0375;
d = 0.01;
Ls = 0.1;
h = 0.25;
b = 0.0025;
o = 0.005;

xd = Lg_2 + d;
xd2 = Lg_2 + d / 2;
xmax = xd + Ls - d;

These other convenient variables are used to parametrize the most relevant geometrical
features, such as channel length, oxide thickness, and so on.

 

  • Geometrical Points and Lines are defined to design the device structure; the fourth parameter in Point assignement is the characteristic length associated to that point: this is an essential feature to control the mesh density and refine it where necessary (usually in the channel region)



N.B.: In a 2D simulation it is assumed that the geometrical model is restricted to the xy-plane (z=0). Any other geometrical orientation could give impredictable results.

 



Point(1) = {0, -h, 0, lsub};
Point(2) = {0, 0, 0, lc};
Point(3) = {xmax,-h,0.0,lsub};
Point(4) = {-xmax,-h,0.0,lsub};
Point(5) = {xmax,0,0.0,lh};
Point(6) = {-xmax,0,0.0,lh};
..........................
Line(1) = {4,1};
Line(2) = {3,13};
Line(6) = {4,14};
Line(7) = {10,9};
Line(8) = {12,2};
Line(9) = {8,7};
Line(10) = {11,8};
Line(11) = {9,12};
Line(13) = {7,6};
..........................


  • Definition of a surface: first a line loop is composed, listing all the lines constituting the boundary of the surface; (each line is given an orientation by the points order in its definition, so it can have a negative sign if this orientation is opposite to that of the loop). Then this line loop is assigned to a PlaneSurface object (this procedure can alternatively be performed through the graphical interface).
For example, by defining:

Line Loop(40) = {28,2,-34,33,8,29,-31,-30,-6,1};
Plane Surface(41) = {40};

we obtain the following surface:


  • Definition of the Physical surfaces: each of them is composed by one or more geometrical Plane Surfaces. For example, Physical surface 2 comprises the two separated contact regions, while Physical surface 3 corresponds to the oxide region.

The Physical surfaces are the 2D Physical regions of the mesh and will be assigned
to the related TIBERCAD regions through the keyword mesh regions (see
Step )

Physical Surface(1) = {41}; // n-Si
Physical Surface(2) = {44,47}; // n+-Si
Physical Surface(3) = {46}; // SiO2

 

  • Definition of the Phisical Lines: In this 2D simulation, 1D physical regions are used to carry information about boundary condition regions.

In other word, each Phisical Line corresponds to a boundary condition (a contact in the case of a driftdiffusion calculation): thus Physical Line 1 refers to source contact, P.L. 2 to gate contact, P.L. 3 to drain contact. The numerical identifications of these Phisical Lines will be asigned to TIBERCAD BC regions by means of the BC reg numb instruction.

Physical Line(1) = {13}; // source
Physical Line(2) = {39,38}; // gate
Physical Line(3) = {19}; // drain

 

Here is the final geometrical model of our Mosfet structure.

 

Step 2: Meshing the device

The .geo script file with the geometrical description can be run in GMSH, to display
the modelled device and to mesh it through the GMSH graphical interface (see fig. 3.2).
Alternatively, a non-interactive mode is also available in GMSH, without graphical user
interface. For example, to mesh this 2D tutorial in non-interactive mode, just type:
gmsh mosfet.geo -2 -o mosfet.msh.

Here is the result of the 2D meshing:

 

Step 3: TiberCAD Input file

 

Now we have to write down the TIBERCAD input file (see mosfet.tib in the Tutorials).

1 - Definition of Device Regions

Three TIBERCAD regions are defined: to each of them, one mesh region is associated,
namely the Phisical Surfaces 1, 2 and 3 defined in Step 1. However, in general more than
one mesh region can be associate to a single TIBERCAD region, if this is convenient.


Region substrate
{
mesh_regions = 1
material = Si
doping = 1e18 doping_type = acceptor
}
Region contact
{
mesh_regions = 2
material = Si
doping = 5e19 doping_type = donor
}
Region oxide
{
mesh_regions = 3
material = SiO2
}

2 - Definition of Simulation

Now we define the Simulation dd: it belongs to the class driftdiffusion


model driftdiffusion
{
options
{
simulation_name = dd
physical_regions
= all
}

This time, for this simulation we declare two driftdiffusion physical models, respectively
about mobility (field dependent) and recombination (srh); see the reference
manual for the details.


physical_model recombination
...................
physical_model electron_mobility

3 - Definition of Boundary Conditions

The source, drain and gate contacts of the Mosfet device are defined as Boundary
conditions regions
(BC Region source , BC Region drain, BC Region gate ) in the
following way:


BC_Region gate
{
BC_reg_numb = 2
type = schottk
barrier_height = 3.0
zero_grad_fermi_e = true
zero_grad_fermi_h = true
voltage = @Vg[0.0]
}
BC_Region source
{
BC_reg_numb = 1
type = ohmic
zero_grad_fermi_h = true
voltage = 0.0
}
BC_Region drain
{
BC_reg_numb = 3
type = ohmic
zero_grad_fermi_h = true

voltage = @Vd[0.5]
}


To each of the BC_regions, one BC_reg_numb is assigned, that is one of the Physical
Lines 1,2, 3 defined in Step 1, which represent the contact regions.
Note that, while source and drain are defined as type= ohmic, gate BC_region is
defined as type = schottky; barrier height = 3.0 specifes the metal/oxide interface barrier
and depends on the contact metal workfunction.
Drain voltage is defined as @Vd[0.5] and gate voltage as @Vg[0.0]. This specifies
that the value of the voltage will be determined at each moment of the simulation, by
the value of the two variables Vd and Vg, which will be assigned in the sweep definition.

 

4 - Definition of Simulation parameters

Two sweeps are requested for this simulation, that is an external loop on Vg (the gate
voltage) and an internal loop on Vd (the drain voltage) for each value of Vg; in this way,
the IV drain characteristics for a series of gate biases are obtained in output.


sweep_1
{
simulation = dd
variable = Vd
start = 0.0
stop = 2.0 #0.1
steps = 200 #200 #1
# plot_data = true
}
sweep_2
{
variable = Vg
start = -0.1
stop = 0.5
steps = 6
simulation = sweep_1
#simulation = driftdiffusion
}

5 - Definition of Execution parameters

In the Simulation section , we decide the simulation dimension (dimension = 2 ), then
which simulations to perform and in which order; we set solve = sweep 2, to execute the
external gate voltage sweep sweep_2 which in its turn call the sweep sweep_1 where drain
current is calculated for all the chosen drain voltage steps by running dd simulation.


$Simulation
{
meshfile = mosfet.msh
dimension = 2
temperature = 300
solve = sweep_2
resultpath = output_IV_char
output_format = vtk
plot = (Ec, Ev, QFermi_e, QFermi_h, eDensity, hDensity, eCurrent, hCurrent,
NetRecombination, EField, ElPotential, ContactCurrents)
}


Output files with conduction and valence band profiles, quasi-fermi levels, electron
and hole density, recombination, electric field and potential (plot = Ec,Ev,.....) will be
generated, together (ContactCurrents) with a file with all the calculated values of the
drain current at the contacts for each gate bias step (the IV characteristics).

 

Step 4: Run TiberCAD

Now we can run TiberCAD:
tibercad mosfet.tib


The generated Output files are:
driftdiffusion_materials.vtk: information about the material regions of the device.
driftdiffusion_nodal.vtk: output for the nodal quantities which have been calculated,
e.g. conduction and valence bands, (quasi)fermi levels, electron and hole density
and mobility.
driftdiffusion_elemental.vtk: output for the elemental quantities (e.g. electric field,
current density).
sweep_2_driftdiffusion_Vg_0.000_Vd.dat and similar for all the Vg steps: drain
current characteristics for each Vg bias.

 

TiberCAD supports 3 packages for 2D and 3D data visualization and post-processing:

Free:

1) GMV, http://www-xdiv.lanl.gov/XCM/gmv/GMVHome.html
output_format = gmv
2) Paraview, http://www.paraview.org/New/index.html
output_format = vtk

Commercial:

3) Tecplot-ise, http://www.amtec.com/
output_format = ise

 

Let's see now a very quick guide to Paraview: For any details please see http://www.paraview.org/New/index.html

To plot TiberCAD 2D results, first, open the .vtk file from your working directory.

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

 


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

 

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