User Guide
User Guide
License Grant Duplication of this documentation is permitted only for internal use within the
organization of the licensee.
This documentation was typed in DocBook XML format, and typeset with the
ConTEXt program. We sincerely thank the contributors of the two projects, for
their excellent work as well as their generoisty.
Contents
1 Physics in Genius Device Simulator 1
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.1.1 Format of Input Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.1.2 Statement Description Format . . . . . . . . . . . . . . . . . . . . . . 37
2.4.3 PARTICLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.4.3.1 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.4.3.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.4.3.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.4.4 LIGHT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.4.4.1 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.4.4.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.4.4.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.4.5 ENVELOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.4.5.1 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.4.5.2 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.4.6 Apply Source to Device . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.4.7 CIRCUIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.4.7.1 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
A References CXLV
B Index CXLVII
Some improvements have been applied to DD model for extend its capability.
These "patches" of course make things complex, but they can deal with real prob-
lems.
This chapter describes the DD model and its variations used by GENIUS code for
describing semiconductor device behavior as well as physical based parameters
such as mobility, recombination rate and son on.
The primary function of DDML1 is to solve the following set of partial dierential
equations, namely Poisson's equation, along with the hole and electron continuity
equations:
Poisson's Equation
= ( + + ) (1.1)
where, is the electrostatic potential of the vacuum level. This choice makes
the description of metal-oxide-semiconductor contact and heterojunction easier.
and are the electron and hole concentration, + and are the ionized
impurity concentrations. is the magnitude of the charge of an electron.
The relationship of conduct band , valence band and vacuum level is:
= (1.2.a)
= + . (1.2.b)
= intrinsic ln (1.3)
2 2 ( )
Continuity The continuity equations for electrons and holes are dened as follows:
Equations
1
= ( ) (1.4.a)
1
= ( ) (1.4.b)
where and are the electron and hole current densities, and are the
recombination and generation rates for both electrons and holes.
Drift-Diusion The current densities and are expressed in terms of the level 1 drift-diusion
Current Equations model here.
= + (1.5.a)
= (1.5.b)
where and are the electron and hole mobilities. = and =
are the electron and hole diusivities, according to Einstein relationship.
Eective and are the eective driving electrical eld to electrons and holes, which
Electrical Field related to local band diagram. The band structure of heterojunction has been taken
into account here [1].
1
= (ln( ) ln( 3/2 )) (1.6.a)
1
= + (ln( ) ln( 3/2 )) (1.6.b)
The lattice temperature keeps uniform throughout DDML1, the above temperature
gradient item takes no eect in fact.
= + ( ) (1.7.a)
( )
= ( ) (1.7.b)
( )
= ( + + ) (1.7.c)
DDML1 is suitable for PN diode, BJT transistor and long gate MOSFET simulation.
It is robust, and runs pretty fast for real work. The detailed discretization scheme
can be found at [[TODO]].
,di = ( + ) (1.10)
= + + ( + 3 ) ( ) (1.11)
From above discussion, the governing equations for DDML2 are as follows:
= + + ( ) (1.12.a)
( )
= ( ) (1.12.b)
( )
= ( + + ) (1.12.c)
= + + ( + 3 ) ( ) (1.12.d)
This model can be used as power transistor simulation as well as breakdown sim-
ulation. Unfortunately, nearly all the physical parameters are related with temper-
ature. They should be considered during self consistent simulation, which greatly
slows down the speed. The DDML2 solver runs 50 70 % slower than DDML1.
However, it seems no convergence degradation happens in most of the case. The
discretization scheme can be found at [[TODO]].
Current Equation The current density and are then expressed as:
for EBM
= + ( + ) (1.13.a)
= ( + ) (1.13.b)
where, $T_n$ and $T_p$ are electron and hole temperature, respectively. The dif-
ference between above equations and carrier density equations in DDML2 is lattice
temperature replaced by carrier temperature.
Energy Balance In addition, the energy balance model includes the following electron and hole
Equations energy balance equations:
( )
+ = + (1.14.a)
( )
+ = + (1.14.b)
where, and are electron and hole energy. For HD model, the carrier energy
includes thermal and kinetic terms = 32 + 12 * 2 , but only thermal energy
for EB model = 32 . Here stands for or . 0 = 32 is the carrier
equilibrium energy, for carrier temperature equals to lattice temperature.
= ( + ) (1.15.a)
= + ( + ) (1.15.b)
2
2
= ( + ) (1.16)
5
where stands for and , respectively. The constant parameter equals 0.7 in
the GENIUS software.
The and are the rate of net loss of carrier kinetic energy:
3 3
= (Aug ) + + dir )
( 2 ) 2 ( SHR
( 0 )
(1.17.a)
3 3
= (Aug ) + + dir )
( 2 ) 2 ( SHR
( 0 )
(1.17.b)
Lattice Heat At last, the lattice heat ow equation should be rewritten as:
Equation for EBM
= + (1.18)
where
3 3 ( 0 ) ( 0 )
= SHR + + + + (1.19)
( 2 2 )
The carrier energy is mainly contributed by joule heating term , and heating
(cooling) due to carrier generation (recombination) term. The carriers exchange
energy with lattice by collision, which described by energy relaxation term .
This model is suitable for sub-micron MOS (channel length 1 0.1 m) and
advanced BJT simulation. However, the computation burden of EB method is
much higher than DD. And the convergence of EB solver is dicult to achieve,
which requires more strict initial value and more powerful inner linear solver. The
discretization scheme can be found at [[TODO]].
From above discussion, all the governing equations of DD/EB method is elliptical
or parabolic. From mathematic point of view, does not like hyperbolic system 1, the
solution of elliptical or parabolic system is always smooth. The required numerical
technique is simple and mature for these systems. As a result, the DD and EB
method is preferred against full hydrodynamic method.
1
One have to face discontinuous problem, i.e. shock wave.
Eective Density Eective density of states in the conduction and valence band are dened as fol-
of States lows:
3/2
*
2 (1.20.a)
( 22 )
3/2
*
2 (1.20.b)
( 22 )
1.5
( ) = (300 K) ( ) (1.21.a)
300 K
1.5
( ) = (300 K) ( (1.21.b)
300 K )
2
( ) = (0)
+
3002 2
= (300) + (1.22.a)
[ 300 + + ]
Bandgap When bandgap narrowing eects due to heavy doping takes place [6], the band
Narrowing due edge shifts:
to Heavy Doping
bgn total 2
= ln + ln total + bgn . (1.23)
2 ref ( ref )
Since the carrier current Equation (1.6), p. 2 involves the energy level of conduc-
tion band and valence band , the bandgap shift should be attributed to them.
The bandgap narrowing is attributed half to the conduction band and another half
to the valence band as default:
1
= (1.25.a)
2
1
= + (1.25.b)
2
The parameters used in the default band structure model is listed in Table 1.1,
p. 8.
[[TODO]]
[[TODO]]
Bandgap [[TODO]]
The Schenk's bandgap narrowing model is available for silicon, and can be loaded
with the option Schenk in the PMI command.
Carrier Recombination
Three recombination mechanisms are considered in GENIUS at present, including
Shockley-Read-Hall, Auger, and direct (or radiative) recombination. The total
recombination is considered as the sum of all:
where SRH , dir and Auger are SRH recombination, direct recombination and
Auger recombination, respectively.
SRH Recombination Shockley-Read-Hall (SRH) recombination rate is determined by the following for-
mula:
2
SRH =
+ exp + + exp
[ ( )] [ ( )]
(1.27)
where and are carrier life time, which dependent on impurity concentration
[7].
= (1.28.a)
1 + total /
= (1.28.b)
1 + total /
Auger Recombination The Auger recombination is a three-carrier recombination process, involving ei-
ther two electrons and one hole or two holes and one electron. This mechanism
becomes important when carrier concentration is large.
Auger = (2 2 ) + (2 2 ) (1.29)
where AUGN and AUGP are Auger coecient for electrons and holes. The value of
Auger recombination Auger can be negative some times, which refers to Auger
generation.
Direct Recombination The direct recombination model expresses the recombination rate as a function of
the carrier concentrations and , and the eective intrinsic density :
dir = ( 2 ) (1.30)
The default value of the recombination parameters are listed in Table 1.2, p. 11:
2
Surf = . (1.31)
1 1
+ ) + + )
( (
The surface recombination velocities, STAUN and STAUP, have the unit of cm/s,
and the default value of 0.
Mobility Models
Carrier mobility is one of the most important parameters in the carrier transport
model. The DD model itself, developed at early 1980s, is still being used today
due to advanced mobility model enlarged its ability to sub-micron device.
Mobility modeling is normally divided into: low eld behavior, high eld behav-
ior and mobility in the (MOS) inversion layer.
The low electric eld behavior has carriers almost in equilibrium with the lattice.
The low-eld mobility is commonly denoted by the symbol 0 , 0 . The value
of this mobility is dependent upon phonon and impurity scattering. Both of which
act to decrease the low eld mobility. Since scattering mechanism is depended on
lattice temperature, the low-eld mobility is also a function of lattice temperature.
The high electric eld behavior shows that the carrier mobility declines with elec-
tric eld because the carriers that gain energy can take part in a wider range of
scattering processes. The mean drift velocity no longer increases linearly with
increasing electric eld, but rises more slowly. Eventually, the velocity doesn't
increase any more with increasing eld but saturates at a constant velocity. This
constant velocity is commonly denoted by the symbol . Impurity scattering is
relatively insignicant for energetic carriers, and so is primarily a function of
the lattice temperature.
It can be seen that some physical mechanisms such as velocity overshoot and quan-
tum eect which can't be described by DD method at all, can be taken into account
by comprehensive mobility model. The comprehensive mobility model extends
the application range of DD method. However, when the EB method (which ac-
counts for velocity overshoot) and QDD method (including quantum eect) are
used, more calibrations are needed to existing mobility models.
In brief, the low eld carrier mobility is rst computed, then a velocity satura-
tion formula is applied to yield the corrected mobility value. Three choices are
available for the low-eld mobility calculation, each described in one of the fol-
lowing sub-sections. The choices of velocity saturation is described in the last
sub-section.
In the GENIUS code, the Analytic Mobility model [8] is the default low eld mo-
bility model for all the material. It is an concentration and temperature dependent
empirical mobility model expressed as:
max (
) min
0 = min + 300 (1.32)
total
1+(
300 ) ( ref )
In GENIUS, the analytic model is the simplest mobility model, and is available
for a wide range of materials. For some materials, such as silicon, some more
advanced mobility models are available.
min2 1
dop = min1 exp + const (1.33)
( tot ) 1 + ( / )
1 + ( /tot )
tot
where tot is the total doping concentration. The term const is the temperature-de-
pendent, phonon-limited mobility
const = max ( (1.34)
300 )
The parameters of the Masetti model is listed in Table 1.4, p. 14. The Masetti
model is the default mobility model for the 4H-SiC material.
Another low eld mobility model implemented into GENIUS is the Philips Uni-
ed Mobility model [10],[11]. This model takes into account the distinct acceptor
and donor scattering, carrier-carrier scattering and carrier screening, which is rec-
ommended for bipolar devices simulation.
0, 1 = Lattice, 1 + ++ 1 (1.35)
where 0, is the total low eld electron mobilities, Lattice, is the electron mo-
bilities due to lattice scattering, ++ is the electron and hole mobilities due to
donor (D), acceptor (A), screening (P) and carrier-carrier scattering.
2.285
Lattice, = max ( (1.36)
300 )
sc, ref +
++ = 1, + 2, (1.37)
( sc,e, ) ( sc, ) ( sc,e, )
2
max 31.5
1, = ( 300 ) (1.38.a)
max min
max min 300 1.5
2, = (1.38.b)
max min ( )
where sc, and sc,e, is the impurity-carrier scattering concentration and eect
impurity-carrier scattering concentration given by:
sc, = * + * + (1.39.a)
sc,e, = * + * ( ) + (1.39.b)
( )
*
where and * take ultra-high doping eects into account and are dened by:
1
* = 1 + (1.40.a)
,ref 2
+
( )
1
* = 1 + (1.40.b)
,ref 2
+
( )
The screening factor functions ( ) and ( ) take the repulsive potential for
acceptors and the nite mass of scattering holes into account.
0.89233 0.005978
( ) = 1 +
0.28227 0.19778 0.72169 1.80618
0.41372 + ( 0 300 )
[ ] [ ( 0 300 ) ]
(1.41)
0.7643 0.6478 + 2.2999 + 6.5502
( ) = (1.42)
0.6478 + 2.3670 0.8552
The parameter that takes screening eects into account is given by:
1
2
= +
( 300 ) (1.43)
sc,ref sc, 2/3 c,ref
+ ( 0 )
Similar expressions hold for holes. The default parameters for Philips model are
listed in Table 1.5, p. 16:
Velocity Saturation
where is the electric eld parallel to current ow. sat is the saturation velocities
for electrons or holes. They are computed by default from the expression:
sat0
sat ( ) = (1.45)
1 + exp ( 600 )
The parameters and the default values for silicon is listed in Table 1.6, p. 17.
GaAs-like materials For GaAs-like materials, another expression due to [13] is used to describe the
negative dierential resistance:
4
0 +
( 0 )
= 4
(1.46)
1+
( 0 )
GaAs-specic When using this model for GaAs MESFET device simulation, the negative dif-
model ferential property may cause the drain output characteristics (current vs. voltage)
exhibit an unrealistic oscillation behavior. Another model to describe high eld
eects developed by Yeager [14] can be used.
sat 0
= tanh (1.48)
( sat )
4H-SiC-specic For 4H-SiC, the saturation velocity is calculated with the following formula
model
( ) = vsat vsat ( (1.49)
300 )
The Lombardi mobility model [15] is an empirical model that is able to describe
the carrier mobility in the MOSFET inversion layer. The Lombardi model consists
of three components
To obtain the nal value of carrier mobility, the three components are combined
using the Matthiessen's rule:
s 1 = 1 + ac 1 + sr 1 . (1.50)
Bulk Component The bulk mobility component in Lombardi's model is similar to that of Masetti's
model, which reads
max 0 1
= 0 exp + (1.51)
( tot ) 1 + ( / )
1 + ( /tot )
tot
max = 2 ( (1.52)
300 )
The Lombardi model is uses the Caughey-Thomas model for velocity saturation
calculation, see Velocity Saturation, p. 16 for details.
The parameters used in the Lombardi model is summarized in Table 1.9, p. 20.
The Lucent Mobility model [16] is an all-inclusive model which suitable for MOS
simulation. This model incorporates Philips Unied Mobility model and the Lom-
bardi Surface Mobility model, as well as accounting for high eld eects. For low
longitudinal eld, the carrier mobility is given by Matthiessen's rule:
1
1 1 1
0 = + + (1.55)
[ b ac sr ]
where is the bulk mobility comes from the Philips model, and ac and sr come
from the Lombardi model. The details of these models are described in Philips
Mobility Model, p. 14 and Lombardi Surface Mobility Model, p. 19, and
will not be repeated here.
( + )
=+ . (1.56)
tot
The Lucent model uses the Caughey-Thomas model for velocity saturation calcu-
lation, see Velocity Saturation, p. 16 for details.
The Lucent model can be loaded by Lucent keyword in the PMI statements. This
is an accurate model recommended for MOS devices. However, its computation
cost is higher than other mobility models. At the same time, it is also less numer-
ically stable.
It is reported that Hewlett-Packard mobility model [17] achieves the same ac-
curacy as Lucent model with relatively small computational burden in the MOS
simulation.
This model also takes into account dependence on electric elds both parallel ( )
and perpendicular ( ) to the direction of current ow. The mobility is calculated
from
= (1.57)
2
1 + ( ) +
+
The low eld mobility 0 is calculated from the Analytic model, as described
in Analytic Mobility Model, p. 13.
The parameters of the Hewlett-Packard mobility model and its default values for
silicon is listed in Table 1.12, p. 23.
When the physical model is more accurate, the carrier mobility model can be
less complicated. Thus, the mobility models suitable for DD model may NOT be
suitable for energy balance model. There are some mobility models developed
special for energy balance model [3]. However, they are yet to be implemented in
GENIUS.
Generation Model
Impact Ionization
The generation rate of electron-hole pairs due to the carrier impact ionization (II)
is generally modeled as [5]:
| | | |
| | | |
= + (1.58)
where and are electron and hole ionization coecients, related with electri-
cal eld, material and temperature.
Selberherr Model
= (1.60.a)
| |
| |
= (1.60.b)
| |
| |
= || || (1.61.a)
| |
= | | (1.61.b)
| |
Crit
where , = , for which , are the optical-phonon mean free paths for
,
electrons and holes given by:
op
( ) = ,0 tanh (1.62.a)
( 2 )
op
( ) = ,0 tanh (1.62.b)
( 2 )
= ,0 + ,1 + ,2 2 (1.63.a)
= ,0 + ,1 + ,2 2 (1.63.b)
The Selberherr model is the default avalanche model for many materials in Ge-
nius. One can also explicitly load it with the option Selberherr in the PMI
statements.The parameters used for Selberherr model are listed in Table 1.13,
p. 27.
The model also uses the ionization coecient derived by Chynoweth [18]
= exp , (1.64)
( )
where
op
tanh
( 20 )
= . (1.65)
op
tanh
( 2 )
The van Overstraeten - de Man model uses two sets of values for parameter and
at high and low electric eld. The threshold for the switch is 0 .
The van Overstraeten - de Man model is can be selected with the vanOverstraetendeMan
option in the PMI command. It is the default model for 4H-SiC, InN, InAs and
InSb materials.
Valdinoci Model
GENIUS has another Valdinoci model for silicon device which has been reported
to produce correct temperature dependence of breakdown voltage of junction diodes
as high as 400 C [19]. It can be loaded with the Valdinoci option in the PMI
statements.
= (1.66)
( )
( ) + ( ) exp
( + ( ) )
where
( ) = + (1.67.a)
( ) = exp ( ) (1.67.b)
( ) = + + 2 (1.67.c)
( ) = + + 2 (1.67.d)
Similar expressions hold for holes. The parameters for Valdinoci model are listed
in Table 1.15, p. 29.
Band-to-band Tunneling
Kane's model The carrier generation by band-band tunneling is also considered by Genius,
which can be expressed as [20][21]:
2 3/2
= A.BTBT exp B.BTBT (1.68)
( )
Assuming the proton hit the diode at = 0 s, and the electron-hole generation rate
follows a Gaussian time dependence, with a maximum at max , and a characteristic
time , the carrier generation rate can be calculated by
( max )2
= 0 exp . (1.69)
[ 2 2 ]
On the other hand, the Monte Carlo simulators such as Geant4 provides the total
energy deposition data, which relate to by
( max )2
= 0 exp d. (1.70)
[ 2 2 ]
0
where is the average energy loss for each generated electron-hole pair. We there-
fore have the normalization factor
2
0 = . (1.71)
Fermi-Dirac Statistics
In general, the electron and hole concentrations in semiconductors are dened by
Fermi-Dirac distributions and density of states:
= 1/2 ( ) (1.72.a)
= 1/2 ( ) (1.72.b)
= = 1/2 1 (1.73.a)
( )
= = 1/2 1 (1.73.b)
( )
where and are the electron and hole Fermi energies. The relationship of
Fermi energy and Fermi potential is = , = .
Evaluate Inverse 1/2 1 is the inverse Fermi integral of order one-half. Joyce and Dixon gives its
Fermi Integral approximation analytic expression in the year of 1977 [22], which can be given
by:
= 0.35355339059327379 (1.74.a)
= 0.0049500897298752622 (1.74.b)
= 1.4838577128872821 104 (1.74.c)
= 4.4256301190009895 106 (1.74.d)
In the GENIUS code, the and are derived from carrier concentration by
Joyce-Dixon expression.
1/2 ( )
= (1.75.a)
exp ( )
1/2 ( )
= (1.75.b)
exp ( )
The carrier concentration for Fermi statistics and Boltzmann statistics can be de-
scribed uniformly by:
= exp ( ) (1.76.a)
= exp ( ) (1.76.b)
where = = 1 for Boltzmann statistics, and less than 1.0 for Fermi statistics.
DD Equation with Consider the drift-diusion current Equation (1.5), p. 2 when the carrier satises
Fermi Statistics Fermi statistics and forces zero net current in equilibrium state, one can get the
modied current equation, for which the Einstein relationship:
= (1.77.a)
= (1.77.b)
= / (1.78.a)
1/2 ( ) 1/2 ( )
= 1/2 ( ) /1/2 ( ) (1.78.b)
where 1/2 is the Fermi integral of order minus one-half. The corresponding
current equation for electrons is
= ( + ) (1.79)
where
1/2 ( )
= (1.80)
1/2 ( )
d
() = 1 () (1.81)
d
From the above property, one can derive two useful derivatives:
() = (1.82.a)
() = 1 ) (1.82.b)
(
With the two derivatives, Equation (1.79), p. 33 can be rewritten into the follow-
ing equivalent formula:
= ( + (ln )) (1.83)
The last term is the modication to Einstein relationship, which can be combinated
into potential term. As a result, the current Equation (1.5), p. 2 keeps unchanged,
but the eective driving force should be modied as:
1
= (ln( ) ln( 3/2 )) (ln ) (1.84)
1
= + (ln( ) ln( 3/2 )) + (ln ) (1.85)
Introduction
KEYWORD [parameters]
The words on a line should be separated by blanks or tabs. If more than one line
of input is necessary for a particular statement, it may be continued on subsequent
lines by placing a backslash sign \ as the last non-blank character on the current
line.
GENIUS code parses the input le by GNU ex and bison. It rst read the pattern
le located at $GENIUS_DIR/lib/genius.key which provides the keyword
names and parameter attributes before the parse work. After that, the grammar of
user provide le is matched by this pattern. With this exible mechanism, adding
new statement to GENIUS is fairly easy.
parameter_name = [number|integer|bool|string|enumeration]
In the card descriptions, keywords, parameters, enumerate strings are not case
sensitive. And their names does not need to be typed in full; only enough char-
acters to ensure unique identication is necessary. However user input strings is
case sensitive, because le name may be specied by the string. Comments must
begin with '#' and can be either an separated line or locate at the end of current
statement.
The sequence Most of the cards GENIUS used are sequence insensitive. The order of occurrence
of input deck of cards is signicant in only two cases. The mesh generation cards must have the
right order, or it can't work properly. And GENIUS will execute the 'driven' cards
sequentially. So the placement order of 'driven' cards will aect simulation result.
Value Types Besides some string parameters which have xed values, most of the parameters
need a user dened value. A lower case letter in angle brackets represents a value
of a given type. The following types of values are represented:
Global Specication
GLOBAL
The GLOBAL command denes some global simulation parameters such as unit
scale and ambient temperature.
GLOBAL
[ TExternal=num ] [ DopingScale=num ] [ Orientation=int ]
{ [ Z.Width=num ] | [ CylindricalMesh=bool ] }
[ ResistiveMetal=bool ]
Parameters
TExternal numerical Ambient temperature external to the simulated device. Synonym: 300 K
LatticeTemp
DopingScale numerical Doping concentration normalization factor. Physical quantities are 1e18 cm3
normalized based on this factor to reduce numerical errors. Usually,
a good choice of this value is the highest doping concentration in the
device, although in some cases lower values are more desirable.
Z.Width numerical For a 2D mesh, the width of the device in the z-direction. Internally 1.0 m
calculated current densities are multiplied by this width to produce
the terminal currents. This parameter only aect 2D mesh.
CylindricalMesh bool For a 2D mesh, Genius will consider it as cylindrically symmetric. false none
This parameter only aect 2D mesh. The electrical current output is
integrated along the angular direction thus in the unit of Amperes.
Orientation integer The crystalline orientation of the silicon substrate. Only 100, 110, 100 none
and 111 are recognized.
ResistiveMetal bool Flag to enable resistive metal in device structure, which is introduced false none
from version 1.7.0
Description
When several GLOBAL commands are present in the input le, and a parameter is
Example
Mesh Generation
GENIUS code has exible mesh data structure which support various shapes of
2D and 3D elements. The only limit is the element should have circum-circle
for 2D or circum-sphere for 3D to meet nite volume method used by GENIUS.
The supported element shapes can be triangle and quadrangle for 2D, tetrahedron,
prism and hexahedron for 3D. Please note that the triangle and tetrahedron can
be any shape; however, quadrangle, prism and hexahedron should meet the in
circuit or in sphere requirement. The GENIUS solver is designed as element shape
independent, which means using mixed shapes of elements in mesh is possible.
GENIUS oers several build-in mesh generators to build both 2D and 3D mesh for
semiconductor device. At present, they can only generate simulation mesh with
unique mesh element. However, it is possible to import device model girded with
hyper-mesh from third party mesh generator.
Coordinate System All the mesh generators use Cartesian coordinate system, in which the top horizon-
tal line has the minimal y coordinate, left vertical line has the minimal x coordinate
and the front vertical line has the minimal z coordinate. In general, y coordinate
is the direction vertical to silicon wafer.
Mesh Statements The device mesh is specied by a series of mesh statements. They are listed as
required input order:
MESH
X.MESH
Y.MESH
Z.MESH
ELIMATE (optional)
SPREAD or SPREAD3D (optional)
REGEION
FACE (optional)
Please note that the order in which statements appear is important. Changing the
order changes the results. Generally, a mesh is specied by the following steps:
MESH
This statement indicates the beginning of the mesh generation behavior.
MESH
Type=(S_Tet4|S_Prism6|S_Hex8|S_Tri3|S_Quad4)
[ Triangle=str ] [ Tetgen=str ]
Parameters
Description
All simulations in Genius are performed in a discrete mesh. The available types of
meshes are enumerated above, and illustrated in Figure 2.1, p. 40 and Figure 2.2,
p. 40.
There are two alternative ways to generate the mesh structures. The user can use
the X.MESH, Y.MESH and Z.MESH commands to specify the position of mesh
lines, and have Genius to call the appropriate mesh generator programs behind
the scene.
Alternatively, the user can dene the device geometry with external tools, pro-
duce the mesh with an external mesh generator, and commands Genius to import
from les containing the mesh structure. Currently Genius can import mesh les
generated by Tetgen for tetrahedral S_Tet4 meshes.
Example
MESH Type=S_Tri3
MESH Type=S_Tet4 Tetgen="pzAq1.5"
MESH Type=S_Tet4 File.Prefix="foo"
X.MESH
{ Width=num | ( X.Min=num X.Max=num ) }
{ N.Spaces=int [Ratio=num] | H1=num [H2=num] }
[Min.Space=num]
Y.MESH
{ Depth=num | ( Y.Min=num Y.Max=num ) }
{ N.Spaces=int [Ratio=num] | H1=num [H2=num] }
[Min.Space=num]
Z.MESH
{ Width=num | ( Z.Min=num Z.Max=num ) }
{ N.Spaces=int [Ratio=num] | H1=num [H2=num] }
[Min.Space=num]
Parameters
Description
Example
ELIMINATE
The ELIMINATE statement eliminates mesh points along planes in a hexahedral
grid over a specied volume. This statement is useful for eliminating nodes in re-
gions of the device structure where the grid is more dense than necessary. Points
along every second line in the chosen direction within the chosen range are re-
moved, except the rst and last line. Successive eliminations of the same range
remove points along every fourth line, eighth line, and so on.
ELIMINATE
{ Direction = (XNorm | YNorm | ZNorm) }
[ {X.Min=num | IX.Min=int} ] [ {X.Max=num | IX.Max=int} ]
[ {Y.Min=num | IY.Min=int} ] [ {Y.Max=num | IY.Max=int} ]
[ {Z.Min=num | IZ.Min=int} ] [ {Z.Max=num | IZ.Max=int} ]
Parameters
Description
Not all the mesh generator support ELIMINATE. The S_QUAD4 and S_HEX8 mesh
generator can not do mesh line eliminate. User should take care of the elimination
process. The excessively elimination may cause bad element quality.
Example
SPREAD
The SPREAD statements provide a way to adjust the y position of nodes along grid
lines parallel to the x-plan (the disturb is uniform in Z dimension) in a hexahedral
mesh to follow surface and junction contours. The statement is only supported by
S_Tri3, S_Tet4 and S_Prism6 mesh generator.
SPREAD
Location = (Left|Right) Width=num Upper=int Lower=int
[ Enchroach=num]
{ Y.Lower=num | (Thickness=num [Vol.Rat=num]) }
[ Grading=num ]
Parameters
Example
SPREAD3D
The SPREAD3D statements also provide a way to adjust the y position of nodes
along grid lines parallel to the xz-plan in a hexahedral mesh to follow surface and
junction contours. The statement is only supported by S_Tet4 mesh generator.
SPREAD3D
[ {X.Min=num | IX.Min=int} ] [ {X.Max=num | IX.Max=int} ]
[ {Z.Min=num | IZ.Min=int} ] [ {Z.Max=num | IZ.Max=int} ]
Upper=int Lower=int [ Enchroach=num]
{ Y.Lower=num | (Thickness=num [Vol.Rat=num]) }
[Grading=num]
Parameters
Example
REGION
The REGION statement denes the location of materials in the mesh. Currently,
GENIUS supports following materials: Vacuum; semiconductor material includ-
ing Si, Ge, GaAs, 3C-SiC, Si 1-xGe x, Al xGa 1-xAs, In xGa 1-xAs, InP, InAs, InN,
InSb, Hg (1-x)Cd (x)Te; insulator material including Air, SiO 2, Si 3N 4 and electrode
region including Elec, Al, Cu, Au, Ag and PolySi.
REGION
Shape=(Rectangle|Ellipse) Label=str Material=str
[ {X.Min=num | IX.Min=int} ] [ {X.Max=num | IX.Max=int} ]
[ {Y.Min=num | IY.Min=int} ] [ {Y.Max=num | IY.Max=int} ]
[ {Z.Min=num | IZ.Min=int} ] [ {Z.Max=num | IZ.Max=int} ]
Parameters
Description
Several regions can be dened one by one. But users should be careful that regions
can't get cross each other. The situations showed in Figure 2.3, p. 51(A) and (B)
are allowed, but (C) will break the mesh generator of genius.
Example
FACE
Face is a group of facet elements (triangle and quadrangle for 3D, and edge for 2D)
which have the same attribute. This statement species the label of a special face.
User can assign the face with a special boundary condition type by BOUNDARY
statement.
FACE
Label=str
{ Location = (Top|Bottom|Left|Right|Front|Back) |
( Direction=(XNorm|YNorm|ZNorm) ( X=num|Y=num|Z=num ) )
}
[ {X.Min=num | IX.Min=int} ] [ {X.Max=num | IX.Max=int} ]
[ {Y.Min=num | IY.Min=int} ] [ {Y.Max=num | IY.Max=int} ]
[ {Z.Min=num | IZ.Min=int} ] [ {Z.Max=num | IZ.Max=int} ]
Parameters
Description
The FACE statement can specify facet elements not only on the boundary of the
mesh, but also inside the mesh, i.e. at the interface of two regions. Here gives
the rules about how GENIUS dealing with of faces. The faces specied by FACE
statement always has the highest priority. They will have the label as FACE state-
ment declared. For the remaining faces, the interface faces between two regions
will be assigned by name1_to_name2 in which the name1 and name2 are the la-
bels of the two regions in alphabetic order. The remain faces of a region will be
assigned by name_Neumann and the name is the label of the region. There are
some limitations about S_Prism6 mesh generator. Face can not be dened along
Z direction, i.e. on front or back plane.
Example
REFINE
The REFINE statement allows renement of a coarse mesh. GENIUS supports
three types of mesh renement: uniform, conform and hierarchical mesh rene-
ment. At present, the solution is destroyed after the mesh renement. Thus user
should ensure that there are DOPING and probably MOLE statements exist in the
same input le so that device doping prole and mole distribution can be rebuild
on the new mesh.
REFINE.Uniform [Step=int]
REFINE.Conform
Variable = ( Doping | Potential | Electron | Hole |
Temperature | E.Temp | H.Temp | QFN | QFP |
E.Field | Net.Carrier | Net.Charge |
Optical.Gen | Particle.Gen )
Evaluation = ( Gradient | Quantity )
Measure=( Linear| SignedLog ) [ Region=str ]
{ error.fraction=num | cell.fraction=num |
error.threshold=num }
REFINE.Hierarchical
Variable = ( Doping | Potential | Electron | Hole |
Temperature | E.Temp | H.Temp | QFN | QFP |
E.Field | Net.Carrier | Net.Charge )
Evaluation = ( Gradient | Quantity )
Measure=( Linear| SignedLog ) [ Region=str ]
{ error.refine.fraction=num | cell.refine.fraction=num |
error.refine.threshold=num }
[ error.coarsen.fraction=num | cell.coarsen.fraction=num |
error.coarsen.threshold=num ]
Parameters
Step integer how many steps should the uniform renement repeats. none none
Error.Fraction numerical When the cell's error exceeds error.fraction*max_error, it 0.3 none
will be rened..
Error.Threshold numerical When the cell's error exceeds error.threshold, it will be re- 0.1 none
ned.
Cell.Fraction numerical The cell.fraction*(total cell number) of cells with most 0.3 none
error will be rened.
X.Min numerical The minimum x coordinate of the region that will be considered for 0 m
renement. synonym: X.Left.
X.Max numerical The maximum x coordinate of the region that will be considered for 0 m
renement. synonym: X.Right.
Y.Min numerical The minimum y coordinate of the region that will be considered for 0 m
renement. synonym: Y.Top.
Y.Max numerical The maximum y coordinate of the region that will be considered for 0 m
renement. synonym: Y.Bottom.
Z.Min numerical The minimum z coordinate of the region that will be considered for 0 m
renement. synonym: Z.Front.
Z.Max numerical The maximum z coordinate of the region that will be considered for 0 m
renement. synonym: Z.Back.
Error.Refine.Fr numerical When the cell's error exceeds error.refine.fraction*max_error, 0.3 none
it will be rened. synonym: Error.Rene.Fraction
Error.Coarsen.Fr numerical When the cell's error is less than error.coarsen.fraction*max_error0.0
, none
it will be coarsened. synonym: Error.Coarsen.Fraction
Error.Refine.Th numerical When the cell's error exceeds error.refine.threshold, it will 0.1 none
be rened. synonym: Error.Refine.Threshold
Error.Coarsen.Th numerical When the cell's error is less than error.coarsen.threshold, it 0.1 none
will be coarsened. synonym: Error.Coarsen.Threshold
Cell.Refine.Fr numerical The cell.refine.fraction*(total cell number) of cells 0.3 none
with most error will be rened. synonym: Cell.Refine.Fraction
Description
REFINE.Uniform is only intended for debugging. Only TRI3 and TET4 mesh
can do REFINE.Conform. And the conform rene process requires the mesh
should be generated by corresponding mesh generator which is dened in the
same input le. However, this is the most stable mesh renement procedure. The
REFINE.Hierarchical is the new mesh rene and coarsen mechanism intro-
duced into GENIUS. It supports all the elements and regardless mesh generators.
This method will generate hanging node on the side of elements with dierent
renement level. User should ensure that the hanging node be far away from pn
junction of the device. Or convergence problem may occur. Generally, rene by
potential has the best eect.
Example
REFINE.U Step=1
External Sources
For simulation the transient response of device, GENIUS supports several types
of voltage and current source. The original models of these sources come from
SPICE, a famous circuit simulation program. Several sources may be dened in
one disk le. And the placement of these denitions are not critical. The sources
can be assigned to electrode by ATTACH statement when needed.
VSOURCE
The VSOURCE command denes a voltage source.
VSOURCE
ID=str [ TDelay = num ]
[ Type = (VDC|VSin|VExp|VPulse|VShell) ]
DC Source
{ VConst=num } |
Sinusoidal Source
{ VAmp=num VFreq=num } |
Exponential Source
{ VHi=num VLo=num TRC=num TFD=num TFC=num } |
Pulse Source
{ VHi=num VLo=num Tr=num Tf=num Pw=num Pr=num } |
User-defined Source
{ DLL=str Function=str }
Parameters
General Parameters
Type enum Selects the type of voltage source. The following types are available: VDC none
DC source, sinusoidal source, exponential source, pulse source and
user-dened source.
ID string Declares the name of the source. none none
DC Source Parameters
DLL string Name of the dynamically loadable library le that contains the none none
user-dened source.
Function string Function name of the source in the DLL le. none none
Description
GENIUS supports user dened voltage and current source by loading shared ob-
ject (.so) le. The le which contains a user dened voltage source should have
the function as follow. GENIUS will pass the argument time in the unit of second
to the function vsrc_name and get voltage value in the unit of volt. The current
source function is almost the same except the unit of current is A.
The c code should be linked with -shared and -fPIC option as:
Example
ISOURCE
The ISOURCE command denes a voltage source.
ISOURCE
ID=str [ Type = (IDC|ISin|IExp|IPulse|IShell) ]
[ TDelay = num ]
DC Source
{ IConst=num } |
Sinusoidal Source
{ IAmp=num IFreq=num } |
Exponential Source
{ IHi=num ILo=num TRC=num TFD=num TFC=num } |
Pulse Source
{ IHi=num ILo=num Tr=num Tf=num Pw=num Pr=num } |
User-defined Source
{ DLL=str Function=str }
Parameters
General Parameters
Type enum Selects the type of current source. The following types are available: VDC none
DC source, sinusoidal source, exponential source, pulse source and
user-dened source.
ID string Declares the name of the source. none none
TDelay numerical Delay time before the source is applied. none none
DC Source Parameters
DLL string Name of the dynamically loadable library le that contains the none none
user-dened source.
Function string Function name of the source in the DLL le. none none
Example
PARTICLE
PARTICLE
Parameters
Description
There are several ways to specify the energy deposit of a particle: by scatter data
le, by analytic express and by particle track.
The input data le must be in plain text, with numerical values separated by white
spaces. Each line contains the coordinates and the energy deposition at that posi-
tion. For 2D prole, each line has 3 values, while for 3D prole, each line has 4
values. The coordinates are in the unit of m, while the energy deposition is in
the unit of eVm3 .
Examples
LIGHT
LIGHT
{ SpectrumFile=str | ( Lambda=num Intensity=num [Eta=num]
) }
Profile = ( FromFile2D | FromFile3D )
[ Profile.File=str ] [ SkipLine=num ]
[ LUnit = (m|cm|um|nm) ] [ FUnit = (m|cm|um|nm) ]
[Transform.xx=num] [Transform.xy=num] [Transform.xz=num]
[Transform.yx=num] [Transform.yy=num] [Transform.yz=num]
[Transform.zx=num] [Transform.zy=num] [Transform.zz=num]
[Translate.x=num] [Translate.y=num] [Translate.z=num]
Parameters
Description
Spectrum le With the spectrum le we can load the eld data at multiple wavelengths in the
same LIGHT command. Each line in the spectrum le should contain the following
columns
A lename extension for the eld data le. Suppose Profile.File is diode1,
and the extension is 3290, Genius will try to load the eld data from the le
diode1.3290.
The wavelength in the unit of micro-meter.
Intensity density (per unit wavelength) at this wavelength. The unit is W/cm2/m.
Note that this diers from the intensity parameter for monochromatic light.
(Optional) quantum eciency for carrier generation. If not explicitly spec-
ied, Genius will automatically calculate the quantum eciency using the
bandgap of the material.
Optical Carrier HFSS assumes by default that the incident wave has E-eld strength of 0 =
Generation 1 V/m, which corresponds to the incident intensity of
1
0 = 0 0 0 2 . (2.1)
2
We need to scale the E-eld in the solution according to the user-specied incident
intensity.
If the user does not supply the quantum eciency value, Genius will calculate
with the following assumption
= oor( ). (2.2)
where the oor function round to largest integral value not greater than the argu-
ment. The carrier generation is nally calculated with
0 ( )
= 2. (2.3)
HFSS places a descriptive heading in each spectrum le, we shall skip that line.
Field Data File The input data le must be in plain text, with numerical values separated by white
spaces. Each line contains the coordinates and the E-eld strength of the EM wave
at that position. For 2D prole, each line has 3 values, while for 3D prole, each
line has 4 values. The unit of the coordinates is specied by LUnit, and the unit
Examples
ENVELOP
The ENVELOP command denes an envelop in time, which is used to modulate
light source. The light source can be introduced by LIGHT command and RAYTRACE
command. User can specify the envelop of light source at the SOLVE command.
ENVELOP
ID = str
[ Type = (Uniform|Gaussian|Pulse|Expression|Shell) ]
[ TDelay = num ]
Uniform envelop
{ Amplitude=num } |
Gaussian envelop
{ Amplitude=num T0=num Tao=num} |
Pulse envelop
{ Amplitude.high=num Amplitude.low=num
Tr=num Tf=num Pw=num Pr=num } |
Parameters
General Parameters
Type enum Selects the type of envelop. The following types are available: Uni- Uniform none
form, Gaussian, Pulse and user-dened envelop.
ID string Declares the name of the envelop. none none
TDelay numerical Delay time before the envelop is applied. none none
DLL string Name of the dynamically loadable library le that contains the none none
user-dened source.
Function string Function name of the source in the DLL le. none none
Examples
CIRCUIT
The CIRCUIT command denes a circuit netlist (in SPICE syntax) for mixed-mode
simulation.
CIRCUIT
Netlist = str
Parameters
Boundary Conditions
BOUNDARY
ID=str
Type = ( OhmicContact | SchottkyContact | SolderPadContact
|
GateContact | SimpleGateContact |
InsulatorInterface|
HeteroJunction | NeumannBoundary )
Ohmic Contact
[ external circuit ]
[ Heat.Transfer=num ] [ Ext.Temp=num ]
Schottky Contact
[ WorkFunction=num ]
[ external circuit ]
[ Heat.Transfer=num ] [ Ext.Temp=num ]
Gate Contact
[ WorkFunction=num ]
[ external circuit ]
[ Heat.Transfer=num ] [ Ext.Temp=num ]
SolderPad Contact
[ external circuit ]
[ Heat.Transfer=num ] [ Ext.Temp=num ]
Insulator Interface
[ QF=num ]
HeteroJunction
[ QF=num ]
NeumannBoudary
[ Heat.Transfer=num ] [ Ext.Temp=num ]
Contact
ID=str Type = (OhmicContact|SchottkyContact|
GateContact|FloatMetal)
Ohmic Contact
[ external circuit ]
[ Heat.Transfer=num ] [ Ext.Temp=num ]
SchottkyContact
[ WorkFunction=num ]
[ external circuit ]
[ Heat.Transfer=num ] [ Ext.Temp=num ]
Gate Contact
[ WorkFunction=num ]
[ external circuit ]
[ Heat.Transfer=num ] [ Ext.Temp=num ]
Floating Metal
[ QF=num ]
Parameters
Description
Five "electrode" boundary conditions are supported by GENIUS. The names are
ended with Contact. The OhmicContact and SchottkyContact electrodes
have current ow in both steady state and transient situations. While GateContact
and SimpleGateContact(a simplied MOSFET Gate boundary condition) only
have displacement current in transient situation. SolderPadContact also has
current ow in steady state and transient situations. The OhmicContact, SchottkyContact
and SimpleGateContact are boundaries on surface of semiconductor region.
GateContact should be the surface of insulator region and SolderPadContact
is the surface of a metal region.
GENIUS can build region with metal or poly-Si material to form an electrode.
Which means, i.e. for OhmicContact bc, one can simply specify a segment
as Ohmic bc or build an electrode region as Ohmic electrode. Since Version
0.45.03, GENIUS considers electrode region, semiconductor region and insula-
tor region during calculation. As a result, GENIUS added CONTACT statement
for fast boundaries specication of electrode region. At present, GENIUS sup-
port electrode with the type of Ohmic, Schottky, Gate and Floating-Metal. All
the electrode should be specied explicitly and GENIUS will set corresponding
boundaries automatically.
The NeumannBoundary, which is the default boundary type for all the non-inter-
face segments, are set automatically at the outer surface of a region.
The thermal boundary conditions at outer surfaces of the device and the interface
with electrode regions are specied by the Heat.Transfer and Ext.Temp pa-
rameters. The default external temperature at the boundary is the external temper-
ature set in the GLOBAL command. The default value for heat conductance varies
with the types of boundary conditions. For OhmicContact, SchottkyContact
and Gatecontact, the default heat conductance is 103 W cm2 K1 . For NeumannBoundary
external circuit
Electrode boundaries can own its external circuit. Genius oers some commonly
used circuit type for convenient. At present, RCL model, PI model and RC trans-
mission line mode are supported. For complex external circuit support, user should
consider to use mixed model simulation.
External circuit
ext.circuit = ( RCL | Pi | Tline )
RC transmission line
[ res.um=num ] [ cap.um=num ] [ res.load=num ]
[ tl.length=num ] [tl.div=int ]
RCL model
PI model
res.um numerical Resistance per micron for the RC transmission line. 1e-12 m1
cap.um numerical Capacitance per micron for the RC transmission line. 0.0 Fm1
res.load numerical The terminal resistance. 1e-6
tl.length numerical The length of RC transmission line none m
Example
ATTACH
The ATTACH command is used to add voltage or current sources to the electrode
boundary. The statement rst clears all the sources connected to the specied
electrode and then adds source(s) dened by VApp or IApp parameter. If two or
more sources are attached to the same electrode, the net eect is the superposition
of all sources. However, the sources attached to one electrode must have the same
type.
Parameters
Electrode string Electrode where the external source is attached. Must be a valid none none
ID of a electrical contact specied by the BOUNDARY or CONTACT
commands.
VApp string ID of the voltage source. none none
IApp string ID of the current source. none none
Description
If electrode is attached with voltage source(s), the external circuit dened in BOUNDARY
or CONTACT statement will aect later simulation. But solver will ignore R and
L when the electrode stimulated by current source(s). Please refer to Figure 2.4,
p. 77.
Several voltage sources or current sources can be attached to the same electrode
by multi- Vapp or multi- Iapp parameter. However, both the voltage source and
current source attach to the same electrode is invalid. Only Ohmic, Schottky and
SolderPad electrodes can be attached by current source(s). And the positive di-
rection of current is ow into the electrode.
name: dummy
file: plotCmdRef/electrode_rcl.png
state: unknown
Figure 2.4 Voltage and current boundary for RCL type external circuit
name: dummy
file: plotCmdRef/electrode_pi_s.png
state: unknown
Figure 2.5 Voltage and current boundary for PI type external circuit
Example
name: dummy
file: plotCmdRef/electrode_tl.png
state: unknown
Figure 2.6 Voltage and current boundary for external transmission line
Fabrication Process
DOPING
The DOPING command selects the mode of doping prole specication. Only
analytic doping prole is currently implemented.
Doping Analytic
Analytic PROFILE
The PROFILE command species the doping prole. Uniform and analytic dop-
ing proles are supported.
PROFILE[.DOPING]
[ ID=str ]
Type = (Uniform|Analytic|Analytic2|File) Ion = (Donor|Acceptor|Cu
Parameters
General Parameters
Type enum Selects the type of doping prole. Doping prole can be Uniform, Uniform none
specied by Analytic expression, or loaded from a data File.
Ion enum Selects the doping species of the prole. Acceptor, donor and cus- none none
tom species are available. Custom species must bear an ID, so that
it can be referenced in other commands (e.g. in PMI trapping model
and incomplete ionization model).
ID string Identier of a custom doping prole. none none
x.min numerical Left boundary of the prole. Synonym: x.left. 0.0 m
x.max numerical Right boundary of the prole. Synonym: x.right. 0.0 m
y.min numerical Top boundary of the prole. Synonym: y.top. 0.0 m
y.max numerical Bottom boundary of the prole. Synonym: y.bottom. 0.0 m
z.min numerical Front boundary of the prole. Synonym: z.front. 0.0 m
z.max numerical Back boundary of the prole. Synonym: z.back. 0.0 m
N.Peak numerical Peak doping concentration. In the box dened by x.min, x.max, 0.0 cm3
y.min, y.max, z.min, z.max, the doping is uniformly N.Peak.
Outside the box, the doping concentration decays according to the
analytic function.
Dose numerical The dose of the doping concentration, assuming the resulting prole 0.0 cm2
is 1D Gaussian.
Y.Char numerical Characteristic length in the y direction. 0.0 m
Y.Junction numerical Target junction depth. 0.0 m
X.Char numerical Characteristic length in the x direction. 0.0 m
XY.Ratio numerical The ratio of characteristic length in the x direction against that in the 0.0 none
y direction.
X.Erfc bool Selects whether to use erfc instead of Gaussian function in the x false none
direction.
Z.Char numerical Characteristic length in the z direction. 0.0 m
ZY.Ratio numerical The ratio of characteristic length in the z direction against that in the 0.0 none
y direction.
Z.Erfc bool Selects whether to use erfc instead of Gaussian function in the z false none
direction.
File string Name of the doping concentration data le. none none
Transform numerical The transformation matrix applied to the coordinates imported I none
from the input le. The nal coordinates are obtained from
Transform*location + Translate.
Translate enum The translation vector applied to the input coordinates. 0 none
SkipLine integer Skip the rst SkipLine number of lines in the data le. 0 none
LUnit enum Length unit used for node coordinates in the data le. um none
When the Type parameter is set to Analytic, the doping prole is calculated
with the expression
where N.PEAK is the peak doping concentration, and the functions (), ()
and () describes the variation of doping concentration in the x-, y- and z-di-
rections, respectively.
Two options are currently available for the variation functions, namely the Gauss
prole function and the Erfc prole function. One can choose the prole func-
tion for the x-, y- and z-directions independently. When the X.Erfc, Y.Erfc or
Z.Erfc parameter is enabled, the Erfc function is used in that direction.
where = ,,.
erfc ( .
. )
erfc ( .
. )
(,) = . (2.5)
2
Implant Dose The Dose parameter can be used instead of the N.Peak parameter to specify the
dose of impurities per unit area. In this case, the peak concentration is calculated
with
. = . (2.6)
.
When the Type parameter is set to Analytic2, the doping prole is calculated
with a given mask and the implant parameters. A planer rectangle mask or poly-
gon mask should be dened as the window of implantation. The implantation
is dened by incident angle given by implant.theta and implant.phi and
ranges given by implant.rmin and implant.rmax, which relative to the mask
plane. The doping concentration equals to N.Peak within the range between
implant.rmin and implant.rmax, and variated as Gauss prole function with
parameter depth.char along the doping line outside the range. For lateral dis-
tribution, a Gauss prole with parameter lateral.char is assumed. The Ge-
nius use a ray shooting method to calculate the nal doping concentration. The
When a custom dopant species is desired, the user should set Ion to Custom, and
supply an identier ID.
Field Data File The eld data le must be in plain text, with numerical values separated by white
spaces. For 3D doping prole, each line contains four values (x-, y-, and z-co-
ordinate and the doping concentration). For 2D doping prole, the z-coordinate
is not present, and each line contains three values. The unit of the coordinates is
specied by LUnit, and the unit of the concentration is cm3 . Positive doping
concentration indicates Donor ion, while negative doping concentration indicates
Acceptor ion.
Example
MOLE
The MOLE command species the mole fraction prole of compound materials.
For binary compound material A xB 1-x, the mole fraction prole x is needed. For
tertiary compound material A xB yC 1-x-y, both x and y prole are needed.
MOLE
Region=str
[ x.min=num ] [ x.max=num ] [ y.min=num ] [ y.max=num ]
[ z.min=num ] [ z.max=num ]
Parameters
General Parameters
Binary Compound
X.Mole numerical Starting mole fraction x of compound material A xB 1-x. 0.0 none
X.Mole.Slope numerical The slope of mole fraction x. 0.0 m1
X.Mole.End numerical The mole fraction x at the end of the prole. 0.0 none
X.Mole.Grad enum The direction of mole fraction gradient. Y.Linear none
Tertiary Compound
X.Mole numerical Starting mole fraction x of compound material A xB yC 1-x-y. 0.0 none
X.Mole.Slope numerical The slope of mole fraction x. 0.0 m1
X.Mole.End numerical The mole fraction x at the end of the prole. 0.0 none
X.Mole.Grad enum The direction of mole fraction gradient. Y.Linear none
Y.Mole numerical Starting mole fraction y. 0.0 none
Y.Mole.Slope numerical The slope of mole fraction y. 0.0 m1
Y.Mole.End numerical The mole fraction y at the end of the prole. 0.0 none
Y.Mole.Grad enum The direction of mole fraction gradient. Y.Linear none
Description
Only linear mole fraction prole with its gradient aligned with one of the three
Cartesian axes is currently supported. There are two alternative ways to spec-
ify the expression of the prole. One can either specify the slope explicitly with
X.Mole.Slope and the mole fraction at the starting end with X.Mole. Start-
ing end is dened as the one with smaller coordinate value in the direction of
X.Mole.Grad. Alternatively, one can set the mole fraction at both ends of the
region with X.Mole and X.Mole.End, and let GENIUS calculate the gradient.
Example
REGIONSET
The REGIONSET command reset the doping and mole value of a given region.
Only uniform value can be specied. The given value will overwrite any previous
value.
REGIONSET
Region=str
Doping profile
[ doping.na=num ] [ doping.nd=num ]
Parameters
Region specify
Doping Parameters
Binary Compound
X.Mole numerical Set mole fraction x of compound material A xB 1-x. 0.0 none
Tertiary Compound
X.Mole numerical Set mole fraction x of compound material A xB yC 1-x-y. 0.0 none
Y.Mole numerical Set mole fraction y. 0.0 none
Example
Physical Models
PMI
In Genius, the physical models of each material is loaded to the simulation system
through the physical model interface (PMI). The models can be selected through
the PMI command. The model parameters are also specied here. The general
syntax of the PMI command is
PMI
REGION=str
[ Type= (Basic|Band|Mobility|Impact|Thermal|Optical|Trap)
]
[ Model=str ] [print=int]
[ real<str>=num [ real<str>=num [...] ] ]
[ string<str>=str [ string<str>=str [...] ] ]
Parameters
Region string The region that the loaded model would apply to. A valid region none none
name must be supplied, otherwise the simulation will abort. The
region string can be given as a regular expression to match a number
of regions.
Description
The core program of Genius access the numerous material-specic models via the
Physical Model Interface (PMI).
For each type of models, a default model will be loaded in the absence of a PMI
command. When the user supplied one or more PMI commands, Genius sequen-
tially loads the specied model and assign it to the specied region. The user
can optionally supply a list of custom numerical and string parameters to the PMI
model. For instance, the following command loads the trap model for Silicon
region, and setup the parameters of the trap model.
Each PMI model has its own list of accepted parameters, and the user should con-
sult the description of the individual PMI models for details.
If the model specied by a PMI command has already been loaded, the previously
loaded one is not replaced. The latter PMI command are useful in adjusting the
custom parameters of the PMI model.
Custom PMI Model Advanced users of Genius can compile and produce dynamic libraries that contain
custom PMI models. The easiest way of writing custom PMI model is to extend
from the source code of existing models. See [[TODO]] for a tutorial guide and
detailed references.
Mobility Models
The mobility model can be selected in the Model parameter of the PMI command:
PMI
REGION=str Type=Trap [ Model=str ]
[ param=val [ param=val [ ... ] ] ]
%
The variety of available mobility models and the default model for each material is
summarized in Table 2.1, p. 91. Each model has a set of its own parameters, which
can be adjusted with the PMI command. The description of each mobility model
and the corresponding parameters are detailed in Mobility Models, p. 12.
The following example shows how one can load the HP mobility model and adjust
the default parameter.
The mobility model can be selected in the Model parameter of the PMI command:
PMI
REGION=str Type=Impact [ Model=str ]
[ param=val [ param=val [ ... ] ] ]
For silicon and many other materials, the Default avalanche generation model
is the Selberherr model. The models for various materials are summarized in
Table 2.2, p. 92.
Trap Model
Although the charge trapping model is automatically loaded, the user needs to
setup trap parameters with PMI command for it eect. The syntax and parameters
are as follows.
PMI
REGION=str Type=Trap Model=Default
[string<Type> = (Bulk|Interface)]
[string<ChargeType> = (Acceptor|Donor)]
[real<Energy>=num] [real<SigmaN>=num] [real<SigmaP>=num]
Bulk Trap
{ string<Profile>=str [ real<Prefactor>=num ] |
Interface Trap
string<Interface>=str real<IF.Density>=num }
Type enum Selects whether the current command species Bulk or Interface Bulk none
traps.
ChargeType enum Selects whether the traps is Acceptor or Donor. Acceptor none
Energy numerical Energy of the trap level relative to the intrinsic Fermi level of the 0 eV
material.
SigmaN numerical Capture cross-section for electrons. 4e16 cm2
SigmaP numerical Capture cross-section for holes. 4e16 cm2
Profile string The concentration of bulk traps is derived from a custom doping none none
prole dened by a PROFILE command. ID of the custom prole
should be specied here.
Prefactor numerical The concentration of the doping prole specied by Profile is 1.0 none
scaled by this Prefactor. This is useful in generating a number of
traps with the same spatial distribution but dierent trap energies.
Interface string Interface traps are attached to the insulator/semiconductor inter- none none
face with the ID specied here. When an semiconductor region
and an insulator region share a common face, an interface is au-
tomatically generated. The ID of the interface is in the format of
RegionName1_to_RegionName2. Alternatively, one can use a
Face command to dene an interface with a user-specied ID.
IF.Density numerical The interface density of traps. 0.0 cm2
User can setup incomplete ionization parameters with PMI command. Please note,
for active this model, use also have to set IncompleteIonization to true in
the MODEL statement. Also, it is recommend to use Fermi statistics with Incom-
pleteIonization. The syntax and parameters are as follows.
PMI
REGION=str Type=band
[string<species>=str] [int<ion>=(+1|-1)]
[real<EB0>=num] [real<GB>=num]
[real<alpha>=num] [real<beta>=num] [real<gamma>=num]
%
species string Specify prole species. The string parameter is the id of prole with none none
Custom ion type.
ion integer Selects whether the species is Acceptor(-1) or Donor(+1). 0 none
EB0 numerical The constant activation energy. 0 eV
GB numerical The band degeneracy factor none none
alpha numerical The prefactor for the doping dependent term used in the calculation none eVcm1
of the band ionization energy.
beta numerical The prefactor the temperature dependent term used in the calculation none none
of the band ionization energy.
gamma numerical The exponent of temperature used in the calculation of the band ion- none none
ization energy.
MODEL
The MODEL command sets the switches that controls the behavior of the physical
equations.
MODEL
Region=str
[ Fermi=bool ] [IncompleteIonization=bool]
{ H.Mob=bool [ Mob.Force = (EJ|ESimple|EQF) ] }
{ ImpactIonization = (Local|No)
[ II.Force = (EdotJ|ESide|EVector|GradQF) ] }
[ BBT = (Local|No) ]
[ Optical.Gen = (true|false) ]
[ Particle.Gen = (true|false) ]
[ EB.Level= (None|Tl|Te|Th|TeTh|TeTl|ThTl|ALL) ]
Parameters
IncompleteIonization
Example
Numerical Solution
METHOD
The METHOD command species the parameters of the numerical solvers.
METHOD
Equation Selection
[ Type = (Poisson|DDML1|DDML1Mix|DDML2|DDML2Mix|
EBML3|EBML3Mix|HalfImplicit|Stress) ]
Convergence Criteria
[ MaxIteration=int ]
[ Relative.Tol=num ] [ Poisson.Tol=num ]
[ Elec.Continuity.Tol=num ] [ Hole.Continuity.Tol=num ]
[ Elec.Energy.Tol=num ] [ Hole.Energy.Tol=num ]
[ Latt.Temp.Tol=num ] [Electrode.Tol=num]
[ Toler.Relax=num ] [ QNFactor=num ] [ QPFactor=num ]
Parameters
Equation Selection
MaxIteration integer Sets the number of maximum nonlinear iterations before the solver 30 none
reports failure.
Relative.Tol numerical Sets the relative update tolerance. 1e-5 none
Poisson.Tol numerical Sets the absolute tolerance for the residue norm of Poisson's equa- 1e-26 none
tion.
Elec.C.Tol numerical Sets the absolute tolerance for the residue norm of the electron con- 5e-18 none
tinuity equation. Synonym: Elec.Continuity.Tol.
KSP.RTol numerical Relative tolerance of convergence criterion when ksp methods are 1e-8 none
use drelative tolerance of convergence criterion when ksp methods
are used.
KSP.ATol numerical Absolute tolerance of convergence criterion when ksp methods are 1e-20 none
used.
KSP.ATol.FNorm numerical Absolute tolerance convergence criterion, when the residue norm of 1e-7 none
ksp iteration less than .. * ().
() = () (2.7)
where is the computed update, and is the Jacobian of . In the basic Newton
algorithm, the new solution is
= + . (2.8)
This iterative process continues until the convergence criteria is met. Apart from
the basic algorithm described above, two variants of Newton solution update algo-
rithms are provided. The cubic linesearch algorithm and the Trust-Region update
algorithms can be selected with the NS parameter.
Update damping algorithms can be used with Newton methods to improve stabil-
ity of the iterative process. All updates are damped so that the carrier densities
are positive. When the Basic Newton algorithm is selected, one can turn on the
Potential damping or the Bank-Rose damping, which sometimes improve conver-
gence.
The nonlinear solver checks for convergence after Newton iteration. The following
sets of criteria are checked in sequence, if any one set of criteria is met, the solution
is determined to have reached convergence.
Absolute Residue The residue of each device equation is evaluated. If the norm of each residue is
Norm Convergence less than the respective absolute tolerance, convergence is reached.
Relative Residue The residue of all device equations is evaluated, and its norm compared against the
Norm Convergence residue norm before the nonlinear iterations. If the ratio between the two norm
is less than the relative tolerance, the absolute residue norm criteria is further
checked with the absolute tolerance relaxed by the factor Toler.Relax. Con-
vergence is reached if both tests passes.
Relative Update The norm of the update in the Newton iteration is evaluated, if this norm is less
Norm Convergence than the relative tolerance, the absolute residue norm criteria is further checked
with the absolute tolerance relaxed by the factor Toler.Relax. Convergence is
reached if both tests passes.
Alternatively, the more ecient iterative methods based on Krylov subspace (KSP)
theory can be used. However, iterative methods can only give approximate re-
sults. Among the choices of linear system solvers, the CG, BCGS, GMRES methods
The iterative linear solver may fail to reach convergence in some cases, which
cause the nonlinear solver fail with the error DIVERGED_LINEAR_SOLVER. In
this case one may try relaxing the three linear solver tolerance parameters. On the
other hand, if the error norm of the nonlinear solver stagnates when a KSP linear
solver is in use, it may be caused by inexact linear solution. Tightening the KSP
convergence criteria may help.
SOLVE
The SOLVE command instructs Genius to solve the semiconductor device equa-
tions.
SOLVE
[Type=(Equilibrium|SteadyState|DCSweep|Op|ACSweep|Transient)]
[Predict=bool]
Input/Output Parameters
[ Hook=str ] [ Out.Prefix=str ]
Parameters
General Parameters
VScan string The electrode on which voltage sweep is applied. none none
VStart numerical Start voltage. none V
VStep numerical Initial voltage step. The actual voltage steps may change when there none V
is convergence problem.
VStop numerical Stop voltage. none V
VStepMax numerical Maximum voltage step. VStep V
IScan string The electrode on which current sweep is applied. none none
IStart numerical Start current. none A
IStep numerical Initial current step. The actual current steps may change when there none A
is convergence problem.
IStop numerical Stop current. none A
IStepMax numerical Maximum current step. IStep A
rampup.steps integer The number of ramp-up steps for the voltage and current sources in 1 none
the circuit to their DC value.
rampup.vstep numerical The maximum changes of voltage in any ramp up step. 0.25 V
rampup.istep numerical The maximum changes of current in any ramp up step. 0.1 A
gmin.init numerical The initial value of gmin in gmin step-down. A large value may help 1e-12 1
convergence for dicult circuits.
gmin numerical The target value of gmin step-down. This value should be su- 1e-12 1
ciently small to avoid error in circuit simulation.
pseudotime bool When pseudotime is set to true, Genius will use pseudo-time false none
method to calculate the steady-state solution of the device. Cur-
rently available in pure device simulation, with type=OP.
pseudotime.step numerical Time step for the pseudo-time method. Small time step will make 1e-6 s
the system more stable but require more time steps to drive the sys-
tem to steady state.
pseudotime.iter numerical Maximum number of pseudo-time iteration steps for driving the sys- 20 none
tem to steady state.
VStepMax numerical Maximum voltage update in any pseudo-time step. 0.1 V
IStepMax numerical Maximum current update in any pseudo-time step. 0.1 A
TS Enum Sets the time-discretization scheme. Available choices are BDF1 BDF2 none
(aka. Implicit Euler), BDF2 and TRBDF2.
TStart numerical Initial time. 0.0 s
AC Sweep Simulation
VScan string The electrode on which small AC signal is applied. none none
f.start numerical Start frequency for AC sweep 1e6 Hz
f.stop numerical Stop frequency for AC sweep. 10e9 Hz
f.multiple numerical Species multiplicative factor for incrementing frequency. 1.1 none
vac numerical The magnitude of AC signal. 0.0026 V
Input/Output
Output.Prefix string Sets the prex to the lename used for output. The internal output none none
routine and the loadable hook functions will append their respective
postx and extensions to form the complete output lename.
Failure Recovery When the numerical solver fails to converge at a particular step, Genius recovers
to the state of the previous converged step, reduces the step, and attempts to solve
the equations again. In DCSweep mode, the voltage or current step is recursively
halved when the solver diverges. When the solver converges at some reduced
step, it tries to progressively double the step it recovers to the initial step (VStep
or IStep).
Initial State An initial device state must be prepared prior to the transient simulation, otherwise
the device state at time zero is undetermined. Either a DC Sweep, an Operation
Point or a Transient simulation can fulll this requirement.
Adaptive Time Step In the Transient mode, one can specify whether adaptive time step is used
with the option AutoStep. When adaptive step is turned o, the initial timestep
TStart is used throughout the simulation. With AutoStep turned on, the ini-
tial time step TStep is used in the rst few steps, and the time-domain truncation
error is evaluated. If the truncation error exceeds that specied in TS.rTol and
TS.aTol, the timestep is reduced to 0.9 of the previous value. On the other hand,
when the truncation error meets the tolerance criteria, time step is increased by
the factor of 1.1, until the maximum timestep TStepMax is reached.
One can use the VStepMax and IStepMax parameters to limit the maximum
change in voltage (current) of any voltage (current) source during any time step.
When any driving source has a sudden change, the time step will be reduced ac-
cordingly.
As in the DC Sweep mode, Genius will recover from convergence failure in the
Transient mode, cut the time step to half, and continue solving.
The Operation Point (OP) mode is selected by setting type=OP, and is commonly
used to bring the device to a steady-state condition, as the starting state for a DC
Sweep or Transient simulation. For better convergence, Genius will ramp up the
voltage and current sources from equilibrium (zero) to the specied source values.
To limit the maximum change in source values in each ramp-up step, one can set
the VStepMax and IStepMax parameters.
Pseudo-Time New in 1.7.2. In OP mode for device simulation, pseudo-time method can be
Method used to better handle ill-conditioned problems, e.g. devices with oating regions,
which are traditionally dicult to converge and requires a direct linear solver.
With the more numerically stable pseudo-time method, such dicult problems
can converge with iterative linear solvers such as BCGS, drastically reducing mem-
ory consumption of large-scale problems. In benchmark tests, the pseudo-time
method (with BCGS) is modestly faster than traditional steady-state method with
the MUMPS direct linear solver.
The owchart of the pseudo-time method is shown in Figure 2.7, p. 107, with
comparison to the normal steady-state method.
Inputs:
previous state S0 ,
target state S1
Compute NSteps
according to
VStepMax/IStepMax
Y N
Is pseudo-time mode?
= n/NSteps
tramp = t NSteps
S = (1 ) S0 + S1
= t/tramp
Solve PDE for state S
S = (1 ) S0 + S1
Y n = n + 1;
Solve PDE for (S, t)
n < NSteps?
Y t = t + t;
End
t < tramp ?
Solve PDE
Y t = t + t;
x < ?
End
The transient simulation consists of two stages, as shown in Figure 2.7, p. 107.
In the rst stage, voltage and current sources are ramped up. After the target
voltage/current are set, Genius solves the equations for a few further steps in the
second stage. As time progresses, the device settles down to its steady state, and
the change of internal variables (e.g. , , and ) between subsequent steps di-
minishes. After this change drops below the error threshold, the device is deemed
to have reached steady-state, and the pseudo-time algorithm completes.
As in the transient and DC sweep modes, in the OP mode, Genius will recover
from convergence failure, cut back ramp step or time step, and continue solving.
When a circuit netlist is present, the device/circuit mixed DC Sweep Mode is se-
lected by setting type=DCSweep.
When a circuit netlist is present, the device/circuit mixed Transient Mode is se-
Example
SOLVE Type=Equilibrium
EMFEM2D
The EMFEM2D command instructs the 2D nite-element EM wave solver to solve
the Maxwell equations.
EMFEM2D
[ WaveLength=num ] [ Intensity=num ]
[ Quan.Eff=num ] [ SpectrumFile=str ]
[ wTE=num ] [ wTM=num ] [ phase.TE=num ] [ phase.TM=num ]
[ Angle=num ]
[ ABC.Type= ( FirstOrder | SecondOrder | PML ) ]
[ ABC.Shape= ( Circle | Ellipse | Unknow ) ]
[ LS = (CGS|BICG|BCGS|GMRES|TFQMR|LU|UMFPACK|SuperLU|
MUMPS|SuperLU_Dist) ]
[ PC = (Identity|Jacobian|BJacobian|ASM|ILU) ]
Parameters
Description
The spectrum le is a plain text le with each line for one frequency point in the
spectrum. Each line contains 2 or 3 numerical values separated by whitespaces:
Genius will perform FEM EM simulation at each frequency point, calculate the
optical generation at each frequency, and sum up the total carrier generation.
When quantum eciency is given, Genius will use this value to calculate the op-
tical carrier generation rate. Otherwise, Genius will use the following quantum
eciency
(/ )
= (2.9)
The sum of weights wTE and wTM must be 1. When either wTE or wTM is given,
Genius will calculate the other automatically. If both values are given, Genius will
check if they add up to unity.
Absorbing The absorbing boundary condition can be rst-order or second-order, and can be
Boundary selected by the ABC.Type parameter. In general, the second-order boundary is
preferred. When possible, a circular shape absorbing boundary is highly recom-
mended. The ABC should be at least one wave-length away from the scatterer.
Mesh Size In FEM EM simulation, the mesh size should be 1/16 to 1/20 of the optical wave-
length in the material. Note that wavelength decreases for materials with relative
permittivity greater than 1. As a result, the mesh in dielectric materials (such as
Si) should be ner.
RAYTRACE
The RAYTRACE command instructs the ray-tracing solver to calculate the light
propagation.
RAYTRACE
{
SpectrumFile=str |
( Lambda=num Intensity=num [Quan.Eff=num] )
}
[ Theta=num ] [ Phi=num ] [ Ray.Density=num ]
Parameters
Description
The direction of the incident wave is specied by the azimuth and inclination angle
and , and the direction unit vector can be expressed as
sin cos
cos
= . (2.10)
sin sin
The default values of Theta and Phi corresponds to incidence along the positive
y-axis direction.
Ray Seeding Genius seeds the incident light rays automatically. The density of rays is deter-
mined by the smallest element in device mesh and the parameter ray.density.
The ray to ray distance is set to D=min /ray.density. In general, Genius guar-
antees that each mesh element has at least ray.density rays in 2D structures,
and ray.density*ray.density rays in 3D structures, respectively.
Boundaries When a ray incidents on Ohmic boundaries and Schottky boundaries, the trac-
ing terminates and the incident ray is removed. If a Neumann boundary has the
Reflection parameter set to true (default is false), the above rule also ap-
plies.
On the other hand, the interfaces with metallic (electrode) regions are not aected
by the above rule, and refraction/reection rays are generated.
Absorption When the ray passes though a mesh element, the optical power associated to the
ray deposits in this element according to the absorption coecient. Genius will
sum the power deposited by all the rays and calculate the optical carrier generation
rate at each node.
Spectrum le With the spectrum le we can specify multi- spectrums of light with dierent
intensity. Spectrum le should contain at lease two spectrums. Each line in the
spectrum le should have the following columns
# lambda intensity
0.912 0.2
0.954 0.5
1.00 0.4
1.05 0.3
1.11 0.2
1.17 0.2
1.24 0.1
Example
IMPORT
The IMPORT command loads mesh structures and solutions from a le, and builds
the simulation system based on it.
IMPORT
{ CGNSFile=str | TIFFile=str | TIF3DFile=str |
SilvacoFile=str | ISEFile=str }
Parameters
description
Genius can load device denition and data from many dierent les. The CFD
General Notation System (CGNS) is the native le supported by Genius. User can
save the current state of device under simulation by EXPORT command and then
load it again by IMPORT command. Besides the native CGNS format. Genius
can also load device structure from Technology Interchange Format (TIF) format
which is commonly used by Synopsys medici and tsuprem, DF-ISE format used
by Synopsys Sentaurus, structure format used by Silvaco, and a extended TIF3D
le generated by Gds2mesh tool.
Example
EXPORT
The EXPORT command saves mesh structures and solutions to a le.
EXPORT
[ CGNSFile=str ] [ VTKFile=str ] [ ISEFile=str ]
[ BCInfo=str ]
{ [ NodeInfo=str ] [ LUnit = (m|cm|um|nm) ]
[ Numbering=bool ] }
Parameters
description
Genius can save device denition and data to les in the CFD General Notation
System (CGNS) which is natively supported. Genius also saves mesh and solu-
tion data with the Visualization ToolKit (VTK) formats which is supported by
VisualTCAD and many other post-process tool such as Paraview and Visit. Since
version 1.7, Genius can export device mesh and doping information in the DF-ISE
format.
Example
HOOK
The HOOK command loads or unloads hook functions, which are called before
and after solving the device equations. Various hook functions are available that
serve as pre-/post-processors, input/output formatters and interface with other
softwares.
HOOK
[ Load=str [ id=\GSyntax{{\ttsl str }}] [ real<str>=num [...]
] [ str<str>=str [...] ]
[ Unload=str ]
Parameters
Description
The HOOK command should be invoked before the SOLVE command to be eective.
Some hooks are only compatible with some of the analysis modes (e.g. with DC
Sweep mode only). After a hook is loaded, it is eective in subsequent SOLVE
commands as well if the hook function is compatible with the analysis mode, until
it is unloaded.
Some hooks accepts custom parameters when the user loads them. If one tries
to load a previously loaded hook function again, the parameters specied during
previous loading are all erased.
gnuplot. Save the terminal voltages and currents from the simulation result
in plain text format, which is compatible with the gnuplot ploting program.
This hook is
raw. Save the terminal voltages and currents from the simulation result in the
SPICE raw format. The output le has the extension .raw.
Additionally, a few optional hook functions are available, and the user can load
some of them with the HOOK command. In the following sections, we briey
describe each of them.
CV Postprocessor
The cv hook function extracts the capacitance of gate electrodes. One can load
this postprocessor with the command
HOOK Load=cv
and the extracted capacitance-voltage data will be saved in output le with the
extension .cv. The electric charge in the gate electrodes are rst integrated, and
capacitance is then extracted by dierentiating with respect to the scanning volt-
age. It works in the DC voltage sweep mode only and the extracted capacitance
is quasi-static. For capacitance analysis at high frequency, one should use the AC
analysis mode.
Probe Postprocessor
The probe hook function allows the user to monitor the potential and carrier
concentration at a particular point in the device. It can be loaded with the following
command
The vtk hook function allows the user to save VTK le at each step in DC and
transient simulation. The serial of VTK les which contains eld evolving infor-
Genius can feed solution to the visualizer program Visit through the visit hook
function.
Through the physical model interface (PMI), new materials can be added and
existing materials can be modied.
Pre-processing and post-processing steps can be added through the hook in-
terface.
The simulator is programmable through its Python interface.
This chapter outlines the procedure of extending Genius with the various inter-
faces. This chapter is intended for advanced readers who intend to write programs
to customize or extend the Genius simulator. An intermediate level of knowl-
edge about the C++ programming language and the development tools in Linux
or Windows.
Overview of PMI
Each material in Genius is packaged as a dynamically linked library (DLL). With
this design, new materials can be added, and existing materials modied, without
the need of re-building the entire simulator.
Files
The material library les are located in the directory $GENIUS_DIR/lib. The
lename for material foo is libfoo.so.
Si
{
property = Semiconductor
alias = Silicon
color = 0xffb6c1ff
}
GaAs
{
property = Semiconductor
color = 0xeaeaeaff
}
AlGaAs
{
# mole dependence: Ga(1-x)Al(x)As
property = SingleCompoundSemiconductor
color = 0xa6d6d6ff
}
SiO2
{
property = Insulator
alias = Ox
alias = Oxide
color = 0x7d0505ff
}
Each entry corresponds to a material. An entry starts with material's ID and the
content of the entry is contained in the pair of curly braces. The content is a list of
parameter=value pairs, each in its own line. The parameter property species
the type of the material, the possible values are
Each material can have several aliases in addition to its ID. In the Material
parameter of the REGION command, one can use either the aliases or the ID of a
material.
Classes
PMIS_Mobility GSS_SiC4H_Mob_Analytic
PMIS_Avalanche GSS_SiC4H_Avalanche_Default
PMIS_Server
(Semiconductor)
PMIS_Trap GSS_SiC4H_Trap_Default
PMIS_Thermal GSS_SiC4H_Thermal
PMIS_Optical GSS_SiC4H_Optical
PMII_BasicParameter
PMII_Thermal
PMII_Server
(Insulator)
PMII_Optical
PMIC_BasicParameter
PMIC_Server
PMI_Server PMIC_Thermal
(Conductor)
PMIC_Optical
PMIV_Server
PMIV_BasicParameter
(Vacuum)
PMIP_Server
PMIV_Thermal
(PML)
PMIV_Optical
The class hierarchy of the PMI interface is shown in Figure 3.1, p. 123. The
abstract base class PMI provides the basic facilities for all physical models. For
each category of materials, semiconductor, conductor or insulator, there is a class
derived from PMI (in the second column). For a semiconductor material, there
are several 7 aspects of its physics. Every aspect is described in a class, as shown
in the third column. For insulators and conductors, the physics are simpler. The
physics covered by each class is summarized below.
All the above classes are abstract and can not be instantiated. When one imple-
ments a material, one must derive from each of the above classes, and provide
a concrete implementation. For example, for the 4H-SiC material, the classes in
the last column of Figure 3.1, p. 123 are implemented and packed in the dynamic
library libSiC4H.so.
Since dynamic libraries has a C interface (instead of a C++ one), a creator function
with C-style name and calling convention, must accomany each concrete class in
the dynamic library. For example, the C function PMIS_SiC4H_BandStructure_Default
in the library libSiC4H.so is responsible for creating an instance of the class
GSS_SiC4H_BandStructure.
We shall describe the loading sequence of physical models, assuming the follow-
ing two commands appear in the input le to Genius.
# MESH commands
# ...
REGION Label=Substrate Material=Silicon
REGION Label=GOX Material=SiO2
#----------------
# ...
PMI Region=Substrate Type=Mobility Model=HP
PMI Region=Substrate Type=Avalanche Model=HP
The REGION commands are read in rst, together with the meshing commands.
After all the structure specication commands are read, the initial simulation sys-
tem is built. For the region Substrate, the default material models for silicon
are loaded. For the region GOX, the default models for SiO 2 are loaded.
After the simulation system is built, the rest of the commands, including those
PMI commands are executed sequentially. When the rst PMI command is ex-
ecuted, the region Substrate is looked up and found to be of material sili-
con. The dynamic library libSi.so is loaded. From the material name, the
model type Mobility, the model name HP, we assemble the creator function's
name PMIS_Si_Mob_HP. This creator function is called, which returns an object
instance of the class GSS_Si_Mob_HP. This GSS_Si_Mob_HP class, as a derived
class of PMIS_Mobility, contains routines for calculating carrier mobility and
velocity saturation.
When the Genius simulator assemble the Poisson and continuity equations set out
in Level 1 Drift-Diusion Equation, p. 1, material properties, such as doping
concentration and mole fraction are available only at each of the grid nodes. Many
derived physical quantities, such as carrier mobility and SRH recombination rate,
are evaluated at each mesh node as well. This is best illustrated with an example.
public:
double EgNarrow(const double &p, const double &n,
const double &Tl)
{
double Na = ReadDopingNa();
double Nd = ReadDopingNd();
double N = Na+Nd+1.0*std::pow(cm,-3);
double x = log(N/N0_BGN);
return V0_BGN*(x+sqrt(x*x+CON_BGN));
}
// ...
};
It is obvious that this few lines implements the Slotboom model of bandgap nar-
rowing
bgn total 2
= ln + ln total + bgn . (3.1)
2 ref ( ref )
In this simple model, neither the electron, hole concentration nor the lattice tem-
perature aects the bandgap narrowing. Therefore the arguments are ignored.
The model chiey relies on the doping concentration. The ReadDopingNa and
ReadDopingNd methods, inherited from the PMIS_Server class, returns the ac-
ceptor and donor concentrations at the present mesh node, respectively.
public:
};
It is clear that the "derivative" version of EgNarrow and nie are almost identical
to the "normal" version. In almost all situations, it is sucient to replace the scalar
type double with the class type AutoDScalar.
cd examples/Material
./configure.sh
Step 2 Enter the material directory and modify the source les as needed.
cd 4H-SiC
make
cp -R 4H-SiC 6H-SiC
Step 2 Replace the material name string in the all source les, with the new material
name, and rename the les.
cd 6H-SiC
make
Step 4 Copy the library le libSiC4H.so to $GENIUS_DIR/lib/, and edit the catalog
le $GENIUS_DIR/lib/material.def
SiC6H
{
property = Semiconductor
alias = 6HSiC
color = 0xffb6c1ff
}
Class References
The class reference presented here is a selected and adapted version of the classes
declared in the PMI development kit. Some macros are expanded and some inter-
nal details are omitted, so that this guide is easier to follow.
PMI_Server Class
Constructor.
Return the scalar value with the given name at the current node. An examples of
the scalar values at a node is the density of trap state.
PMIS_Server Class
Return the mole fraction x at the current node. Only used in compound semicon-
ductor with variable compositions.
Return the mole fraction x at the current node, with upper and lower limits.
Return the mole fraction y at the current node. Only used in compound semicon-
ductor with variable compositions.
Return the mole fraction y at the current node, with upper and lower limits.
PMIS_BasicParameter Class
PMIS_BandStructure Class
p hole concentration
n electron concentration
Tl lattice temperature
Tp hole temperature
Tn electron temperature
Return the electron current density at Schottky contacts. The argument Vb is the
electron barrier height.
Return the hole current density at Schottky contacts. The argument Vb is the
electron barrier height.
Return the band-to-band tunneling generation rate. The argument E is the magni-
tude of electric eld.
PMIS_Mobility
p hole concentration
n electron concentration
Tl lattice temperature
Tp hole temperature
Tn electron temperature
Return the electron mobility. The argument Ep and Et are the parallel and trans-
verse components of the electric eld, respectively.
Return the hole mobility. The argument Ep and Et are the parallel and transverse
components of the electric eld, respectively.
PMIS_Avalanche
Tl lattice temperature
Tp hole temperature
Tn electron temperature
Ep driving force of impact ionization (parallel electric eld).
Eg bandgap
Return the generation rate of hole-initiated impact ionization, calculate from the
electron temperature. Used in EBM simulation only.
PMIS_Trap
[[TODO]]
PMIS_Thermal
PMIS_Optical
The argument lambda is the wavelength, Eg the bandgap, and Tl the lattice tem-
perature.
PMII
empty
PMII_BasicParameter
PMII_Thermal
PMII_Optical
PMIC
empty
PMIC_BasicParameter
PMIC_Thermal
PMIC_Optical
Hooks
[[TODO]]
Python Interface
[[TODO]]
HTTP Frontend
[[TODO]]
[18] A.G. Chynoweth. Ionization rates for electron and holes in silicon. Physical
Review, 109(5):1537-1540, 1958.
[19] M. Valdinoci, D. Ventura, M.C. Vecchi, M. Rudan, G. Baccarani, F. Illien,
A. Stricker and L. Zullino. Impact-ionization in silicon at large operating
temperature. In International Conference on Simulation of Semiconductor
Processes and Devices, 1999.
[20] E.O. Kane. Zener tunneling in semiconductors. J. Phys. Chem. Solids,
12:181188, 1959.
[21] J. J. Liou. Modeling the Tunneling Current in Reverse-Biased p/n Junctions.
Solid-State Electronics, 33:971972, 1990.
[22] W. B. Joyce and R. W. Dixon. Analytic Approximation for the Fermi Energy
of an Ideal Fermi Gas. Appl. Phys. Lett., 31:354356, 1977.
[23] Yu Zhiping and R. W. Dutton. SEDAN III - A Generalized Electronic Mate-
rial Device Analysis Program. Technical Report, Stanford Electronics Lab-
oratory Technical Report, July 1985.
R Caughey-Thomas model 16
RAYTRACE command 112 GaAs-like 17
REFINE command 54 hyper-tangent model 17
REGION command 50 VSOURCE command 57
Material Parameter 122
X
S X.Mesh command 43
Shockley-Read-Hall recombination
see SRH recombination Y
SOLVE command 102 Y.MESH command 43
SPREAD command 47
SPREAD3D command 48 Z
SRH recombination 10 Z.MESH command 43
V
velocity saturation 16