POISSOLV,
A NUMERICAL SOLUTION OF
POISSON'S EQUATION FOR WINDOWS
by
Todd Alan Pressley
B.S., University of California, Irvine, 1987
A thesis submitted to the
Faculty of the Graduate School of the
University of Colorado at Denver
in partial fulfillment
of the requirements for the degree of
Master of Science
Electrical Engineering
1995
This thesis for the Master of Science
degree by
Todd Alan Pressley
has been approved
by
Hamid Fardi
Miloje Radenkovic
Pressley, Todd Alan (M.S., Electrical Engineering)
POISSOLV, a Numerical Solution of Poisson's Equation for Windows
Thesis directed by Associate Professor Hamid Fardi
ABSTRACT
This thesis determines a numerical solution to Poissons equation for a
semiconductor using a Microsoft Windows application. The solution
methodology is developed and expanded. The algorithm developed is valid for
both homojunction and heterojunction semiconductors. Extensive data is
collected and analyzed to justify the applications results.
This abstract accurately represents the content of the candidates thesis. I
recommend its publication.
m
Hamid Fardi
CONTENTS
Chapter
1. Introduction.......................................................1
2. Poisson's Equation for Semiconductor Devices......................3
3. Numerical Solution................................................5
4. POISSOLV, A Microsoft Windows Application........................13
5. Validation.......................................................33
6. Conclusion and Suggested Improvements............................46
References..........................................................48
tv
FIGURES
Figure
Figure 31 Grid Layout...........................................6
Figure 4.31 POISSOLV User Interface.............................15
Figure 4.41 POISSOLV Application Architecture...................16
Figure 4.5.11 ALGAAS Density of States...........................27
Figure 4.5.12 ALGAAS Energy Gap and Electron Affinity............28
Figure 4.5.13 ALGAAS Effective Mass.............................29
Figure 4.5.14 ALGAAS Intrinsic Carrier Concentration............30
Figure 4.5.15 ALGAAS Mobility...................................31
Figure 4.5.16 ALGAAS Permittivity...............................32
Figure 5.11 POISSON/POISSOLV Test 1 Carrier Concentrations.......34
Figure 5.12 POISSON / POISSOLV Test 1 Electric Field.............35
Figure 5.13 POISSON/POISSOLV Test 2 Carrier Concentrations.......36
Figure 5.14 POISSON/POISSOLV Test 2 Electric Field...............37
Figure 5.2.11 Depletion Test 1...................................39
Figure 5.2.12 Depletion Test 2...................................40
Figure 5.2.13 Depletion Test 3...................................41
Figure 5.2.21 Direct Replacement Test 1..........................43
Figure 5.2.22 Direct Replacement Test 2..........................44
v
Figure 5.2.23 Direct Replacement Test 3
vi
TABLES
Table
Table 3.11 Normalization Factors................................:.9
Table 5.2.11 Depletion Approximation Scenarios..................38
Table 5.2.12 Results............................................38
Table 5.2.21 Direct Replacement Tests...........................42
Table 5.2.22 Direct Replacement Results.........................42
vii
Introduction
This thesis continues the work started in POISSON [1]. The problem is
to correctly evaluate Poissons equation for a semiconductor for both
homojunctions and heterojunctions. While Poissons equation is linear in itself,
it is nontrivial to solve analytically except for a few carefully chosen cases.
This thesis describes the solution of Poisson's equation in one dimension
for a semiconductor. The equation is broken into increments and placed into a
matrix format. The new form of Poissons equation is then suitable for solution
on a computer system. Heterojunctions are then added by modifying key
equation elements. A heterojunction is formed by the joining of two dissimilar
semiconducting materials and is common in optoelectronics. The solution of the
new set of equations is still suitable for solution on a computer.
The application, POISSOLV, implements the algorithms described in the
first sections of this thesis. POISSOLV provides a menu driven interface to the
user for description of a semiconductor. POISSOLV also provides the common
material parameters for common semiconductor materials as part of its interface.
An application is also provided to calculate the material parameters for
AlxGai.xAs The user may then spend more time designing and less time typing
parameters.
After the application was written, an extensive validation was performed.
This includes comparison with the original FORTRAN application, POISSON,
comparison with analytical results, and assuring that the data reported from
POISSOLV is consistent within itself. The direct comparison was accomplished
1
by solving equivalent problems in the POISSOLV and POISSON applications.
Analytical results were optained by solving semiconductors using the depletion
approximation. The analysis of the results returned by POISSOLV was also
carried out. The results from POISSOLV must correctly represent the right
handside and lefthandside of Poissons equation or the solution is incorrect.
Applications are provided to perform the calculation required for a depletion
approximation and for checking the returned data against itself.
2
Poisson's Equation for Semiconductor Devices
Poisson's equation can be used to relate the potential,
impurities and carriers within a semiconductor's crystal structure at location x..
The donor doping concentration, N^x), and acceptor doping concentration,
Na(x), are used to modify the number of available electrons and holes in the
semiconductor. The hole concentration, p(x), and the electron concentration,
n(x), are modified by the presence of impurities. Poisson's equation for a
semiconductor in one dimension is:
_ p(x)
ck2 *,(*)'
(21)
where
p(x) = q( Nd (*) Na (x) + p(x) n(xj) (22 )
and
Â£s(X)=S0Â£r(X) O3)
Poisson's equation shows how the potential relates to the charge for any position
with the semiconductor.
The permittivity of the semiconductor, ss(x), may also vary with position
as different materials, heterojunctions, are sometimes used to modify the
behavior of a base substrate. This is common in laser diode applications. Rather
than using es(x) directly it is more convenient to work in terms of the relative
3
permittivity between semiconductors, sr(x), which is the multiplier to the
permittivity of free space, s0.
Given that p(x) and n(x) are not only a function of position but of Nd(x)
and Na(x), equation (21) is impossible to solve analytically except under
contrived or artificial circumstances. Therefore, a numerical solution is typically
sought in practice. The solution of Poissons equation is usually not interesting
in itself but is used to solve other semiconductor equations such as the current
equations for a transistor.
4
Numerical Solution
The numerical solution of equation (21) can be broken into two
processes. First, we must approximate the differential. Second, we must
develop an algorithm to determine the values of Nd, Na, p, and n which satisfy
the equation.
The first step in calculating a solution of equation (21) is to establish a
reference frame for the discrete steps used in the solution. The semiconductor
may be described as a series of points each of which has a set of material
parameters: hole mobility, electron mobility, permittivity, etc. We can then
calculate the terms in equation (21) at each grid point. We must also define
where the first and second differentials will be defined for
is shown in Figure 31. In the figure, we have substituted a general function,
f(N) in place of
Figure 31, we define a series of grid points, N, and a series of midpoints, M,
which are halfway between points N. For a grid point N, the value of f(N) is
assumed to be constant between Ml and M. This then gives a basis to calculate
the first differential f (M). The differences between points in the M and N series
are also defined as h(M) and h'(N) respectively. That is
h{M) = 1) and (31)
h(N) = f{N)f{N\). (32)
The functions h(M) and h'(N) are defined over the same regions as f(N) and
f(M). For purposes of notation, M and N are both in the range 1..L inclusive.
5
M1
f(N)
N
M
f(N+1)
N+1 NI+1
n 9 ( 1 O ( i o
f(IVl1) f(M) f(M+1)
Figure 01 Grid Layout
The numerical approximation of a differential comes from the definition
of a differential:
lim f'(x)=
4l0
f(x + Ax) f(x)
At
(33)
In the numerical approximation, we assume that a chosen Ax is small so as not to
change the calculated value. Therefore, equation (33) becomes:
f(M+l)f(M)
f'(A0 =
X(M)X(M\y
(34)
The second derivative is calculated in terms of the first derivative:
1
(35)
Poissons equation may now be written:
1
h'(A0
(N + \)~ (f>{N)
h(M)
h(Ml)
= ~^[Nd(N) Na(N) + p(N) *(AO] 
(36)
It is important to note that p, n, and are estimated at the main points N. The
derivatives of these quantities are then estimated at the points M.
6
We will now develop a solution method for equation (21). Reference [2]
provides a detailed method for solution. First, the equation is written as a
difference equation:
n(NMN 1) + y2(N)(/>(N) + ri(N)(N +1)
tUrr.rs (37)
s
= ^\Nd{N)Na^) + pmn{N)\
Comparing equations (36) and (37) the coefficients may be written:
1
Y,{N)=
h(Ml)h'(iV)
1
1 1
+
h'(AT)Lh(Ml) h (AO
, and
r3 =
l
h(M)h'(A0
(38)
(39)
(310)
These equations provide a linear system which may be solved numerically.
However, we have only one equation and the values of
unknown. Therefore, we must introduce:
p(N)= p(L)exp( $N)) and (311)
n(A0=n(T)exp(^A0). (312)
where p(L) and n(L) are known and defined at the boundaries.
The objective at this point is to formulate a method for solving equations
(37),(31 l),and (312) numerically. An iterative approach is ideally suited to
computers and is detailed in [2], These equations may be rewritten to support an
iterative methodology.
7
We rewrite for the holes
47 + p(L)exp(^0(#))^(AT)
= p(L)txV{^0(N))p(N), (313)
for the electrons
3i + n(L) exp( (f> (N))d
= n(L)exv(\N))n\N),
and for the potential
8p(N) Sn(N) + yAN)S(f>(N 1)
Â£ Â£
+y2(N)8(N) + y3(N)S0(N +1)
~^{Nd{N) Na{N) + p\N) n\N)\
Yl(N)^(N 1) y2{N)f{N) y3{N)j\N +1),
(315)
where p, n, and <>0 are initial values, defined by the user. In this program, these
values are estimated based on simple analytical calculation.
These equations may be written using matrix and vector notation as:
A(N)Sy(N 1) + B(N)Sy{N) + C(N)fy{N +1)
= F(N) for ( 316 )
2 < N < Ll with
P(N) ~ 8p{N)
y(N) = n{N) 8n(N)
J{N). MW.
where A, B, and C are N x N matrices and F is a vector of order N.
8
Normalization
In order to reduce the difference in magnitude between elements in the
matrices, the elements are normalized by the factors in Table 3.11.
Table 01 Normalization Factors
Variable Normalization
Potential,
Position
Hole & Electron Concentration nf
In Table 3.1 1, the superscript Base refers to the parameter from the base
material.
The normalized elements for the matrices and vectors defined by (316)
are:
^33 = Yl =
Q3 ~Yi>
Bn = 1,
A 3 =p(L)exp(fÂ£(A0),
^22 = 1,
B23=n(L)exp(^(N)),
^31 ~ SQ>>
B32 = Â£q ,
B33= Y2 3
Fi = ~P( 0 + P(L) exp(^(A0),
= /?(/') + (I)exp(^(A0), and
F3 =  n(V) + Nd(N) N.{N)] [yJW1) + yJ(M) + yJ(N+1)].
(3.11)
9
All other elements are 0.
Matrix Solution Method
A simple, bruteforce method for a solution to equations (3.11) is to
directly solve the resultant matrix for all points in the grid. This resulting matrix
is shown in (3.21). This requires a considerable amount of computational time
for any real system. Direct solution of the matrix is the most expensive of all of
the operations performed on equations (3.11) so it is also a reasonable goal to
optimize our solution of this matrix.
B( 2) C( 2) 0 0
A(3) B( 3) C(3)   0
0 ^(4) B(4) .. 0
0 .
0
0 i rT i 2) C(L
0 0 A(L 1) B(L
(3.21)
An interesting solution to this problem can be found through analysis of
the original equation. Assume equation (316) can be rewritten:
B'(N)Sy(N)+C'(N)Sy(N +1)= F'(N +1). (3.22 )
By substitution into equation (316), we arrive at the following relationships:
B'(N)= ( 3.23 )
C'(A0= ON),
F'(N)= F(N)A(N)B'(NiylF'(N1), and
( 3.24 )
(3.25 )
10
dy{ A0= B'W'FXNyBW'C'WWN +1).
(3.26)
Next, we observe that the boundaries 8y is zero because the end points are
determined by the external conditions. Therefore,
Using equations (3.23), (3.24), (3.25), and (3.27), B', C', andF are calculated
for all N. The modification, 8y, to the current estimate, y, may then be
calculated using equation (3.26). When the relationship
is satisfied for all N then we are done. Otherwise, the new values of y are saved
and the next iteration is started. Reference [2] contains a detailed explanation of
this algorithm.
Heteroj unction Modifications
The equations supporting heterojunctions can be found in [1] and [3],
Heterojunctions are added by modifying the matrix elements and by adding two
new symbols: Vv and Vc. These new symbols are the modifications to the
valence and conduction band energies respectively. The new grid constants, y4
and H, are also defined. These values are the relationships between adjacent
permittivity values of a heterojunction. The equations for the heterojunction
modifications are given by the following:
B'(2) = B(2\C'(2) = C(2), andF'(2) = F(2).
( 3.27 )
(3.28)
11
V = kT/
' Zr
Vc = {qXaqXb)IVt + HNcaINcb),
K = ~(qXa qXa)/Vt (.Ega Egb)!Vt + In(Nva / Nvb),
sr(N + l)er(Nl)
(3.31)
7 a =
(*,(A0)2
and
H = e
Base
s0 / Sr.
The subscripts a and b refer to the parameter for the semiconductors a and b
which make up the heterojunction. X is the physical linear coordinate. The
heterojunction contains two different materials a and b\ X* is x in the a half
of the junction and Xb is x in the b half.
The array elements are modified as follows:
^33 = Y\ ~ 7a>
Q3 = Yi + 7a>
Bu = p(L)exp(0(N) + Vv(N)),
B23 = n(L)exp(ij>(N) + VC(N)),
B3l = H, ( 3.32 )
B32 = H,
/r = p(N) + p(L)exp((N) + Vv(N)),
F2 = n{N) + n(L)exp(0(N) + Vc(N)), and
F3 = H(p(N)n(N) + Nd(N)~ Na(N))~...
12
POISSOLV, A Microsoft Windows Application
This chapter elaborates on the POISSOLV algorithm, the POISSOLV
application, and on the improvements made on the original POISSON software.
Differences Between POISSOLV and the Original POISSON Application
The application POISSOLV adds several features to the original
POISSON application, which makes it more powerful and userfriendly.
The power was increased using variable length grids and by reducing
repetitive calculations. POISSON supports a maximum grid size of 1000 grid
elements. POISSOLV is limited only by the amount of virtual memory that
Windows supports. Grids exceeding 10,000 elements have successfully been
solved using POISSOLV. Repetitive calculations were optimized. In POISSON,
the y factors were calculated for each iteration of the algorithm. These terms are
calculated only once in POISSOLVwhen the grid is defined.
Running the program has been simplified in four ways.
A runtime user interface was added. POISSON is a text file user
interface. All data is input into a formatted table and all output is ASCII.
POISSOLV provides a menu based interface and graphs the results if a solution
is reached.
Common semiconductor material parameters were added. The material
parameters for Si, Ge, GaAs, and AlGaAs are available from a menu selection
under POISSOLV. The user may also enter the material parameters manually
maintaining the method from POISSON.
13
A time measure for algorithm performance was added. When the plot
data is output to file, the length of time spent in solution is output with the plot
data. As with the original program, the maximum detected error is also output.
POISSOLV does not check the entire grid for convergence every iteration
through the algorithm. The first element to exceed the tolerance, starts a new
iteration. This saves many checks on each iteration. It does have the
disadvantage that the user cannot determine how much progress is being made by
the algorithm. The reported tolerance always being very close to the tolerance.
In order to implement these new features, the program was redesigned
and implemented in C++. The design of the algorithm and each of the new
features is described in the POISSOLV section below.
Optimizations
More significant digits are used for POISSOLVs value of electronic
charge (q). The value of 1.602e19 C is used rather than 1.6e19 C used in
POISSON.
User Interface
The original POISSON algorithm did not have a graphical user interface.
The goal behind the POISSOLV interface is to facilitate ease of use for an
engineering environment. The user simply accesses each menu in order until a
semiconductor is defined, Figure 4.31. Poissons equation for this
semiconductor is solved for by choosing the appropriate menu selection. When a
solution is reached, the user may investigate the graph of the material
parameters. The File menu allows the user to determine the internal workings of
14
the algorithm, as well as to save semiconductor definitions and results. If no
solution is reached, a popup window is displayed informing the user that no
solution is currently possible.
...' Poissolv r Poissolv,'
File Controls Grid Substrate Graph Help
Figure 01 POISSOLV User Interface
Design Components
POISSOLV is designed as two separate entities. The solution algorithm
is separate from the user interface. This allows future migration to new targets
15
with a minimal amount of impact on the algorithmic portion of the software.
Figure 4.41 shows the high level design of the POISSOLV system.
Figure 01 POISSOLV Application Architecture
Algorithm
The algorithm is implemented as described earlier in this document.
References [1], [3], and [4] were used to develop the method used in POISSOLV.
The application is written in C++ with no dependencies on compiler
manufacturer. This software may be easily ported to new systems. However,
16
due to the large data structures involved in this application there are many
references to huge and far structures. This is due to the DOS platform on which
the POISSOLV development was performed. Current trends in the computer
industry should allow the removal of these keywords in the future.
The Poissons equation solution algorithm must be initialized in six steps
before a solution will be possible. The algorithm provides a set of functions
which have the purpose of initializing the algorithm for solution.
The first step is the removal of any previous solutions. This step is
optional, but highly recommended. The routines RemoveDoping() and
RemoveGrid() assure that no definitions from previous runs are active.
RemoveDoping() removes all defined impurity definitions from the data
structures. RemoveGrid() removes all grid definitions from the data structures.
The algorithm is now ready for a semiconductor substrate to be defined.
The grid must be defined next. The function DefineGrid() describes to
the POISSOLV algorithm how the grid should be laid out. Each call defines a
set of grid elements at a specified spacing in microns.
The base substrate is then defined by calling DefineMaterial(). This
function is passed a value of 0 for the junction index. The junction index is used
to identify heterojunctions in future calls but the first at index 0 is the base
substrate. The base substrate is defined to be the right most (highest X) material
in a heterojunction structure. DefineMaterial() accepts all of the material
characteristics of a semiconductor.
The grid definition is solidified at this point. The material parameters
passed to DefineMaterialQ for the base substrate will now be used to normalize
17
algorithmic constants. The user specifies that the grid is complete by calling
GridComplete().
The semiconductor may now be doped. This is done by repetitively
calling DefineDoping(). A ptype material is defined by providing a positive
doping concentration and an ntype by providing a negative doping
concentration. If two doping profiles overlap, they will be added.
The last definition step is to define any heterojunctions. This is done by
calling DefineMaterial(). A new junction is defined for each call to
DefineMaterial() and the junctions must be built from the highest X position to
the lowest.
In order to solve the semiconductor defined, the doping definition must
be frozen. This is done by calling PrepareDoping(). This initializes the
constants of the doping algorithm and sets up for solution.
The semiconductor is then solved by calling solve_poisson(). This
function returns the status of the algorithm. The algorithm exports several
routines which provides access to the internal solution data of the algorithm:
NumLocationsO ~ Returns the number of grid locations defined
PositionsQ  Returns an array of X positions within the grid
Solutions()  Returns an array of solutions to Poisson's equation
DopingO Returns an array of doping concentrations
Permittivity() ~ Returns an array of permittivity definitions
18
Additional information about the functions is provided in the algorithm
files POIS.H and POIS.CPP.
User Interface
The user interface to POISSOLV was developed to prevent many of the
common mistakes made with the original POISSON algorithm. The various
selections of the user interface are defined below. Software and documentation
is available from Microsoft [5] which helps in the development of Windows
based applications.
File Menu
The File menu provides many of the basic features expected of a window
based application. Many of the items listed in this menu are standard within
Windows applications.
New: This item creates a new document. The current semiconductor is
thrown out and a new default definition is provided. The document title is set to
Poissolv.
Open: This menu item opens a previously saved POISSOLV Saved Data
file (.PSD extension). A new window is created which allows the user to
traverse the file system in search of a file to open. The user may also type in the
name of a file which is known to exist.
Save: This selection saves the current semiconductor in .PSD format.
The .PSD extension is added by default if no extension is provided.
19
Exit: This option exits the POISSOLV application.
Controls Menu
Iterations/Tolerance: The user may set the number of iterations and
tolerance of the solution with this option. When this option is selected, a dialog
box appears where the user may enter the data for maximum iterations and
minimum tolerance.
Grid Menu
Definition: This option creates a dialog box where the user can enter the
grid definitions desired. Each grid definition consists of a number of elements
and a distance between elements. The first element defined is location 0 which
has no delta. For example, if the first element defined is 100 x .01 then the total
length will be .99. The status of the defined grid is shown in the accumulation
variables # Grid Definitions and Total Length at the top of the dialog box.
Substrate
Base: This selection provides the user with a dialog box concerning the
base material of the semiconductor. The user may select from predefined
materials Si, Ge, GaAs, or AfGa^As. If the material desired is not in the pre
defined materials list, the user may enter in the base semiconductor parameters
manually. The parameters of interest are the electron and hole mobility, carrier
concentration in the conduction and valence bands, relative permittivity, intrinsic
carrier concentration, electron affinity, and the energy gap.
21
Heterojunctions: This item produces a dialog box which defines the
heterojunctions in the semiconductor. The user enters the desired heterojunction
locations in microns. The material parameters for each junction are displayed by
selecting the Param button next to the junction defined. The junctions will be
sorted in order from the largest X position to the smallest on exit from this
dialog. The material parameters for each heterojunction are very similar to the
base substrate dialog. The difference being that no intrinsic carrier concentration
is used and the junction number is displayed. A grading parameter is also
displayed in this dialog. The grade parameter tells POISSOLV how many grid
elements on each side of the heterojunction should be used to smooth from one
material to the new junction material. Also, recall that all junctions are defined
from the largest X location to the smallest with the base substrate at the largest X
locations.
Doping: The user specifies the doping of the substrate with this item.
The doping selection specifies what model to use for applying the impurities to
the semiconductor and the constraints to that model. The uniform model applies
the selected concentration evenly across the defined locations. The Gaussian
model applies the selected concentration at the peak of the distribution. The
S/PR and E/SD stand for Start/Projected Range and End/Standard Deviation.
Those before the slash apply to the uniform model and those behind to the
Gaussian model. The density operates as explained before with a negative value
representing a donor concentration and a positive value an acceptor
concentration. Confirmation of the positive/negative rule is shown in the final
22
column of the dialog with NType, PType, or None. None is displayed when the
concentration is 0.
Solve: This is the selection which causes the semiconductor to be solved.
A popup will be shown which provides the current iteration and the maximum
discovered error. When the maximum number of iterations is reached or when
the tolerance of the solution is within specification, the popup is erased. If a
solution is reached, a graph of all of the solution data is displayed.
Graph
Options: This selection provides the user a method for selecting the
portion of the graph which is of interest. By changing the data displayed or the
limits on the data, the graph will change. This menu item is only valid if a graph
is displayed and otherwise has no effect. Initially, the dialog box will display the
limits of the graph data. The tick spacing on the log scale may appear lopsided
but it is due to display aliasing. This can be corrected by switching to a smaller
range or by printing to a higher resolution device. The logarithmic scale shows
every factor of two increase from the base 10 exponent.
Help
About Poissolv: This option provides a dialog with version information.
Example Semiconductor Definition
Let us assume that we have a silicon diode design and that we wish to
calculate the electric field as a function of position. This example will walk
through a typical design and calculation. This example will use the HotKeys'
23
(F2, F3, etc.) which are listed next to the menu items that they represent. The
name of the menu selection will also be given. Values are updated by selecting
an item with the mouse or by tabbing to the item with the tab key. The desired
value is then entered from the keyboard. Results can then be saved by selecting
OK with the mouse or by hitting enter with the OK key selected. Values may be
discarded by selecting the Cancel key with the mouse or by hitting the tab key
until Cancel is selected and then hitting enter.
The first step is to set the tolerances for the algorithm. Under the
Controls menu, the item Iterations/Tolerance will display the desired dialog.
This may also be displayed by pressing ShiftF3. We are willing to wait for
accurate results so we will set the iterations to 25 and the tolerance to IE8.
The semiconductor we wish to define is a silicon diode using ion
implantation to form the junction. We start with a ptype substrate and then use
ion implantation to create the junction. We will follow the function keys and
input the information in order.
The grid comes first. F3 selects the grid definition menu. We would like
a 1 micron substrate and we would like to zoom in around the junction which
we'll set at .5 micron. Therefore, a grid with the following properties should
suffice. Enter a grid with .01 microns between elements for 41 elements
(remember that the first element is 0 so no delta will be applied). The next grid
will be higher resolution around the junction, so enter 200 elements with .001
microns between them. The final definition is 40 elements of .01 microns
between them.
24
The next to be defined is the base substrate. The base substrate is defined
by using the F4 key which opens the Substrate/Base menu. The base substrate
dialog will then be displayed. Silicon is easy to configure as the base substrate as
we can just select silicon (Si) from the material pull down inside the dialog.
The heterojunction dialog is displayed by the F5 key. This key is the
same as the Substrate/Heteroj unction menu selection. We do not have a
heterojunction in our diode so we will skip this dialog.
The final step in defining out diode is to specify the doping. This is done
by selecting the Substrate/Doping menu item. The F6 key has the same effect.
The doping dialog is displayed. We will enter a uniform doping from 0 to 1 for a
ptype substrate at a low doping level of 1015. We will use a Gaussian model to
approximate the ion implant. Using a projected range and standard deviation
table for phosphorus such as those shown in [6], we can see that a 600 keV dose
will put the projected range at .7 micron and result in a standard deviation of. 18
microns. The dose of this will be 1017 at the peak. Remember to enter a
negative number for the ptype concentration.
The F7 key solves the semiconductor we've defined. This is equivalent to
the Substrate/Solve menu selection. Our substrate will solve in about 5
iterations. The solution will be displayed in the blank portion of the POISSOLV
window. The graph will display the electron and hole concentrations as well as
the electric field. The F8 key (or Graph/Options menu) allows us to zoom into
the graph or to reset the ranges on the graph.
25
Material Parameters
AlxGaj.xAs parameters were calculated using an application, ALGAAS,
based on the equations in SEDAN III [7], Other material parameters were found
in [8], [6], and [9], AlxGa].xAs parameters were also verified using [10],
ALGAAS is a Microsoft DOS application. The syntax for ALGAAS can be
found by invoking it without any parameters.
AIxGai_xAs Parameters
The results of several ALGAAS sessions are shown in Figures 4.5.11 to
4.5.16. Figure 4.5.11 compares the density of states in the conduction and
valence bands relative to the A1 molar concentration. Figure 4.5.12 shows the
energy gap and electron affinity values versus A1 molar concentration. Figure
4.5.1 .3 shows how electron and hole effective masses change with A1 molar
contration. Figure 4.5.14 shows the change in intrinsic carrier concentration
with A1 molar concentration. Figure 4.5.15 plots the electron and hole
mobilities versus A1 molar concentration. This plot shows the definite change in
electron mobility near .4 molar for AI. Figure 4.5.16 shows the permittivity of
AkGaixAs.
26
Density of States
Figure 01 ALGAAS Density of States
27
4.5
4
3.5
2.5
2
1.5
1
0.5
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
A1 Molar Concentration
K Energy Gap X Electron Affinity I
Energy Gap
Electron Affinity
x
X1 X X X  X s/
X X X
1: ;.a
K w x X
 X X
x E G.
Figure 02 ALGAAS Energy Gap and Electron Affinity
28
Effective Mass
x Free
Electron
Mass
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
X x X
A
p
X X  V* w
X X X
X  X n
s
X X X X
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Al Molar Concentration
^ Electron Effect rve Mass Hole Effective Mass
Figure 03 ALGA AS Effective Mass
29
Intrinsic Carrier Concentration
l.OE+7
1.0E+6
1.0E+5
cm'3 1.0E+4
1.0E+3
1.0E+2
1.0E+1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
a
m
a
a
A1 Molar Concentration
13 Intrinsic Carrier Concentration
Figure 04 ALGAAS Intrinsic Carrier Concentration
30
Mobility
cm
9000
8000
7000
6000
5000
4000
3000
2000
1000
0
V
X
V
n X
X X P X X  _ S . . .5*
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
A1 Molar Concentration
X Electron Mobility
X Hole Mobility
Figure 05 ALGAAS Mobility
31
8.854E14 F/cm
Permittivity
14
13
12
11
10
9
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
a..
Â£3 _ ' is
~^n _ n
A1 Molar Concentration
05 Permittivity
Figure 06 ALGAAS Permittivity
32
Validation
Several methods have been used to validate the results of POISSOLV.
POISSOLV has been compared against the original algorithm, POISSON. Two
analytical methods have also been used. The depletion approximation has been
used to calculate the depletion width. This was compared against the width
shown in the plot data. Direct replacement in Poisson's equation was also used
to check the output from POISSOLV.
Tests with POISSON
Two tests were run with POISSON. A laser diode was created for the
first test. The second test was a simple PN junction with extra grid points
defined in the area of the junction. Figures 5.11 to 5.14 superimpose the
POISSON and POISSOLV results. Two different semiconductors were solved.
Figure 5.11 shows the carrier concentration results of the first semiconductor.
Figure 5.13 shows the carrier concentration results of the second semiconductor.
Figure 5.12 shows the electric field results of the first semiconductor. Figure
5.14 shows the electric field results of the second semiconductor. A common
feature of all of these graphs is that the POISSOLV results map along the same
curves as the POISSON resultsalthough different points are plotted by each
algorithm.
33
POISSON / POISSOLV Test 1 Carrier Concentrations
3
cm
1.0E+18
1.0EM7
1.0E+16
1.0E+15
l.OE+14
1.0E+13
1.0E+12
l.OEcll
1.0E+10
1.0E+9
1.0E+8
1.0E+7
1.0E+6
1.0E+5
1.0E+4
1.0E+3
1.0E+2
1.0E+1
1.0E+0
1.0E1
I.OE2
1.0E3
1.0E4
1.0E5
1.0E6
1.0E7
1.0E8
1.0E9
1.0E10
10.0E12
I0.0E13
~rz_
kaJ
0 2 4 6 8 10
micron
H POISSON n %% POISSON p X POISSOLV n X POISSOLV p
Figure 01 POISSON/POISSOLV Test 1 Carrier Concentrations
34
POISSON / POISSOLV Test 1 Electric Field
V 80000
/
micron
40000
0
40000
80000
120000
160000
0 2 4 6 8 10
micron
R X X
X J X xt X !r.
j t X
it n i
X X *
' i = ! i 1 !
POISSON Electric Field
POISSOLV Electric Field
Figure 02 POISSON / POISSOLV Test 1 Electric Field
35
POISSON / POISSOLV Test 2 Carrier Concentrations
Figure 03 POISSON/POISSOLV Test 2 Carrier Concentrations
36
POISSON / POISSOLV Test 2 Electric Field
o
V
' 1000
micron
2000
3000
4000
5000
6000
7000
8000
012345678
______________________ micron
POISSON Electric Field X POISSOLV Electric Field
y < r
1 J a w. i
X K a i
a B i 1
X )
I '
1 i ! j t i j
Figure 04 POISSON/POISSOLV Test 2 Electric Field
Analytical Results
Depletion Region Width
We can calculate the width of the depletion region of a PN homojunction
as described in [8], Using the depletion approximation, the width of the
depletion region is given by:
d = J 2
skT
V
i+n.
( 5.2.11 )
dJ
37
POISSOLV was run with the values provided in Table 5.2.11. A
comparison of the results is given in Table 5.2.12. All doping concentrations
use the uniform doping model. Figures 5.2.11 to 5.2.13 show the results
obtained from POISSOLV for tests 1,2, and 3. The graphs show the electron
and hole concentrations, as well as, the electric field results from POISSOLV.
The dark vertical bars show the estimated depletion region.
Table 01 Deplel ion Approximation Scenarios
Test Material Dopant Dopant
1 Si, 1.5 pm B, lxlOi5, 01 pm P, 5xl016, 11.5pm
2 Ge, 2 pm B, lxlO16, 0.7pm P, 7x1014, ,7.9pm
n J Si, 1.0 pm B, lxlO17, 0.8pm P, 5xl016, .81.0pm
Table 02 Results
Test POISSOLV Calculated
Estimated between using the depletion
vertical lines on graph approximation
1 .88 pm .94 pm
2 .88 pm .81 pm
3 .22 pm ,18 pm
38
Depletion Test 1
V/micron
6000
4000
2000
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
20000
22000
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.
! ! ! i
i 1 i i /
^ Lp i I / b
1 / f'
1/ (
1 ''vl N/ l
I
1 S
n ^ rvx
I \\
r 1 
! i 1 t i
! ! 1 j { I
6
1.0E+17
1.0E+16
1.0E+15
1.0E+14
1.0E+13
1.0E+12
1.0E+11
1.0E+10
1.0E+9
1.0E+8
1.0E+7
1.0E+6
1.0E+5
1.0E+4
1.0E+3
6
@ ElectricField Electrons
Holes
3
cm
Figure 01 Depletion Test 1
39
Depletion Test 2
V/micron
1.0E+17
1.0E+16
1.0E+15
1.0E+14
1.0E+13
1.0E+12
1.0E+11
1.0E+10
3
cm
Figure 02 Depletion Test 2
40
Depletion Test 3
V/micron
30000
20000
10000
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
100000
110000
cm
3
0 0.2 0.4 0.6 U.8 1
: 1 1 \ /
1 1 j \ 1 /
j 1 1 1 / V /
! A V / /
i * k \ / /
I \ \f /
i \ H /
j \ A /....
! * l\j
1 V A
i If \
r \
i n J i \ P
: 1 ! ' i
0 0.2 0.4 0.6 0.8 1
1.0E+17
1.0E+16
1.0E+15
1.0E+14
1.0E+I3
1.0E+12
1.0E+11
1.0E+10
1.0E+9
1.0E+8
1.0E+7
1.0E+6
1.0E+5
1.0E+4
1.0E+3
Electric Field
Electrons
Holes
Figure 03 Depletion Test 3
Direct Replacement in Poisson's Equation
These tests utilize the SOLCHKR application. This application is run on
a plot data file (.PPD). The output from this file shows each grid location and
the accumulated worst match. Table 5.2.21 shows all of the tests. Table 5.2.22
shows the test results. The results obtained from POISSOLV for tests 1, 2, and 3
are shown in Figures 5.2.21 to 5.2.23, respectively. These graphs show the
electron and hole concentrations, as well as, the electric field results from
POISSOLV. Table 5.2.22 shows the results of recalculating Poissons equation
using the results graphed in Figures 5.2.21 to 5.2.23. The worst match is the
worst mismatch for all grid points. Where the mismatch is the calculated
41
potential minus the potential returned from POISSOLY divided by the potential
returned by POISSOLY.
Table 01 B irect Replacement Tests
Test,File Material Dopant Dopant
1,DR1 Si, 1 pm B, 2xl015, P, 4xl016,
1001 elements 0.8pm .81.5pm
2,DR2 GaAs, 116 pm Ga, lxlO14, As, 7xl013,
2901 elements 03 5 pm 35116pm
3,DR3 AlGaAs 16 pm Ga, lxlO13, As, 5xl012,
1601 elements 06pm 616pm
Table 02 Direct Replacement Results
Test Worst Match
1 .0063
2 .046
3 .0073
When using the SOLCHKR application, it is important to keep the size of
the substrate nearly the size of the depletion region and to avoid over doping. If
the substrate is defined too large, the data in the plot file does not have enough
significant digits to allow SOLCHKR to calculate the second derivative outside
of the depletion region. Over doping causes inaccuracies in the equations used in
POISSOLY.
42
Direct Replacement Test 1
V/micron
3
cm
4000
2000
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
20000
22000
24000
0 0.2 0.4 0.6 0.8 1
1.0E+17
1.0E+16
1.0E+15
1.0E+14
1.0E+13
1.0E+12
1.0E+11
1.0E+10
1.0E+9
1.0E+8
1.0E+7
1.0E+6
1.0E+5
1.0E+4
1.0E+3
@ Electric Field @ Electrons Â£ Holes
micron
Figure 01 Direct Replacement Test 1
43
Direct Replacement Test 2
V/micron
cm
3
1.0E+12
1.0E+11
1.0E+10
1.0E+9
1.0E+8
1.0E+7
1.0E+6
1.0E+5
1.0E+4
1.0E+3
1.0E+2
1.0E+1
1.0E+0
0 20 40 60 80 100 120
0 Electric Field ^ Electrons 9 Holes
micron
Figure 02 Direct Replacement Test 2
44
Direct Replacement Test 3
V/micron
3
cm
Figure 03 Direct Replacement Test 3
Conclusion and Suggested Improvements
There is work left to be done with this algorithm. The algorithm does not
handle an applied bias. A method for automatic validation could also be added
to constantly double check the results. Discontinuous doping is handled
gracefully by the algorithm but it cannot solve a semiconductor defined in this
manner. A further improvement would be to solve the semiconductor for the
intrinsic case.
Applied Bias
The solution is made using no applied bias. A menu could be added
which would allow the user to enter a voltage to be applied to the substrate. The
modifications to the algorithm would be minimal, as the applied bias is only a
modification to the end point conditions.
Improved Automated Validation
The algorithm provides no justification on completion. As an optional
test mode, the algorithm could be modified to apply a sanity check such as
SOLCHKR to its output. This would provide immediate feedback on the results
of the algorithm and perhaps provide additional insight as to possible causes of
solution failure.
Holes in Doping Solution
The algorithm does not solve if there are missing doping concentrations
within the doping definition. For example, if the original design used 100 grid
elements at .01 spacing and a PN junction is defined such that the ptype ends at
46
.5 and the ntype begins at .51, then just changing the grid to 1000 grid elements
at .001 spacing results in a grid with a hole in it. The proper grid selection is to
use .5 for the end of the ptype and .501 for the beginning of the ntype region.
Either the initial conditions or the algorithm could be changed to place
the intrinsic carriers into the algorithm or the doping menu could be modified to
refuse a doping definition with holes.
Intrinsic Solution
Without doping, the initial carrier concentrations cannot be estimated.
The algorithm assumes that all doping atoms are ionized and that the doping ions
exceed the intrinsic carrier concentrations such that the intrinsic carriers can be
ignored. In grid locations where no doping is applied, the carrier concentrations
are not initialized and the algorithm will not converge.
Conclusions
Improvements aside, this algorithm may be used to calculate the electric
field by coordinate for a semiconductor. These results may then be applied to
other algorithms to solve additional components of a semiconductor. The
algorithm provides accurate results in a reasonable amount of time. The
application is based on a platform that is readily available in the university and
private sectors. In this way, this application is a success.
47
CO
References
1. Fardi, Hamid. "POISSON", an unpublished Poisson's Equation
application in FORTRAN by Hamid Fardi.
2. Kurata, Mamoru. Numerical Analysis for Semiconductor Devices.
Massachusetts: Lexington Book, 1982.
Fardi, Hamid. The Use of Simulation Techniques for the Measurement
of Semiconductor Parameters. University of Colorado, Boulder: 1986.
4. Vlach, Jiri and Kishore Singhal. Computer Methods for Circuit Analysis
and Design, 2nd Ed. New York: Van Nostrand Reinhold, 1994.
5. Win31 SDK Programmers Reference. Microsoft Corporation.
6. Muller, Richard S. and Theodore I. Kamins. Device Electronics for
Integrated Circuits, 2nd Ed. New York: John Wiley & Sons, 1986.
7. Dutton, R. W. SEDAN IIIA Generalized Electronic Material Device
Analysis Program. Stanford University, 1989.
8. Streetman, Ben G. Solid State Electronic Devices, 2nd Ed. New Jersey.
PrenticeHall, 1980.
9. CRC Handbook of Chemistry and Physics, 66th Ed. Florida: CRC Press,
1985.
10. Lundstrom, Mark S. and Robert John Schuelke. Numerical Analysis of
Heterostructure Semiconductor Devices. IEEE Transactions on
Electron Devices, Vol. ED30, No. 9, September 1983. pp 11511158
48
