Use of Standard Numerical Partial Differential Equation Solver for by vxj14228

VIEWS: 0 PAGES: 92

									 Use of Standard Numerical Partial Differential Equation
       Solver for Modelling Semiconductor Devices


                             By


                 Mr Kok Han Melvin LIM




    The School of Information Technology and Electrical
                       Engineering
               The University of Queensland

Submitted for the degree of Bachelor of Engineering (Honours)
           in the division of Electrical Engineering

                     29th October 2003
                                                          Mr Kok Han Melvin LIM
                                                                2/52 Greenlaw Street
                                                              Indooroopilly, Brisbane
                                                                QLD 4068, Australia
27th October 2003




Head
School of Information Technology and Electrical Engineering
The University of Queensland
St Lucia QLD 4072


Dear Professor Kaplan


In accordance with the requirements of the Degree of Bachelor of Engineering
(Honours) in the school of Information Technology and Electrical Engineering, I
submit the following thesis entitled


 “Use of Standard Numerical Partial Differential Equation Solver for Modelling
                              Semiconductor Devices”.


This thesis was performed under the supervision of Associate Professor Y.T. Yeow. I
declare that the work submitted in this thesis is my own, except as acknowledged in
the test and footnotes, and has not been previously submitted for a degree at The
University of Queensland or any other institution.


Yours sincerely


__________________
Mr Kok Han Melvin LIM
   Use of Standard Numerical Partial Differential Equation
         Solver for Modelling Semiconductor Devices
                                            By
                                Kok Han Melvin LIM

                                         Abstract
A typical undergraduate course in semiconductor devices covers carrier diffusion,
drift and recombination which lead to the carrier continuity equations. The two carrier
continuity equations together with Poisson equation form the basis for the description
of all semiconductor devices. The complexity of these equations results in many
simplifying assumptions being made to specific device so as to arrive at analytical
solutions in one dimension. Students tend to consider each device in its own
watertight compartment thereby creating an impression that the study of
semiconductor devices involves a large number of unrelated equations.


In this project the software FlexPDE is used to solve the semiconductor equations
directly in two dimensions and without any device specific simplifications. The output
of the software can be used to provide two or three dimensional plots of the carrier
concentrations and potential of the device being modeled as well terminal electrical
characteristics of the device. This will allow students to concentrate on the important
features of a device on the carrier concentrations, potential and field distribution of a
more realistic device.


Specifically the software was used to model applicable to the bipolar junction
transistor (BJT) as a mean to study the suitability of this software for the purpose
described. The results of the investigation indicate that while the software can indeed
solve the set of semiconductor equations successfully, the numerical solution take
excessively long time to reach a solution. This is despite of the fact that the continuity
equations have been modified to use the quasi-Fermi levels as the dependent variables
instead of the carrier concentrations.


The result that was obtained from FlexPDE shows that the simulation results are able
to reflect the properties of a BJT. This in turn will fulfill the purpose of this thesis.


                                              i
                                Acknowledgments
I wish to express my sincere appreciation to my lecturer supervisor, Associate
Professor Y.T. Yeow for his patience, advice and the weekly meetings that have
allowed me to carry through this project. Associate Professor Y.T. Yeow’s keen
personal interest in the semiconductor industry has influence me further on my
understanding of semiconductor devices.


I thank my parents for their love and encouragement throughout my education in The
University of Queensland. Lastly, I am grateful to Mr Yew Sheng Tony LIM for his
generosity in allowing me to run the simulation program on his computer system for
the duration of this project.




                                          ii
                                     Table of Contents
Abstract……………………………………………………………………………i

Acknowledgements………………………………………………………………..ii

List of Figures……………………………………………………………………..v

List of Tables……………………………………………………………………...v


Chapter 1
INTRODUCTION


      1.1 Purpose of this thesis…………………………………………………1
      1.2 Organization of this thesis report……………………………………..2


Chapter 2
WHAT IS BIPOLAR JUNCTION TRANSISTOR


      2.1 What is bipolar junction transistor.......................................................3
      2.2 Bipolar junction transistor in equilibrium……………………………5
      2.3 The basic operation of Bipolar Junction Transistor (Active Mode)….5
      2.4 Related formula and parameter………………………………………8
      2.5 The contiunity equations and poisson equation……………………...9
      2.6 Characteristics of bipolar junction transistor………………………...10


Chapter 3
What IS FLEXPDE


      3.1 What is FlexPDE..................................................................................14
      3.2 Capabilities of FlexPDE……………………………………………...15
      3.3 Modelling of a Bipolar Junction Transistor…………………………..15
      3.4 Results are obtained through 2 Stages………………………………..20
                3.4.1 Stage 1………………………………………………………21
                3.4.2 Stage 2………………………………………………………23




                                                     iii
      3.5 Problems Encounter………………………………………………….24
            3.5.1 Problems in stage 1………………………………………...24
            3.5.2 Problems in stage 2………………………………………...27


Chapter 4
SIMULATION RESULTS


      4.1 Simulation results…………………………………………………….29
      4.2 Bipolar Junction Transistor in Equilibrium…………………………..29
      4.3 Bipolar Junction Transistor in Active mode………………………….35


Chapter 5
CONCLUSION


      5.1 Conclusion……………………………………………………………42


Appendixes……………………………………………………………………….43
References………………………………………………………………………...84




                                 iv
List of Tables
Chapter 4
4-1………………………………………………………………………………..29


List of Figures


Chapter 2
2-1 ……………………………………………………………………………….. 3
2-2 ……………………………………………………………………………….. 4
2-3 ………………………………………………………………………………..4
2-4 ………………………………………………………………………………..5
2-5 ………………………………………………………………………………..6
2-6 ………………………………………………………………………………..6
2-7 ………………………………………………………………………………..7
2-8 ………………………………………………………………………………..8
2-9 ………………………………………………………………………………..10
2-10 ………………………………………………………………………………..12
2-11 ………………………………………………………………………………..13


Chapter 3
3-1………………………………………………………………………………..20
3-2………………………………………………………………………………..22
3-3………………………………………………………………………………..22
3-4………………………………………………………………………………..23
3-5………………………………………………………………………………..24
3-6………………………………………………………………………………..25
3-7………………………………………………………………………………..26


Chapter 4
4-1………………………………………………………………………………..30
4-2………………………………………………………………………………..30
4-3………………………………………………………………………………..31
4-4………………………………………………………………………………..32


                   v
4-5………………………………………………………………………………..32
4-6………………………………………………………………………………..33
4-7………………………………………………………………………………..33
4-8………………………………………………………………………………..34
4-9………………………………………………………………………………..35
4-10….…………………………………………………………………………...36
4-11………………………………………………………………………………37
4-12………………………………………………………………………………38
4-13………………………………………………………………………………39
4-14………………………………………………………………………………40
4-15………………………………………………………………………………41




                    vi
                                                                    Chapter 1: Introduction




In 1947, the invention of a tiny electronic device called a transistor sparked a
technological revolution that forever changed the face of technology. It is designed as
a miniaturized replacement for the vacuum tube, the transistor and its direct
descendant, the integrated circuit, gave birth to the semiconductor industry, paving the
way for the development for the portable, electronic products ranging from cardiac
pacemakers to PCs and cellular phones.




1.1 Purpose of this thesis

Semiconductor device physics course for undergraduate starts with the establishment
of the physics and mathematics of carrier diffusion, drift and recombination which
leads to the carrier continuity equations. The two carrier continuity equations together
with the Poisson equation form the basis for the description of all semiconductor
devices. However, because of the complexity of these equations, many simplifying
assumptions specific to each device type have to be made in order to arrive at
analytical solutions in one dimension.


While these solutions are very useful in highlighting the important controlling
parameters for each device, their use are often limited in terms of either the physical
region of the device or the range of external bias. This is particularly so for small
dimension very large scale integration devices where two and three dimensional
physics becomes important. From lecturers’ experience, vast amount of effort and
time has to be devoted to the development of these analytical solutions as to eclipse
the operational principles of the device and the associated simplifying assumptions.
Because a solution is specific to a particular device, there is also the tendency for
students to consider each device in its own watertight compartment, creating an
impression that the study of semiconductor devices involves a large number of
unrelated equations.




                                           1
                                                                       Chapter 1: Introduction


The objective of this thesis is to teach students on Semiconductor Device Physics
using PC based Two Dimensional Numerical Solver which will removes the problems
stated above with regard to analytical solution and at the same time provides two
dimensional solutions that are much better description of real devices. Students can
then concentrate on the important features of a device with the appropriate two or
three dimensional plots visualizing the carrier concentrations, potential and field
distribution within what is a more realistic device.


By starting from the same three equations (The two carrier continuity equations and
Poisson equation), this approach emphasizes that all devices are based on the same
devices physics, only the device structures and boundary conditions are different.


1.2 Organization of the thesis report

This report is organized in five chapters and several appendices. Chapter 1 gives an
overall view of this report and explains the purpose of this thesis.


Chapter 2 gives you a background of Bipolar Junction Transistor (BJT). The
characteristic of the BJT will be described here and how continuity and Poisson
equations influence the behavior of the BJT.


Chapter 3 gives an overview of the general purpose software, FlexPDE 3, that we are
using to simulate the behavior of a BJT. Its capability and the reasons for the use of
this software will be explained. The problems that arise from using this software will
also be discussed here.

Chapter 4 will illustrate the different models and results that were generated from the
software FlexPDE 3. The results will be analyzed and discussed here.


Chapter 5 draws on the observations made in this report and states the conclusion. In
addition, it suggests areas in which future work can be carried out.




                                            2
                                               Chapter 2: What is bipolar junction transistor




This chapter will give a brief introduction on the history of Bipolar Junction
Transistor (BJT). The characteristic and the background of the BJT will be described
here and how continuity and Poisson equations influence the behavior of the BJT.



2.1 What is Bipolar Junction Transistor?


Bipolar Junction Transistor was invented back in 1947 by Shockley, Bardeen and
Brattain. This is shown in Figure 2-1.




                    Figure: 2-1



A Bipolar Junction Transistor (BJT), is a type of transistor, an amplifying or
switching device constructed of doped semiconductor. A bipolar transistor is a
sandwich of differently doped sections, either NPN or PNP. The three layers of the
BJT are conventionally called the Collector, Base and Emitter. The reasons for these
names will become clear once we understand how the transistor works.




                                         3
                                                  Chapter 2: What is bipolar junction transistor


Figure 2-2 shows the bipolar transistor on silicon substrate.




Figure: 2-2




                                 Figure: 2-3

The center section is called the Base (B)of the transistor. By varying the current
between the base and one terminal called the Emitter (E), one can vary the current
flow between the emitter and a third terminal known as the Collector (C), causing
amplification of the signal at that terminal. BJTs are usually characterised as current
amplifiers. For simplicity, the rest of the thesis description of the BJT will be based
on the NPN variety. Conceptually, one can understand a bipolar transistor as two
diodes placed back to back.




                                           4
                                                  Chapter 2: What is bipolar junction transistor


2.2 Bipolar Junction Transistor in Equilibrium




                              Depletion
                               Region


             Figure: 2-4

Figure 2-4 shows the BJT in equilibrium state. It shows the energy level in NPN
transistor when no voltage is applied. In each of the N-type layers, conduction can
take place by the free movement of electrons in the conduction band. In the P-type
layer, conduction can take place by the movement of the free holes in the valance
band. Since there are no voltage applied, space charge/depletion regions are form at
both the emitter-base region as well as base-collector region and there will be no
charge moving from one layer to another.




2.3 The basic operation of Bipolar Junction Transistor (Active Mode)

In normal operation, the emitter-base junction is forward biased and the base-collector
junction is reverse biased.

When a reverse bias voltage is applied at the base-collector, typically a few volts or as
long as it does not blow up the transistor, the depletion region at the base-collector
widens. This is shown in figure 2-5.




                                           5
                                                  Chapter 2: What is bipolar junction transistor




                                               Depletion
                                               region
                                               widen




             Figure: 2-5

The reason why the depletion region widens is because the number of positive ions in
the depletion region of the n-type material, Collector, increase due to the large
number of free electrons drawn to the positive potential of the applied voltage. For
similar reasons, the number of negative ions will increase in the p-type material, Base.

When a very small forward bias voltage is applied at the emitter-base, typically 0.5
volt to 1 volt, the depletion region between the Emitter and Base is reduce. This is
shown in figure 2-6.




                Depletion
                region
                reduce




             Figure: 2-6




                                           6
                                                 Chapter 2: What is bipolar junction transistor


The reason why the depletion region is reduced is because the forward bias potential
will force the electrons in the Emitter and holes in the Base to recombine with the ions
near the boundary of the Emitter and Base.

When the electrons from the Emitter moves into the Base region, this will setup the
current flow across the emitter-base boundary. The electrons that get to the Base
region can respond to the attractive force from the positively-biased Collector region.
This result in the electrons moving swiftly towards the Collector and cross into the
Collector region. Therefore the emitter-collector current magnitude is set by the
chosen emitter-base voltage that is applied.

Most of the free electrons will move from the Emitter to Collector through the Base
but some of the free electrons will recombine with the holes in the Base. This is
shown in figure 2-7. In a practical BJT, about 1% of the free electrons recombined in
the Base region. Base current Ib is about 100 times smaller than the Emitter current
Ie.




                   Some
                 Electrons
                Recombine




             Figure: 2-7




                                           7
                                                   Chapter 2: What is bipolar junction transistor




  Figure: 2-8

From figure 2-8, it shows the carrier concentration profiles on emitter, base and
collectorr. It also shows the depletion width that is formed at the emitter-base and
base-collector boundary. Wbn shows the “neutral” of the base region and Wb shows
the physical base width.

2.4 Related formula and parameters

The transport factor, α , is defined as the ratio of the collector and emitter current is
given by: α =Ic/Ie.

The current gain, β , is defined as the ration of the collector and base current and is
given by: β =Ic/Ib= α /(1- α ).


The emitter efficiency, γ , is defined as the ratio of the electron current in the emitter,
to the sum of electron and hole current diffusing across the base-emitter junction is
given by: γ = I e,n /( I e,n + I e, p )




                                            8
                                                    Chapter 2: What is bipolar junction transistor


The base transport factor, α T , is the ratio of the current due to electrons injected in
the collector, to the current due to electrons injected in the base is given by:
αT = (I e + I b ) / I e

The base transport factor, current gain and emitter efficiency is related by:
β = α T γ /(1 − α T γ )




2.5 The continuity equations and poisson equation

By taking hole concentration as “p”, electron concentration as “n” and the potential as
“v”, as the 3 independent variables of any semiconductor device, the steady state
equations for modelling the BJT device is based on carrier diffusion and drift, and
Shockley-Read-Hall carrier recombination physics are the following.

Electrons continuity equation

div ( nx * mun * ( − grad (v)) + dfn * grad ( n)) = ( pn − ni ) /[Tp (n + n1) + Tn ( p + p1)]


Hole continuity equation


div (− px * mup * ( grad (v )) + dfp * grad ( p )) = ( pn − ni ) /[Tp (n + n1) + Tn ( p + p1)]


Poisson equation


div (ep * grad (v)) = − q ( p − n + ND − NA)

where all quantities have their usual meaning in semiconductor physics.

Carrier continuity equations are equations that states that the current concentration
may vary with time only due to generation-recombination processes or current flow
that is nonuniform spatially. The poisson equation is the fundamental relationship
defining potential and electric field distribution in semiconductor. These equations
together with the necessary boundary conditions describe the behaviour of any
semiconductor device.


                                             9
                                                  Chapter 2: What is bipolar junction transistor




2.6 Characteristics of bipolar junction transistor

Plot of β as a function of collector current is shown in figure 2-9.




         Figure: 2-9

In an ideal BJT, it doesn’t matter whether collector current is low or high, β should
be at its maximum. But in practical, at low collector current level, Jrec the
recombination current is a larger fraction of the total emitter current Je and because of
this reason β is low when Ic is low. As Ic increase, JnE increases more rapidly than Jrec
and β increases. This is shown in figure 2-9.


But at high collector current β actually decrease with increasing Ic. There are a few
reasons for the decrease in β .


Reason 1: High level injection
This increases the hole concentration in the base and thus leads to higher injection of
holes.

Reason 2: Emitter crowding
         At high current level, the base lateral resistance causes an ohmic voltage



                                           10
                                                  Chapter 2: What is bipolar junction transistor


drop between the base contact and the centre of the base region. Reduction in the
emitter-base voltage at this region reduces emitter injection. The effect is reflected as
emitter injection being crowded towards the emitter.

Reason 3: Kirk effect or base stretching effect
         At high current level, the injected electrons that reach the collector-base
junction is sufficiently high, it has the effect of increasing the net charge density of
the depletion region of the base and reduce the depletion region of the collector. This
leads to a change in the widths of the two halves of this depletion region with a
reduction of the width of the depletion region of the base. It results in the neutral base
width increases thus a reduction in transport factor and also a reduction of β .




Base Width Modulation or Early Effect


As the voltages applied to the base-emitter and base-collector junctions are changed,
the depletion layer widths and the quasi-neutral regions vary as well. This causes the
collector current to vary with the collector-emitter voltage as shown in figure 2-10.




                Figure: 2-10




                                           11
                                                  Chapter 2: What is bipolar junction transistor


A variation of the base-collector voltage results in a variation of the quasi-neutral
width in the base. The gradient of the minority-carrier density in the base therefore
changes, yielding an increased collector current as the collector-base current is
increased. This effect is referred to as the Early effect. The Early effect is observed as
an increase in the collector current with increasing collector-emitter voltage as
illustrated with figure 2-11.




         Figure: 2-11


The Early voltage, VA, is obtained by drawing a line tangential to the transistor I-V
characteristic at the point of interest. The Early voltage equals the horizontal distance
between the point chosen on the I-V characteristics and the intersection between the
tangential line and the horizontal axis. It is indicated on the figure by the horizontal
arrow.


The change of the collector current when changing the collector-emitter voltage is
primarily due to the variation of the base-collector voltage, since the base-emitter
junction is forward biased and a constant base current is applied. The collector current


                                           12
                                                 Chapter 2: What is bipolar junction transistor


depends on the base-collector voltage since the base-collector depletion layer width
varies, which also causes the quasi-neutral width, WB' in the base to vary.
                                                     ,




                                          13
                                                                Chapter 3: What is FlexPDE




                                                             !       " #         $

This chapter gives an introduction of the general purpose software FlexPDE. The
reasons for its use as well as its capability will be describe here. The problems
encountered as well as solutions to the describe problems will also be discussed.




3.1 What is FlexPDE?


FlexPDE is a "scripted finite element model builder and numerical solver". This
means that the user writes a script and FlexPDE performs the all the necessary
operations to turn a description of a partial differential equations system into a finite
element model which will then solve the system, and present graphical output of the
results.


FlexPDE is also a "problem solving environment", because it performs the entire
range of functions necessary to solve partial differential equation systems: an editor
for preparing scripts, a mesh generator for building finite element meshes, a finite
element solver to find solutions, and a graphics system to plot results.


FlexPDE has no pre-wired problem domain or equation list. The choice of partial
differential equations is totally up to the user. This makes FlexPDE an extremely
flexible software to be used.


The scripting language allows the user to describe the mathematics of his partial
differential equations system of his problem domain in a way that he might describe it
to another person.




                                           14
                                                               Chapter 3: What is FlexPDE


3.2 Capabilities of FlexPDE


FlexPDE can solve systems of first- or second-order partial differential equations in
Cartesian or axi-symmetric two-dimensional geometry or in three-dimensional
Cartesian geometry. The system may be steady-state or time-dependent, or
alternatively FlexPDE can solve eigenvalue problems. Steady-state and time-
dependent equations can be mixed in a single problem.


Any number of simultaneous equations can be solved, subject to the limitations of the
computer on which FlexPDE is run. The equations can be linear or nonlinear. Any
number of regions of different material properties may be defined. Modeled variables
are assumed to be continuous across material interfaces. Jump conditions on
derivatives follow from the statement of the PDE system.




3.3 Modelling of a Bipolar Junction Transistor


The modelling of the bipolar junction transistor (BJT) on FlexPDE is done by
describing the problem using a standard set of easy to understand steps. It is divided
into sections. They are:


       Title – a descriptive label for the output
       Select – user controls over the default behavior of FlexPDE
       Variables – the naming of dependent variables
       Definitions – useful parameters, relationships or functions are defined
       Equations – each variable is associated with a partial differential equation
       Initial Values – starting values for non-linear or time dependent problems
       Boundaries – the geometry is described by walking the perimeter of the
       domain, stringing together line or arc segments to bound of the figure
       Plots – the desired graphical output is listed. Plots maybe any combination of
       the contour, surface, elevation or vector plots.




                                           15
                                                                 Chapter 3: What is FlexPDE


Here is a what the final script looks like.


          bjt'
    Title '

     Select

       stages = 29
       aspect = 4
       loglimit 15
       errlim = 1e-3
       nodelimit = 120000
       changelim =0.05

     Variables
       u(range      = -1,1)
       v(range      = -1,1)
       voltage(range=-2,10)

     Definitions
       uniti = vector (1.0000,0.000000)
       vcb     = staged( 0.30, 0.40, 0.50, 0.55, 0.60, 0.70, 0.80, 0.85, 0.90, 0.95, 1.00,
                        1.10, 1.15, 1.20, 1.25, 1.30, 1.35, 1.40, 1.50, 1.55, 1.60, 1.60,
                        1.65, 1.70, 1.75, 1.80, 1.85, 1.90)
       veb     =staged(-0.30,-0.40,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,
                       -0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,
                       -0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50)
       q       = 1.602e-19
       ktq     = 0.0259
       ni      = 1.45e10
       ni_sq = 2.1025e20


       NDC = 5e15
       NDCC = 1e18
        NA = -1e17
        ND = 1e18

       ppo       = -0.5*NA+0.5*(NA^2+4*ni_sq)^0.5
       uppo      = ln(ppo/ni)*ktq
       npo       = ni_sq/ppo
       vnpo      = ln(npo/ni)*ktq
        nno      =0.5*ND+0.5*(ND^2+4*ni_sq)^0.5
       vnno      = ln(nno/ni)*ktq
        pno      = ni_sq/nno
       upno      =ln(pno/ni)*ktq
        vebo     =ktq*ln(ppo*nno/ni_sq)
        nndc     = 0.5*NDCC+0.5*(NDCC^2+4*ni_sq)^0.5
       vnndc     =ln(nndc/ni)*ktq
        pndc     = ni_sq/nndc


                                              16
                                                    Chapter 3: What is FlexPDE


  upndc =ln(pndc/ni)*ktq
   vcdbo       =ktq*ln(ppo*nndc/ni_sq)

   Lx =1.50e-3
   Ly =2.00e-4
   ep   =11.7*8.854e-14
   zero =1.e-18
   mup {Mobility}
   mun {Mobility}
   NN

  ux=if u>=-1 then u else -1
  vx=if v>=-1 then v else -1

  p=ni*exp(ux/ktq)
  n=ni*exp(vx/ktq)

   dfp =mup*ktq {Diffusion}
   dfn =mun*ktq {Diffusion}
   taup = 1.000e-6 {Lifetime}
   taun = 1.000e-6 {Lifetime}
   jp   =q*(p*mup*(-grad(voltage))-dfp*grad(p)) {Current Density}
   sub1 = (n*mun*(-grad(voltage))+dfn*grad(n))
   jn   = q*sub1 {Current Density}
   jtot =jp+jn {Total Current}
   recom=(p*n-ni_sq)/(taup*(n+ni)+taun*(p+ni)) {Recombination Rate}
   rs   =ZERO
   rho = (p+NN-n)


Initial values
   u              c:\melvin\thesis\0_03.p01'
           =table('                        )
   v              c:\melvin\thesis\0_03.p02'
           =table('                        )
                  c:\melvin\thesis\0_03.p03'
   voltage =table('                        )

Equations
   (div(-p*mup*(-grad(voltage))+dfp*grad(p))-recom)=0 {Hole equation}
   (div(sub1)- recom)=0 {Electron equation}
    div(ep*grad(voltage))=-q*(rho) {Poisson Equation}

Boundaries
Region 1 "ncollector"
 NN       =NDC
 mup =500
 mun =1600
 start(0, 0)
 natural(u)=0
 natural(v)=0
 natural(voltage)=0
 line to (Lx,0)


                                   17
                                                    Chapter 3: What is FlexPDE




  node_spacing=2e-5
  value(u)=upndc value(v)= vnndc value(voltage)=vcb+vcdbo
  line to (Lx,8*Ly)
  natural(u)=0 natural(v)=0 natural(voltage)=0
  line to (0,8*Ly)

  node_spacing=2e-5
  value(u)=upno value(v)= vnno value(voltage)=veb+vebo
  line to (0,3.5*Ly)
  natural(u)=0 natural(v)=0 natural(voltage) =0
  line to (0, 2*Ly)

  node_spacing=2e-5
  value(u)=uppo value(v)= vnpo value(voltage)=0
  line to (0, 1.25*Ly)
  natural(u)=0 natural(v)=0 natural(voltage) =0
  line to finish

Region 2 "pbase"
  NN       =NA
  mup =300.000
  mun =1300.000
  start (0, 8*Ly)
  line to (0,1*Ly)

  node_spacing=0.4e-5
  line to (0.28*Lx,1*Ly)

  node_spacing=0.4e-5
  line to (0.3*Lx, 1.2*Ly)

  node_spacing=0.4e-5
  line to (0.3*Lx,8*Ly)
  line to finish

Region 3 "nemitter"
  NN       =ND
  mup =100.000
  mun =300.000
  start "nn" (0, 8*Ly)
  line to (0, 2.5*Ly)

  node_spacing=0.4e-5
  line to (0.18*Lx,2.5*Ly)

  node_spacing=0.4e-5
  line to (0.2*Lx, 2.7*Ly)

  node_spacing=0.4e-5


                                  18
                                                       Chapter 3: What is FlexPDE


 line to (0.2*Lx, 8*Ly)
 line to finish

Region 4 "n+collector"
 NN=NDCC
 mup=100.000
 mun=300.000
 start "nnn" (0.86*Lx,8*Ly)

 node_spacing=0.4e-5
 line to (0.86*Lx, 0)
 line to (Lx, 0)
 line to (Lx, 8*Ly)
 line to finish

Feature
 !start "backn" (Lx-2e-5,0) line to (Lx-2e-5, 8*Ly)
 !start "be" (0.385*Lx,0) line to (0.385*Lx,8*Ly)
 ! start "front" (0.05*Lx,0) line to (0.05*Lx, 8*Ly)
 start "top" (0,7.9*Ly)line to (Lx,7.9*Ly)
 start "bottom" (0, 0.1*Ly) line to (Lx,0.1*Ly)

Monitors
 contour (u)
 contour (v)
 contour (p)
 contour (n)
 contour (voltage)

 elevation (p) as "Holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
 elevation (n) as "Electrons" from (0, 5*Ly) to (1*Lx, 5*Ly)
 elevation (u) as "Holes Log" from (0, 5*Ly) to (1*Lx, 5*Ly)
 elevation (v) as "Electrons Log 1" from (0, 5*Ly) to (1*Lx, 5*Ly)
 elevation (v) as "Electrons Log 2" from (0, 2*Ly) to (1*Lx, 1.8*Ly)
 elevation (voltage) as "Potential" from (0, 5*Ly) to (1*Lx, 5*Ly)
 elevation (voltage) as "Potential" from (0, 0.55*Ly) to (1*Lx, .55*Ly)
 elevation (dot (uniti, jtot) )as "Jc" from (Lx, 0) to (Lx, 8*Ly)
 elevation (dot (uniti, jtot)) as "Je" from (0, 3*Ly) to (0, 8*Ly)
 elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 1.75*Ly)

Plots

 contour (u) print(240)
 contour (v) print(240)
 contour (voltage) print (240)
 contour (p) print(240)
 contour (n) print(240)
 elevation (p) as "Holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
 elevation (n) as "Electrons" from (0, 5*Ly) to (1*Lx, 5*Ly)
 elevation (u) as "Holes Log" from (0, 5*Ly) to (1*Lx, 5*Ly)


                                    19
                                                                Chapter 3: What is FlexPDE


       elevation (v) as "Electrons Log 1" from (0, 5*Ly) to (1*Lx, 5*Ly)
       elevation (v) as "Electrons Log 2" from (0, 2*Ly) to (1*Lx, 1.8*Ly)
       elevation (voltage) as "Potential" from (0, 5*Ly) to (1*Lx, 5*Ly)
       elevation (dot (uniti, jtot))as "Jc" from (Lx, 0) to (Lx, 8*Ly)
       elevation (dot (uniti, jtot)) as "Je" from (0, 3.5*Ly) to (0, 8*Ly)
       elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 2*Ly)

END

Refer to Appendix A for the rest of the scripts written for this modelling.


Figure 3-1 shows the model of the BJT in 2 dimensions.


           y (µm)
               16




                5


                2

                0
                                                                      x (µm)
                        0     3   4.5                     13    15
          Figure: 3-1


3.4 Results are obtained through 2 Stages


Without an initial guess solution, the software, FlexPDE would have to start with 0
bias and a low dopant level of 1x1011 for emitter, base, collector and n+ collector. It
will then gradually build up to the required voltages and carrier concentration levels.
The result that was obtained from the software, FlexPDE was divided into 2 stages.
The first stage was to show the model of the BJT when no voltage is applied to the




                                           20
                                                                Chapter 3: What is FlexPDE


device. The second stage shows the model of the BJT behavior when voltage is
applied to the device.




3.4.1 Stage 1


The very first script written for the BJT model took FlexPDE a very long time run to
reach the require carrier concentration levels. It started off with carrier concentration
levels of the following:


Emitter 1x1011 cm −3
Base 1x1011 cm −3
N Collector 1x1011 cm −3
N+ Collector 1x1011 cm −3




It was gradually increased to the required level of the following:


Emitter 1x1018 cm −3
Base 1x1017 cm −3
N Collector 1x1015 cm −3
N+ Collector 1x1018 cm −3


We managed to get this equilibrium state of the BJT after much difficulties and
problems. The problems will be discussed in section 3.5. The following figure 3-2,
figure 3-3, figure 3-4 shows the electrons concentration level, holes concentration
level and the potential of the model BJT across point 1 to point 2 respectively.




                                           21
                                            Chapter 3: What is FlexPDE




                                           Point 1       Point 2




Figure: 3-2 Electrons Concentration




                                           Point 1       Point 2




 Figure 3-3 Holes concentration




                                      22
                                                                 Chapter 3: What is FlexPDE




                                                                Point 1        Point 2




 Figure: 3-4




3.4.2 Stage 2


In stage 2, voltage will be applied to the model to see the behavior of the bipolar
junction transistor (BJT). We would like to see the effect of emitter crowding, base
width modulation and show that IE = IC + IB. In order to show the behavior of the BJT,
voltage applied at emitter-base must be at least 0.5 volts and the voltage applied at the
base-collector must be at least 1.75 volts.


Continuing from stage 1, the voltage levels of emitter-base and base-collector have to
be built up gradually. There are problems faced during the built up of the voltage.
Figure 3-5 shows the potential of the BJT when emitter-base is 0.5 volts and base
collector is 1.75 volts. The potential shown is across point 1 to point 2 of the BJT.




                                              23
                                                               Chapter 3: What is FlexPDE




                                                               Point 1        Point 2




 Figure 3-5




3.5 Problems Encounter


The problems that we encountered are found in both stages and some of the problems
are similar in nature but the approach that we used to solve the problem is different.
These problems and the solutions will be presented in the next 2 sections.




3.5.1 Problems in stage 1


The modelling of this BJT to the required concentration level is not without problems.
The first personal computer (PC) that is used to run FlexPDE has a 1 GHz processor
with 384MB of random access memory (RAM). FlexPDE does not allow the sudden
increase in carrier concentration levels. So a workaround solution is to increase the
carrier concentration gradually. FlexPDE allows the gradual increase in concentration
using the function call “staged”. This results in long time taken by FlexPDE to
process the results.




                                          24
                                                               Chapter 3: What is FlexPDE


Each sets of gradual increase in carrier concentration levels require about 3 days to 10
days to run. As carrier concentration increased, the time taken to process the results
increase. Each time a new set of carrier concentration values is used, the nodes that
are created will have to be place closer so as to allows FlexPDE to run and this is the
reason why the time taken to process increase as there are more nodes for FlexPDE to
compute.




Figure 3-6 shows the first mesh that is generated with 8184 nodes created.




            Figure: 3-6




                                          25
                                                                 Chapter 3: What is FlexPDE




Figure 3-7 shows the final mesh that is generated with 85990 nodes created.




             Figure: 3-7


It is interesting to note that the large number of nodes created is between the boundary
of emitter-base, base-collector and as well as the collector and n+ collector. This is
because that is where all the carrier concentrations activity takes place.


The first PC used, only allows the carrier concentrations to reach 1x1016 cm −3 for the
emitter, base and n+ collector. The extremely high carrier concentration values used
in the computation of results causes the PC to reports insufficient memory and caused
the program to stop. A second PC with a 2GHz processor and 784MB of RAM are
used to run FlexPDE. The same problem occurred when carrier concentration of
emitter, base and n+ collector reached 1x1017 cm −3 . Due to this problem, the existing
methods to run FlexPDE will have to be changed.


A solution to this problem is to introduce new variables that do not have this extreme
variation. Two new variables “u” and “v” are used and shown below. These variables
are related to the quasi-Fermi levels of the carriers.


                                            26
                                                                Chapter 3: What is FlexPDE




p=ni*exp(u/ktq)
n=ni*exp(v/ktq)




where,


p = holes concentration
n = electrons concentration
ni = 1.45e10, is the bandgap energy
ktq = 0.0259eV


Because of the change in equations used in FlexPDE, the program has to re-run from
scratch. The changed in equations reduce the time taken to run to the required carrier
concentration levels drastically and most importantly achieve our first objective to
reach the require concentration levels successfully in 7 days using the more powerful
computer. Subsequent simulations are run on the second PC. The results will be
discussed in chapter 4.




3.5.2 Problems in stage 2


The problems encountered in stage 2 of this simulation results from the large number
of nodes created due to the drastic movement of carrier concentrations. This caused
more computational nodes to be needed. As voltage increased, the number of nodes
increased. It was noted that during the last few sets of voltage values, FlexPDE will
unable to run. An additional 256MB RAM is purchased to add onto the existing
system RAM to increase it to 1GB of memory. Because of the increase of RAM,
FlexPDE was able to run faster and reached the objective of showing some
characteristic of the BJT in the simulation.


Due to time constraints, we are not able to show the terminal characteristic of the
BJT. It is known that to get accurate terminal currents at the “external” contacts at the




                                           27
                                                                Chapter 3: What is FlexPDE


emitter, base and collector would require accurate carrier concentration gradients and
electric fields at these contacts.


The results of all the simulation done is discussed in the next chapter.




                                           28
                                                                 Chapter 4: Simulation Results




                                 %

This chapter will illustrate the different models and results that were generated from
the software FlexPDE 3. The results will be analyzed and discussed here.



4.1 Simulation Results

We have discussed the behavior of bipolar junction transistor (BJT) in chapter 2. The
behavior of the BJT is what we would like to see in the simulation results. They are
presented in the following sections.


The main parameters for the device and the boundary conditions to be applied are
tabulated in the following table 4-1.


Parameter      Emitter        Base           Collector         n+              units
                                                               collector
Doping         1x1018         1x1017             1x1015        1x1018          cm −3
Dp             2.59           7.77           12.95             2.59            cm 2 s −1

µp             100            300            500               100             cm 2 v −1 s −1

Dn             7.77           33.67          41.44             7.77            cm 2 s −1

µn             300            1300           1600              300             cm 2 v −1 s −1

τn             1x10 −6        1x10 −6            1x10 −6       1x10 −6         s

τp             1x10 −6        1x10 −6            1x10 −6       1x10 −6         s

ni             1.45 x10 −6    1.45 x10 −6        1.45 x10 −6   1.45 x10 −6     cm −3
Table: 4-1


4.2 Bipolar Junction Transistor in Equilibrium

The following figures show the results that are obtained when BJT is in equilibrium.




                                            29
                                                            Chapter 4: Simulation Results




Figure: 4-1

Figure 4-1 shows the electrons concentration at Vce = Vcb = 0, in 3 dimensional
surface plot.




                                                              1                      2




Figure: 4-2




                                         30
                                                             Chapter 4: Simulation Results




Figure 4-2 shows the electrons carrier concentration plots across point 1 to point 2 in
2 dimensions. Figure 4-2 should have shown the depletion region between the
emitter-base region and the base-collector region but because of the high carrier
concentration, we are unable to see that the drop of the carrier concentration is not
immediate. So a log scale diagram is shown in figure 4-3 drawn in red to reflect the
depletion region. In between the depletion region, it is the neutral base width.




                                                                1                     2




Figure: 4-3




                                          31
                                                            Chapter 4: Simulation Results




Figure: 4-4

Figure 4-4 shows the holes concentration at Vce = Vcb = 0, in 3 dimensional surface
plot.




                                                              1                     2




Figure: 4-5




                                         32
                                                               Chapter 4: Simulation Results


Figure 4-5 shows the holes carrier concentration plots across point 1 to point 2 in 2
dimensions. Figure 4-6 shows the holes carrier concentration in log scale.




                                                                1                     2




Figure: 4-6




Figure: 4-7

Figure 4-7 shows the potential of BJT at equilibrium.


                                           33
                                                              Chapter 4: Simulation Results


Figure 4-8 shows the potential across point 1 to point 2 of the BJT.




                                                                1                    2




Figure: 4-8




                                          34
                                                                   Chapter 4: Simulation Results


4.3 Bipolar Junction Transistor in Active mode

A voltage of 0.5 volts is applied to the emitter-base and 1.9 volts is applied to the base
collector. Figure 4-9 shows the potential of the BJT in 3 dimensional surface plots.




Figure: 4-9


Forward bias voltage will reduce the potential across the emitter-base region.
Comparing figure 4-7 and figure 4-9, we would see that the potential across the
emitter-base has drop from 0.9 volts to 0.4 volts which is what we expect to be after
applying a forward bias voltage of 0.5 volts. Using the same figures, we can see that
the potential across the base-collector increased to 2.7 volts. This is due to the reverse
bias voltage of 1.9 volts that is applied to the base-collector.




                                            35
                                                    Chapter 4: Simulation Results




                                                        1                     2




Figure: 4-10


Figure 4-10 shows the potential across point 1 and point 2 of the BJT in 2
dimensional.




                                   36
                                                            Chapter 4: Simulation Results




                                                                                      2




                                                                                       1




Figure: 4-11


Figure 4-11 shows the current density at collector, Jc . It shows the current density
across point 1 to point 2.




                                         37
                                                        Chapter 4: Simulation Results




                                                           2




                                                            1




Figure: 4-12


Figure 4-12 shows the current density at emitter, Je.




                                           38
                                                               Chapter 4: Simulation Results




                                                                   2
                                                                   1




Figure: 4-13


Figure 4-13 shows the current density at base, Jb. It shows the current density across
point 1 to point 2.


The integral of point 1 to point 2 of figure 4-11, 4-12 and 4-13, shows that Ie = Ic +Ib.
Ie = -2.603186e-5
Ic = -2.482637e-5
Ib = 7.845983e-8




                                           39
                    Chapter 4: Simulation Results




Figure: 4-14




               40
                                                             Chapter 4: Simulation Results




                                                                 1                      2




Figure: 4-15


Figure 4-15 shows the depletion width at the emitter-base reduced. This is a
characteristic of a BJT when a forward bias is applied at the emitter-base. The reason
why the depletion region is reduced is because the forward bias potential will force
the electrons in the Emitter and holes in the Base to recombine with the ions near the
boundary of the Emitter and Base.




                                         41
                                                                    Chapter 5: Conclusion




                                    Conclusion

From the bipolar junction transistor (BJT) model, the problems discussed in chapter 3
and the results that we have obtain in chapter 4 have shown that the use of standard
numerical partial differential equation solver for modelling semiconductor devices,
FlexPDE, is definitely a viable approach to help undergraduate students to better
understand semiconductor devices. This method reduces the efforts undergraduate
students have to devote to making simplifying assumptions in device physics and to
mathematical analysis.


FlexPDE is able to show results that are consistent with a real physical BJT. By using
FlexPDE, we can actually change any parameters and obtained the results through
simulations and the students can see the effects of each parameter have on the overall
behavior of a BJT. The output of the results in graphical form provides excellent
visualization of the physics involved in the interior of BJT.


Although FlexPDE is unable to display certain results that we would like to see, these
limitations are not caused by FlexPDE itself but rather the personal computer system
that are available to home user. In chapter 3 we talk about the switch of using a slower
computer to a powerful computer and the program is able to complete the simulation.
This shows that the present problems will be solved in the near future when personal
computer (PC) system hardware improves. In this project, due to time constraint we
have not addressed the question of producing terminal electrical characteristic of the
BJT. It is known that getting accurate terminal currents at the “external” contacts at
the emitter, base and collector demand accurate carrier concentration gradients and
electric fields at these contacts. This has yet to be shown.


A future improvement is to carry out the simulation in 3 dimensions. This will bring
the objective of studying the semiconductor devices in simulation to be very close to
the actual device itself.




                                            42
                                                            Appendix



Appendixes
        bjt'
  Title '

  {5e15 to 1e16}
  Select {page34}

      stages = 1 {page50, running 6 times}
      {aspect = 4 default value}
      {loglimit 15 default value}
      errlim = 5e-4
      nodelimit = 250000
      changelim =0.05

  Variables {page44}
    u1(range = -1,1)
    w(range = -1,1)
    v(range =-2,5)

  Definitions {page46}
     uniti     = vector (1.0000,0.000000)
     vcb       =0
     veb       =0
     {vcb      = staged(2.2,2.4,2.6,2.8,3.0,3.0,3.0,3.0)}
     q         = 1.602e-19
     ktq       = 0.0259
     ni        = 1.45e10
     c         = 38.69565217



     {6 Stages}
     NDC = staged        ( 1e11)
     NDCC = staged       ( 1e11)
     NA      = staged    (-1e11)
     ND      = staged    ( 1e11)

     {4 Stages
     NDC = 5e15 {!staged ( 5e15, 5e15, 5e15)}
     NDCC = 5e15 {!staged ( 3e16 5e16, 5e17, 1e18)}
     NA      = -5e15 {!staged (-3e16,-5e16,-1e17)}
     ND      = 5e15 {! staged ( 3e16,5e16,1e17,1e18)}
     }
     ppo     = -0.5*NA+0.5*(NA^2+4*ni^2)^0.5
     u1ppo = ln(ppo/ni)*ktq
     npo     = ni*ni/ppo
     wnpo = ln(npo/ni)*ktq
     nno     =0.5*ND+0.5*(ND^2+4*ni^2)^0.5
     wnno = ln(nno/ni)*ktq
     pno     = ni*ni/nno
     u1pno =ln(pno/ni)*ktq
     {
     nnc     =0.5*NDC+0.5*(NDC^2+4*ni^2)^0.5
     pnc     = ni*ni/nnc
     }
     vebo    =ktq*ln(ppo*nno/ni^2)
     nndc    = 0.5*NDCC+0.5*(NDCC^2+4*ni^2)^0.5
     wnndc =ln(nndc/ni)*ktq
     pndc    = ni*ni/nndc
     u1pndc =ln(pndc/ni)*ktq


                                                43
                                                                                             Appendix


          vcdbo =ktq*ln(ppo*nndc/ni^2)
          Lx      =1.50e-3
          Ly      =2.00e-4
          ep      =11.7*8.854e-14
          zero    =1.e-18 {Zero is given an extremely small value because the program has a fault if a
real 0 is used}
          mup {Mobility}
          mun {Mobility}
          NN
          p=ni*exp(u1/ktq)
          n=ni*exp(w/ktq)

        dfp    =mup*ktq {Diffusion}
        dfn    =mun*ktq {Diffusion}
        taup   = 1.000e-6 {Lifetime}
        taun   = 1.000e-6 {Lifetime}
        jp     =q*(p*mup*(-grad(v))-dfp*grad(p)) {Current Density}
        jn     = q*(n*mun*(-grad(v))+dfn*grad(n)) {Current Density}
        jtot   =jp+jn {Total Current}
        recom =(p*n-ni^2)/(taup*(n+ni)+taun*(p+ni)) {Recombination Rate}
        rs     =ZERO
        fir    =0.0259*ln((NN/2+sqrt(((NN/2)*(NN/2))+ni*ni))/ni) {no voltage applied}
        {
        px=p
        nx=n
        rho=p+NN-n

        pmin     =0
        nmin     =0

        px       = swage(p-pmin,pmin,p,1) {This command is used to return px a positive value in
replacement of p}
        nx       = swage(n-nmin,nmin,n,1) {This command is used to return nx a positive value in
replacement of n}
        }
        px=if p>=0 then p else 0
        nx=if n>=0 then n else 0

        rho      = (p+NN-n)

     Initial values
          {p               d:\thesis\bjt1a5e15pos.p01'
                    =table('                         )
          n                d:\thesis\bjt1a5e15pos.p02'
                    =table('                         )
          v                d:\thesis\bjt1a5e15pos.p03'
                    =table('                         )
          }
          u1=0
          w=0
          v=0


     Equations
         (div(-px*mup*(-grad(v))+dfp*grad(p))-(px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0 {Hole
equation}
         (div(nx*mun*(-grad(v))+dfn*grad(n))- (px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0
{Electron equation}
          div(ep*grad(v))=-q*(rho)                                             {Poisson
equation}

     Boundaries
     Region 1 "ncollector"



                                                  44
                                                         Appendix


   NN        =NDC
   mup       =500
   mun       =1600
   start(0, 0)
   natural(u1)=0 {(dp/dy)=0}
   natural(w)=0 {(dn/dy)=0}
   natural(v)       =0 {(dv/dy)=0}
   line to (Lx,0)

   node_spacing=2e-5
   value(u1)=u1pndc value(w)= wnndc value(v)=vcb+vcdbo
   line to (Lx,8*Ly)
   natural(u1)=0 natural(w)=0 natural(v)=0
   line to (0,8*Ly)

   node_spacing=2e-5
   value(u1)=u1pno value(w)= wnno value(v)=veb+vebo
   line to (0,3.5*Ly)
   natural(u1)=0 natural(w)=0 natural(v) =0
   line to (0, 2*Ly)

   node_spacing=2e-5
   value(u1)=u1ppo value(w)= wnpo value(v)=0
   line to (0, 1.25*Ly)
   natural(u1)=0 natural(w)=0 natural(v) =0
   line to finish

Region 2 "pbase"
   NN        =NA
   mup       =300.000
   mun       =1300.000
   start (0, 8*Ly)
   line to (0,1*Ly)

   node_spacing=2e-5
   line to (0.28*Lx,1*Ly)

   node_spacing=2e-5
   line to (0.3*Lx, 1.2*Ly)

   node_spacing=2e-5
   line to (0.3*Lx,8*Ly)
   line to finish

Region 3 "nemitter"
   NN        =ND
   mup       =100.000
   mun       =300.000
   start "nn" (0, 8*Ly)
   line to (0, 2.5*Ly)

   node_spacing=2e-5
   line to (0.18*Lx,2.5*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 2.7*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 8*Ly)
   line to finish



                                        45
                                                                                  Appendix



      Region 4 "n+collector"
        NN=NDCC
        mup=100.000
        mun=300.000
        start "nnn" (0.86*Lx,8*Ly)

         node_spacing=2e-5
         line to (0.86*Lx, 0)
         line to (Lx, 0)
         line to (Lx, 8*Ly)
         line to finish

      Feature
         !start "backn" (Lx-2e-5,0) line to (Lx-2e-5, 8*Ly)
         !start "be" (0.385*Lx,0) line to (0.385*Lx,8*Ly)
         ! start "front" (0.05*Lx,0) line to (0.05*Lx, 8*Ly)
         start "top" (0,7.9*Ly)line to (Lx,7.9*Ly)
         start "bottom" (0, 0.1*Ly) line to (Lx,0.1*Ly)

      Monitors
        contour (px)
        contour (nx)
        contour (v)

         elevation (p) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (n) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "v" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "v" from (0, 0.55*Ly) to (1*Lx, .55*Ly)
         {elevation (dot (uniti, jtot) )as "Jc" from (Lx, 0) to (Lx, 8*Ly)
         elevation (dot (uniti, jtot)) as "Je" from (0, 3*Ly) to (0, 8*Ly)
         elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 1.75*Ly)

         surface (v)
         surface (p)
         surface (n)}


      Plots

         contour (u1) print(240)
         contour (w) print(240)
         contour (v) print (240)
         contour (p) print(240)
         contour (n) print(240)
         elevation (px) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (nx) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
         {contour (n ) zoom(.1*Lx,0.65*Ly,0.25*Lx, Ly)}
         elevation (dot (uniti, jtot))as "Jc" from (Lx, 0) to (Lx, 8*Ly)
         elevation (dot (uniti, jtot)) as "Je" from (0, 3.5*Ly) to (0, 8*Ly)
         elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 2*Ly)
END




                                                    46
                                                                                       Appendix




      bjt'
Title '

{5e15 to 1e16}
Select {page34}

    stages = 10 {page50, running 6 times}
    {aspect = 4 default value}
    {loglimit 15 default value}
    errlim = 5e-4
    nodelimit = 250000
    changelim =0.05

Variables {page44}
  u1(range = -1,1)
  w(range = -1,1)
  v(range =-2,5)

Definitions {page46}
   uniti     = vector (1.0000,0.000000)
   vcb       =0
   veb       =0
   {vcb      = staged(2.2,2.4,2.6,2.8,3.0,3.0,3.0,3.0)}
   q         = 1.602e-19
   ktq       = 0.0259
   ni        = 1.45e10
   c         = 38.69565217

   {10 Stages}
   NDC = staged        ( 1e11, 2e11, 3e11, 4e11, 5e11, 6e11, 7e11, 8e11, 9e11, 1e12)
   NDCC = staged       ( 1e11, 2e11, 3e11, 4e11, 5e11, 6e11, 7e11, 8e11, 9e11, 1e12)
   NA      = staged    (-1e11,-2e11,-3e11,-4e11,-5e11,-6e11,-7e11,-8e11,-9e11,-1e12)
   ND      = staged    ( 1e11, 2e11, 3e11, 4e11, 5e11, 6e11, 7e11, 8e11, 9e11, 1e12)

   {6 Stages
   NDC = staged ( 1e11, 2e11)
   NDCC = staged ( 1e11)
   NA      = staged (-1e11)
   ND      = staged ( 1e11)
   }
   {4 Stages
   NDC = 5e15 {!staged ( 5e15, 5e15, 5e15)}
   NDCC = 5e15 {!staged ( 3e16 5e16, 5e17, 1e18)}
   NA      = -5e15 {!staged (-3e16,-5e16,-1e17)}
   ND      = 5e15 {! staged ( 3e16,5e16,1e17,1e18)}
   }
   ppo     = -0.5*NA+0.5*(NA^2+4*ni^2)^0.5
   u1ppo = ln(ppo/ni)*ktq
   npo     = ni*ni/ppo
   wnpo = ln(npo/ni)*ktq
   nno     =0.5*ND+0.5*(ND^2+4*ni^2)^0.5
   wnno = ln(nno/ni)*ktq
   pno     = ni*ni/nno



                                              47
                                                                                             Appendix


          u1pno =ln(pno/ni)*ktq
          {
          nnc     =0.5*NDC+0.5*(NDC^2+4*ni^2)^0.5
          pnc     = ni*ni/nnc
          }
          vebo    =ktq*ln(ppo*nno/ni^2)
          nndc    = 0.5*NDCC+0.5*(NDCC^2+4*ni^2)^0.5
          wnndc =ln(nndc/ni)*ktq
          pndc    = ni*ni/nndc
          u1pndc =ln(pndc/ni)*ktq
          vcdbo =ktq*ln(ppo*nndc/ni^2)
          Lx      =1.50e-3
          Ly      =2.00e-4
          ep      =11.7*8.854e-14
          zero    =1.e-18 {Zero is given an extremely small value because the program has a fault if a
real 0 is used}
          mup {Mobility}
          mun {Mobility}
          NN
          p=ni*exp(u1/ktq)
          n=ni*exp(w/ktq)

        dfp    =mup*ktq {Diffusion}
        dfn    =mun*ktq {Diffusion}
        taup   = 1.000e-6 {Lifetime}
        taun   = 1.000e-6 {Lifetime}
        jp     =q*(p*mup*(-grad(v))-dfp*grad(p)) {Current Density}
        jn     = q*(n*mun*(-grad(v))+dfn*grad(n)) {Current Density}
        jtot   =jp+jn {Total Current}
        recom =(p*n-ni^2)/(taup*(n+ni)+taun*(p+ni)) {Recombination Rate}
        rs     =ZERO
        fir    =0.0259*ln((NN/2+sqrt(((NN/2)*(NN/2))+ni*ni))/ni) {no voltage applied}
        {
        px=p
        nx=n
        rho=p+NN-n

         pmin     =0
         nmin     =0

        px       = swage(p-pmin,pmin,p,1) {This command is used to return px a positive value in
replacement of p}
        nx       = swage(n-nmin,nmin,n,1) {This command is used to return nx a positive value in
replacement of n}
        }
        px=if p>=0 then p else 0
        nx=if n>=0 then n else 0

         rho      = (p+NN-n)

     Initial values
          u1               e:\thesis2\1e11.p01'
                    =table('                  )
          w                e:\thesis2\1e11.p02'
                    =table('                  )
          v                e:\thesis2\1e11.p03'
                    =table('                  )
          {
          u1=0
          w=0
          v=0
          }




                                                  48
                                                                                      Appendix


     Equations
         (div(-px*mup*(-grad(v))+dfp*grad(p))-(px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0 {Hole
equation}
         (div(nx*mun*(-grad(v))+dfn*grad(n))- (px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0
{Electron equation}
          div(ep*grad(v))=-q*(rho)                                             {Poisson
equation}

     Boundaries
     Region 1 "ncollector"
       NN        =NDC
       mup       =500
       mun       =1600
       start(0, 0)
       natural(u1)=0 {(dp/dy)=0}
       natural(w)=0 {(dn/dy)=0}
       natural(v)         =0 {(dv/dy)=0}
       line to (Lx,0)

        node_spacing=2e-5
        value(u1)=u1pndc value(w)= wnndc value(v)=vcb+vcdbo
        line to (Lx,8*Ly)
        natural(u1)=0 natural(w)=0 natural(v)=0
        line to (0,8*Ly)

        node_spacing=2e-5
        value(u1)=u1pno value(w)= wnno value(v)=veb+vebo
        line to (0,3.5*Ly)
        natural(u1)=0 natural(w)=0 natural(v) =0
        line to (0, 2*Ly)

        node_spacing=2e-5
        value(u1)=u1ppo value(w)= wnpo value(v)=0
        line to (0, 1.25*Ly)
        natural(u1)=0 natural(w)=0 natural(v) =0
        line to finish

    Region 2 "pbase"
       NN        =NA
       mup       =300.000
       mun       =1300.000
       start (0, 8*Ly)
       line to (0,1*Ly)

        node_spacing=2e-5
        line to (0.28*Lx,1*Ly)

        node_spacing=2e-5
        line to (0.3*Lx, 1.2*Ly)

        node_spacing=2e-5
        line to (0.3*Lx,8*Ly)
        line to finish

    Region 3 "nemitter"
       NN        =ND
       mup       =100.000
       mun       =300.000
       start "nn" (0, 8*Ly)
       line to (0, 2.5*Ly)



                                              49
                                                                            Appendix



   node_spacing=2e-5
   line to (0.18*Lx,2.5*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 2.7*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 8*Ly)
   line to finish

Region 4 "n+collector"
  NN=NDCC
  mup=100.000
  mun=300.000
  start "nnn" (0.86*Lx,8*Ly)

   node_spacing=2e-5
   line to (0.86*Lx, 0)
   line to (Lx, 0)
   line to (Lx, 8*Ly)
   line to finish

Feature
   !start "backn" (Lx-2e-5,0) line to (Lx-2e-5, 8*Ly)
   !start "be" (0.385*Lx,0) line to (0.385*Lx,8*Ly)
   ! start "front" (0.05*Lx,0) line to (0.05*Lx, 8*Ly)
   start "top" (0,7.9*Ly)line to (Lx,7.9*Ly)
   start "bottom" (0, 0.1*Ly) line to (Lx,0.1*Ly)

Monitors
  contour (px)
  contour (nx)
  contour (v)

   elevation (p) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
   elevation (n) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
   elevation (v) as "v" from (0, 5*Ly) to (1*Lx, 5*Ly)
   elevation (v) as "v" from (0, 0.55*Ly) to (1*Lx, .55*Ly)
   {elevation (dot (uniti, jtot) )as "Jc" from (Lx, 0) to (Lx, 8*Ly)
   elevation (dot (uniti, jtot)) as "Je" from (0, 3*Ly) to (0, 8*Ly)
   elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 1.75*Ly)

   surface (v)
   surface (p)
   surface (n)}


Plots

   contour (u1) print(240)
   contour (w) print(240)
   contour (v) print (240)
   contour (p) print(240)
   contour (n) print(240)
   elevation (px) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
   elevation (nx) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
   {contour (n ) zoom(.1*Lx,0.65*Ly,0.25*Lx, Ly)}
   elevation (dot (uniti, jtot))as "Jc" from (Lx, 0) to (Lx, 8*Ly)
   elevation (dot (uniti, jtot)) as "Je" from (0, 3.5*Ly) to (0, 8*Ly)



                                              50
                                                                              Appendix


        elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 2*Ly)
END




        bjt'
  Title '

  {5e15 to 1e16}
  Select {page34}

        stages = 4 {page50, running 6 times}
        {aspect = 4 default value}
        {loglimit 15 default value}
        errlim = 5e-4
        nodelimit = 250000
        changelim =0.05

      Variables {page44}
        u1(range = -1,1)
        w(range = -1,1)
        v(range =-2,5)

  Definitions {page46}
     uniti     = vector (1.0000,0.000000)
     vcb       =0
     veb       =0
     {vcb      = staged(2.2,2.4,2.6,2.8,3.0,3.0,3.0,3.0)}
     q         = 1.602e-19
     ktq       = 0.0259
     ni        = 1.45e10
     c         = 38.69565217

        {4 Stages}
        NDC = staged       ( 1e12, 4e12, 7e12, 1e13)
        NDCC = staged      ( 1e12, 4e12, 7e12, 1e13)
        NA      = staged   (-1e12,-4e12,-7e12,-1e13)
        ND      = staged   ( 1e12, 4e12, 7e12, 1e13)

        {6 Stages
        NDC = staged ( 1e11, 2e11)
        NDCC = staged ( 1e11)
        NA      = staged (-1e11)
        ND      = staged ( 1e11)
        }
        {4 Stages
        NDC = 5e15 {!staged ( 5e15, 5e15, 5e15)}
        NDCC = 5e15 {!staged ( 3e16 5e16, 5e17, 1e18)}
        NA      = -5e15 {!staged (-3e16,-5e16,-1e17)}
        ND      = 5e15 {! staged ( 3e16,5e16,1e17,1e18)}
        }
        ppo     = -0.5*NA+0.5*(NA^2+4*ni^2)^0.5
        u1ppo = ln(ppo/ni)*ktq
        npo     = ni*ni/ppo



                                                   51
                                                                                             Appendix


          wnpo = ln(npo/ni)*ktq
          nno     =0.5*ND+0.5*(ND^2+4*ni^2)^0.5
          wnno = ln(nno/ni)*ktq
          pno     = ni*ni/nno
          u1pno =ln(pno/ni)*ktq
          {
          nnc     =0.5*NDC+0.5*(NDC^2+4*ni^2)^0.5
          pnc     = ni*ni/nnc
          }
          vebo    =ktq*ln(ppo*nno/ni^2)
          nndc    = 0.5*NDCC+0.5*(NDCC^2+4*ni^2)^0.5
          wnndc =ln(nndc/ni)*ktq
          pndc    = ni*ni/nndc
          u1pndc =ln(pndc/ni)*ktq
          vcdbo =ktq*ln(ppo*nndc/ni^2)
          Lx      =1.50e-3
          Ly      =2.00e-4
          ep      =11.7*8.854e-14
          zero    =1.e-18 {Zero is given an extremely small value because the program has a fault if a
real 0 is used}
          mup {Mobility}
          mun {Mobility}
          NN
          p=ni*exp(u1/ktq)
          n=ni*exp(w/ktq)

        dfp    =mup*ktq {Diffusion}
        dfn    =mun*ktq {Diffusion}
        taup   = 1.000e-6 {Lifetime}
        taun   = 1.000e-6 {Lifetime}
        jp     =q*(p*mup*(-grad(v))-dfp*grad(p)) {Current Density}
        jn     = q*(n*mun*(-grad(v))+dfn*grad(n)) {Current Density}
        jtot   =jp+jn {Total Current}
        recom =(p*n-ni^2)/(taup*(n+ni)+taun*(p+ni)) {Recombination Rate}
        rs     =ZERO
        fir    =0.0259*ln((NN/2+sqrt(((NN/2)*(NN/2))+ni*ni))/ni) {no voltage applied}
        {
        px=p
        nx=n
        rho=p+NN-n

         pmin     =0
         nmin     =0

        px       = swage(p-pmin,pmin,p,1) {This command is used to return px a positive value in
replacement of p}
        nx       = swage(n-nmin,nmin,n,1) {This command is used to return nx a positive value in
replacement of n}
        }
        px=if p>=0 then p else 0
        nx=if n>=0 then n else 0

         rho      = (p+NN-n)

     Initial values
          u1               e:\thesis2\1e12.p01'
                    =table('                  )
          w                e:\thesis2\1e12.p02'
                    =table('                  )
          v                e:\thesis2\1e12.p03'
                    =table('                  )
          {
          u1=0



                                                  52
                                                                                      Appendix


        w=0
        v=0
        }

     Equations
         (div(-px*mup*(-grad(v))+dfp*grad(p))-(px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0 {Hole
equation}
         (div(nx*mun*(-grad(v))+dfn*grad(n))- (px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0
{Electron equation}
          div(ep*grad(v))=-q*(rho)                                             {Poisson
equation}

     Boundaries
     Region 1 "ncollector"
       NN        =NDC
       mup       =500
       mun       =1600
       start(0, 0)
       natural(u1)=0 {(dp/dy)=0}
       natural(w)=0 {(dn/dy)=0}
       natural(v)         =0 {(dv/dy)=0}
       line to (Lx,0)

        node_spacing=2e-5
        value(u1)=u1pndc value(w)= wnndc value(v)=vcb+vcdbo
        line to (Lx,8*Ly)
        natural(u1)=0 natural(w)=0 natural(v)=0
        line to (0,8*Ly)

        node_spacing=2e-5
        value(u1)=u1pno value(w)= wnno value(v)=veb+vebo
        line to (0,3.5*Ly)
        natural(u1)=0 natural(w)=0 natural(v) =0
        line to (0, 2*Ly)

        node_spacing=2e-5
        value(u1)=u1ppo value(w)= wnpo value(v)=0
        line to (0, 1.25*Ly)
        natural(u1)=0 natural(w)=0 natural(v) =0
        line to finish

    Region 2 "pbase"
       NN        =NA
       mup       =300.000
       mun       =1300.000
       start (0, 8*Ly)
       line to (0,1*Ly)

        node_spacing=2e-5
        line to (0.28*Lx,1*Ly)

        node_spacing=2e-5
        line to (0.3*Lx, 1.2*Ly)

        node_spacing=2e-5
        line to (0.3*Lx,8*Ly)
        line to finish

    Region 3 "nemitter"
       NN       =ND



                                              53
                                                                            Appendix


   mup       =100.000
   mun       =300.000
   start "nn" (0, 8*Ly)
   line to (0, 2.5*Ly)

   node_spacing=2e-5
   line to (0.18*Lx,2.5*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 2.7*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 8*Ly)
   line to finish

Region 4 "n+collector"
  NN=NDCC
  mup=100.000
  mun=300.000
  start "nnn" (0.86*Lx,8*Ly)

   node_spacing=2e-5
   line to (0.86*Lx, 0)
   line to (Lx, 0)
   line to (Lx, 8*Ly)
   line to finish

Feature
   !start "backn" (Lx-2e-5,0) line to (Lx-2e-5, 8*Ly)
   !start "be" (0.385*Lx,0) line to (0.385*Lx,8*Ly)
   ! start "front" (0.05*Lx,0) line to (0.05*Lx, 8*Ly)
   start "top" (0,7.9*Ly)line to (Lx,7.9*Ly)
   start "bottom" (0, 0.1*Ly) line to (Lx,0.1*Ly)

Monitors
  contour (px)
  contour (nx)
  contour (v)

   elevation (p) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
   elevation (n) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
   elevation (v) as "v" from (0, 5*Ly) to (1*Lx, 5*Ly)
   elevation (v) as "v" from (0, 0.55*Ly) to (1*Lx, .55*Ly)
   {elevation (dot (uniti, jtot) )as "Jc" from (Lx, 0) to (Lx, 8*Ly)
   elevation (dot (uniti, jtot)) as "Je" from (0, 3*Ly) to (0, 8*Ly)
   elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 1.75*Ly)

   surface (v)
   surface (p)
   surface (n)}


Plots

   contour (u1) print(240)
   contour (w) print(240)
   contour (v) print (240)
   contour (p) print(240)
   contour (n) print(240)
   elevation (px) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)



                                             54
                                                                              Appendix


        elevation (nx) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
        {contour (n ) zoom(.1*Lx,0.65*Ly,0.25*Lx, Ly)}
        elevation (dot (uniti, jtot))as "Jc" from (Lx, 0) to (Lx, 8*Ly)
        elevation (dot (uniti, jtot)) as "Je" from (0, 3.5*Ly) to (0, 8*Ly)
        elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 2*Ly)
END




        bjt'
  Title '

  {5e15 to 1e16}
  Select {page34}

        stages = 4 {page50, running 6 times}
        {aspect = 4 default value}
        {loglimit 15 default value}
        errlim = 5e-4
        nodelimit = 250000
        changelim =0.05

      Variables {page44}
        u1(range = -1,1)
        w(range = -1,1)
        v(range =-2,5)

  Definitions {page46}
     uniti     = vector (1.0000,0.000000)
     vcb       =0
     veb       =0
     {vcb      = staged(2.2,2.4,2.6,2.8,3.0,3.0,3.0,3.0)}
     q         = 1.602e-19
     ktq       = 0.0259
     ni        = 1.45e10
     c         = 38.69565217

        {4 Stages}
        NDC = staged       ( 1e13, 4e13, 7e13, 1e14)
        NDCC = staged      ( 1e13, 4e13, 7e13, 1e14)
        NA      = staged   (-1e13,-4e13,-7e13,-1e14)
        ND      = staged   ( 1e13, 4e13, 7e13, 1e14)

        {6 Stages
        NDC = staged       ( 1e11, 2e11)
        NDCC = staged      ( 1e11)
        NA      = staged   (-1e11)
        ND      = staged   ( 1e11)
        }



                                                   55
                                                                                             Appendix


          {4 Stages
          NDC = 5e15 {!staged ( 5e15, 5e15, 5e15)}
          NDCC = 5e15 {!staged ( 3e16 5e16, 5e17, 1e18)}
          NA      = -5e15 {!staged (-3e16,-5e16,-1e17)}
          ND      = 5e15 {! staged ( 3e16,5e16,1e17,1e18)}
          }
          ppo     = -0.5*NA+0.5*(NA^2+4*ni^2)^0.5
          u1ppo = ln(ppo/ni)*ktq
          npo     = ni*ni/ppo
          wnpo = ln(npo/ni)*ktq
          nno     =0.5*ND+0.5*(ND^2+4*ni^2)^0.5
          wnno = ln(nno/ni)*ktq
          pno     = ni*ni/nno
          u1pno =ln(pno/ni)*ktq
          {
          nnc     =0.5*NDC+0.5*(NDC^2+4*ni^2)^0.5
          pnc     = ni*ni/nnc
          }
          vebo    =ktq*ln(ppo*nno/ni^2)
          nndc    = 0.5*NDCC+0.5*(NDCC^2+4*ni^2)^0.5
          wnndc =ln(nndc/ni)*ktq
          pndc    = ni*ni/nndc
          u1pndc =ln(pndc/ni)*ktq
          vcdbo =ktq*ln(ppo*nndc/ni^2)
          Lx      =1.50e-3
          Ly      =2.00e-4
          ep      =11.7*8.854e-14
          zero    =1.e-18 {Zero is given an extremely small value because the program has a fault if a
real 0 is used}
          mup {Mobility}
          mun {Mobility}
          NN
          p=ni*exp(u1/ktq)
          n=ni*exp(w/ktq)

        dfp    =mup*ktq {Diffusion}
        dfn    =mun*ktq {Diffusion}
        taup   = 1.000e-6 {Lifetime}
        taun   = 1.000e-6 {Lifetime}
        jp     =q*(p*mup*(-grad(v))-dfp*grad(p)) {Current Density}
        jn     = q*(n*mun*(-grad(v))+dfn*grad(n)) {Current Density}
        jtot   =jp+jn {Total Current}
        recom =(p*n-ni^2)/(taup*(n+ni)+taun*(p+ni)) {Recombination Rate}
        rs     =ZERO
        fir    =0.0259*ln((NN/2+sqrt(((NN/2)*(NN/2))+ni*ni))/ni) {no voltage applied}
        {
        px=p
        nx=n
        rho=p+NN-n

        pmin     =0
        nmin     =0

        px       = swage(p-pmin,pmin,p,1) {This command is used to return px a positive value in
replacement of p}
        nx       = swage(n-nmin,nmin,n,1) {This command is used to return nx a positive value in
replacement of n}
        }
        px=if p>=0 then p else 0
        nx=if n>=0 then n else 0



                                                  56
                                                                                      Appendix



        rho      = (p+NN-n)

    Initial values
         u1               e:\thesis2\1e13.p01'
                   =table('                  )
         w                e:\thesis2\1e13.p02'
                   =table('                  )
         v                e:\thesis2\1e13.p03'
                   =table('                  )
         {
         u1=0
         w=0
         v=0
         }

     Equations
         (div(-px*mup*(-grad(v))+dfp*grad(p))-(px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0 {Hole
equation}
         (div(nx*mun*(-grad(v))+dfn*grad(n))- (px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0
{Electron equation}
          div(ep*grad(v))=-q*(rho)                                             {Poisson
equation}

     Boundaries
     Region 1 "ncollector"
       NN        =NDC
       mup       =500
       mun       =1600
       start(0, 0)
       natural(u1)=0 {(dp/dy)=0}
       natural(w)=0 {(dn/dy)=0}
       natural(v)         =0 {(dv/dy)=0}
       line to (Lx,0)

        node_spacing=2e-5
        value(u1)=u1pndc value(w)= wnndc value(v)=vcb+vcdbo
        line to (Lx,8*Ly)
        natural(u1)=0 natural(w)=0 natural(v)=0
        line to (0,8*Ly)

        node_spacing=2e-5
        value(u1)=u1pno value(w)= wnno value(v)=veb+vebo
        line to (0,3.5*Ly)
        natural(u1)=0 natural(w)=0 natural(v) =0
        line to (0, 2*Ly)

        node_spacing=2e-5
        value(u1)=u1ppo value(w)= wnpo value(v)=0
        line to (0, 1.25*Ly)
        natural(u1)=0 natural(w)=0 natural(v) =0
        line to finish

    Region 2 "pbase"
       NN        =NA
       mup       =300.000
       mun       =1300.000
       start (0, 8*Ly)
       line to (0,1*Ly)

        node_spacing=2e-5
        line to (0.28*Lx,1*Ly)




                                                 57
                                                                            Appendix


   node_spacing=2e-5
   line to (0.3*Lx, 1.2*Ly)

   node_spacing=2e-5
   line to (0.3*Lx,8*Ly)
   line to finish

Region 3 "nemitter"
   NN        =ND
   mup       =100.000
   mun       =300.000
   start "nn" (0, 8*Ly)
   line to (0, 2.5*Ly)

   node_spacing=2e-5
   line to (0.18*Lx,2.5*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 2.7*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 8*Ly)
   line to finish

Region 4 "n+collector"
  NN=NDCC
  mup=100.000
  mun=300.000
  start "nnn" (0.86*Lx,8*Ly)

   node_spacing=2e-5
   line to (0.86*Lx, 0)
   line to (Lx, 0)
   line to (Lx, 8*Ly)
   line to finish

Feature
   !start "backn" (Lx-2e-5,0) line to (Lx-2e-5, 8*Ly)
   !start "be" (0.385*Lx,0) line to (0.385*Lx,8*Ly)
   ! start "front" (0.05*Lx,0) line to (0.05*Lx, 8*Ly)
   start "top" (0,7.9*Ly)line to (Lx,7.9*Ly)
   start "bottom" (0, 0.1*Ly) line to (Lx,0.1*Ly)

Monitors
  contour (px)
  contour (nx)
  contour (v)

   elevation (p) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
   elevation (n) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
   elevation (v) as "v" from (0, 5*Ly) to (1*Lx, 5*Ly)
   elevation (v) as "v" from (0, 0.55*Ly) to (1*Lx, .55*Ly)
   {elevation (dot (uniti, jtot) )as "Jc" from (Lx, 0) to (Lx, 8*Ly)
   elevation (dot (uniti, jtot)) as "Je" from (0, 3*Ly) to (0, 8*Ly)
   elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 1.75*Ly)

   surface (v)
   surface (p)
   surface (n)}




                                             58
                                                                                        Appendix



      Plots

          contour (u1) print(240)
          contour (w) print(240)
          contour (v) print (240)
          contour (p) print(240)
          contour (n) print(240)
          elevation (px) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
          elevation (nx) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
          {contour (n ) zoom(.1*Lx,0.65*Ly,0.25*Lx, Ly)}
          elevation (dot (uniti, jtot))as "Jc" from (Lx, 0) to (Lx, 8*Ly)
          elevation (dot (uniti, jtot)) as "Je" from (0, 3.5*Ly) to (0, 8*Ly)
          elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 2*Ly)
END




          bjt'
    Title '

    Select {page34}

          stages = 13 {page50, running 13 times}
          {aspect = 4 default value}
          {loglimit 15 default value}
          errlim = 5e-4
          nodelimit = 250000
          changelim =0.05

        Variables {page44}
          u1(range = -1,1)
          w(range = -1,1)
          v(range =-2,5)

    Definitions {page46}
       uniti     = vector (1.0000,0.000000)
       vcb       =0
       veb       =0
       {vcb      = staged(2.2,2.4,2.6,2.8,3.0,3.0,3.0,3.0)}
       q         = 1.602e-19
       ktq       = 0.0259
       ni        = 1.45e10
       c         = 38.69565217

          {13 Stages}
          NDC = staged ( 1e14, 4e14, 7e14, 1e15, 1e15, 1e15, 1e15, 1e15, 1e15, 1e15, 1e15, 1e15,
1e15)




                                                     59
                                                                                             Appendix


        NDCC = staged ( 1e14, 4e14, 7e14, 1e15, 4e15, 7e15, 1e16, 4e16, 7e16, 1e17, 4e17, 7e17,
1e18)
        NA       = staged (-1e14,-4e14,-7e14,-1e15,-4e15,-7e15,-1e16,-4e16,-7e16,-1e17,-1e17,-
1e17,-1e17)
        ND       = staged ( 1e14, 4e14, 7e14, 1e15, 4e15, 7e15, 1e16, 4e16, 7e16, 1e17, 4e17, 7e17,
1e18)

          {6 Stages
          NDC = staged ( 1e11, 2e11)
          NDCC = staged ( 1e11)
          NA      = staged (-1e11)
          ND      = staged ( 1e11)
          }
          {4 Stages
          NDC = 5e15 {!staged ( 5e15, 5e15, 5e15)}
          NDCC = 5e15 {!staged ( 3e16 5e16, 5e17, 1e18)}
          NA      = -5e15 {!staged (-3e16,-5e16,-1e17)}
          ND      = 5e15 {! staged ( 3e16,5e16,1e17,1e18)}
          }
          ppo     = -0.5*NA+0.5*(NA^2+4*ni^2)^0.5
          u1ppo = ln(ppo/ni)*ktq
          npo     = ni*ni/ppo
          wnpo = ln(npo/ni)*ktq
          nno     =0.5*ND+0.5*(ND^2+4*ni^2)^0.5
          wnno = ln(nno/ni)*ktq
          pno     = ni*ni/nno
          u1pno =ln(pno/ni)*ktq
          {
          nnc     =0.5*NDC+0.5*(NDC^2+4*ni^2)^0.5
          pnc     = ni*ni/nnc
          }
          vebo    =ktq*ln(ppo*nno/ni^2)
          nndc    = 0.5*NDCC+0.5*(NDCC^2+4*ni^2)^0.5
          wnndc =ln(nndc/ni)*ktq
          pndc    = ni*ni/nndc
          u1pndc =ln(pndc/ni)*ktq
          vcdbo =ktq*ln(ppo*nndc/ni^2)
          Lx      =1.50e-3
          Ly      =2.00e-4
          ep      =11.7*8.854e-14
          zero    =1.e-18 {Zero is given an extremely small value because the program has a fault if a
real 0 is used}
          mup {Mobility}
          mun {Mobility}
          NN
          p=ni*exp(u1/ktq)
          n=ni*exp(w/ktq)

        dfp      =mup*ktq {Diffusion}
        dfn      =mun*ktq {Diffusion}
        taup     = 1.000e-6 {Lifetime}
        taun     = 1.000e-6 {Lifetime}
        jp       =q*(p*mup*(-grad(v))-dfp*grad(p)) {Current Density}
        jn       = q*(n*mun*(-grad(v))+dfn*grad(n)) {Current Density}
        jtot     =jp+jn {Total Current}
        recom    =(p*n-ni^2)/(taup*(n+ni)+taun*(p+ni)) {Recombination Rate}
        rs       =ZERO
        fir      =0.0259*ln((NN/2+sqrt(((NN/2)*(NN/2))+ni*ni))/ni) {no voltage applied}
        {
        px=p



                                                  60
                                                                                         Appendix


        nx=n
        rho=p+NN-n

        pmin     =0
        nmin     =0

        px       = swage(p-pmin,pmin,p,1) {This command is used to return px a positive value in
replacement of p}
        nx       = swage(n-nmin,nmin,n,1) {This command is used to return nx a positive value in
replacement of n}
        }
        px=if p>=0 then p else 0
        nx=if n>=0 then n else 0

        rho      = (p+NN-n)

    Initial values
         u1               e:\thesis2\1e14.p01'
                   =table('                  )
         w                e:\thesis2\1e14.p02'
                   =table('                  )
         v                e:\thesis2\1e14.p03'
                   =table('                  )
         {
         u1=0
         w=0
         v=0
         }

     Equations
         (div(-px*mup*(-grad(v))+dfp*grad(p))-(px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0 {Hole
equation}
         (div(nx*mun*(-grad(v))+dfn*grad(n))- (px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0
{Electron equation}
          div(ep*grad(v))=-q*(rho)                                             {Poisson
equation}

     Boundaries
     Region 1 "ncollector"
       NN        =NDC
       mup       =500
       mun       =1600
       start(0, 0)
       natural(u1)=0 {(dp/dy)=0}
       natural(w)=0 {(dn/dy)=0}
       natural(v)         =0 {(dv/dy)=0}
       line to (Lx,0)

        node_spacing=2e-5
        value(u1)=u1pndc value(w)= wnndc value(v)=vcb+vcdbo
        line to (Lx,8*Ly)
        natural(u1)=0 natural(w)=0 natural(v)=0
        line to (0,8*Ly)

        node_spacing=2e-5
        value(u1)=u1pno value(w)= wnno value(v)=veb+vebo
        line to (0,3.5*Ly)
        natural(u1)=0 natural(w)=0 natural(v) =0
        line to (0, 2*Ly)

        node_spacing=2e-5
        value(u1)=u1ppo value(w)= wnpo value(v)=0
        line to (0, 1.25*Ly)



                                                 61
                                                         Appendix


   natural(u1)=0 natural(w)=0 natural(v) =0
   line to finish

Region 2 "pbase"
   NN        =NA
   mup       =300.000
   mun       =1300.000
   start (0, 8*Ly)
   line to (0,1*Ly)

   node_spacing=2e-5
   line to (0.28*Lx,1*Ly)

   node_spacing=2e-5
   line to (0.3*Lx, 1.2*Ly)

   node_spacing=2e-5
   line to (0.3*Lx,8*Ly)
   line to finish

Region 3 "nemitter"
   NN        =ND
   mup       =100.000
   mun       =300.000
   start "nn" (0, 8*Ly)
   line to (0, 2.5*Ly)

   node_spacing=2e-5
   line to (0.18*Lx,2.5*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 2.7*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 8*Ly)
   line to finish

Region 4 "n+collector"
  NN=NDCC
  mup=100.000
  mun=300.000
  start "nnn" (0.86*Lx,8*Ly)

   node_spacing=2e-5
   line to (0.86*Lx, 0)
   line to (Lx, 0)
   line to (Lx, 8*Ly)
   line to finish

Feature
   !start "backn" (Lx-2e-5,0) line to (Lx-2e-5, 8*Ly)
   !start "be" (0.385*Lx,0) line to (0.385*Lx,8*Ly)
   ! start "front" (0.05*Lx,0) line to (0.05*Lx, 8*Ly)
   start "top" (0,7.9*Ly)line to (Lx,7.9*Ly)
   start "bottom" (0, 0.1*Ly) line to (Lx,0.1*Ly)

Monitors
  contour (px)
  contour (nx)
  contour (v)



                                              62
                                                                                  Appendix



         elevation (p) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (n) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "v" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "v" from (0, 0.55*Ly) to (1*Lx, .55*Ly)
         {elevation (dot (uniti, jtot) )as "Jc" from (Lx, 0) to (Lx, 8*Ly)
         elevation (dot (uniti, jtot)) as "Je" from (0, 3*Ly) to (0, 8*Ly)
         elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 1.75*Ly)

         surface (v)
         surface (p)
         surface (n)}


      Plots

         contour (u1) print(240)
         contour (w) print(240)
         contour (v) print (240)
         contour (p) print(240)
         contour (n) print(240)
         elevation (px) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (nx) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
         {contour (n ) zoom(.1*Lx,0.65*Ly,0.25*Lx, Ly)}
         elevation (dot (uniti, jtot))as "Jc" from (Lx, 0) to (Lx, 8*Ly)
         elevation (dot (uniti, jtot)) as "Je" from (0, 3.5*Ly) to (0, 8*Ly)
         elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 2*Ly)
END




        bjt'
  Title '

  Select {page34}

         stages = 4 {page50, running 13 times}
         {aspect = 4 default value}
         {loglimit 15 default value}
         errlim = 5e-4
         nodelimit = 250000
         changelim =0.05

      Variables {page44}
        u1(range = -1,1)
        w(range = -1,1)
        v(range =-2,5)

  Definitions {page46}
     uniti     = vector (1.0000,0.000000)
     vcb       =0
     veb       =0



                                                    63
                                                                                             Appendix


        {vcb     = staged(2.2,2.4,2.6,2.8,3.0,3.0,3.0,3.0)}
        q        = 1.602e-19
        ktq      = 0.0259
        ni       = 1.45e10
        c        = 38.69565217

        {4 Stages}
        NDC = staged       ( 1e14, 4e14, 7e14, 1e15)
        NDCC = staged      ( 1e14, 4e14, 7e14, 1e15)
        NA      = staged   (-1e14,-4e14,-7e14,-1e15)
        ND      = staged   ( 1e14, 4e14, 7e14, 1e15)

          {6 Stages
          NDC = staged ( 1e11, 2e11)
          NDCC = staged ( 1e11)
          NA      = staged (-1e11)
          ND      = staged ( 1e11)
          }
          {4 Stages
          NDC = 5e15 {!staged ( 5e15, 5e15, 5e15)}
          NDCC = 5e15 {!staged ( 3e16 5e16, 5e17, 1e18)}
          NA      = -5e15 {!staged (-3e16,-5e16,-1e17)}
          ND      = 5e15 {! staged ( 3e16,5e16,1e17,1e18)}
          }
          ppo     = -0.5*NA+0.5*(NA^2+4*ni^2)^0.5
          u1ppo = ln(ppo/ni)*ktq
          npo     = ni*ni/ppo
          wnpo = ln(npo/ni)*ktq
          nno     =0.5*ND+0.5*(ND^2+4*ni^2)^0.5
          wnno = ln(nno/ni)*ktq
          pno     = ni*ni/nno
          u1pno =ln(pno/ni)*ktq
          {
          nnc     =0.5*NDC+0.5*(NDC^2+4*ni^2)^0.5
          pnc     = ni*ni/nnc
          }
          vebo    =ktq*ln(ppo*nno/ni^2)
          nndc    = 0.5*NDCC+0.5*(NDCC^2+4*ni^2)^0.5
          wnndc =ln(nndc/ni)*ktq
          pndc    = ni*ni/nndc
          u1pndc =ln(pndc/ni)*ktq
          vcdbo =ktq*ln(ppo*nndc/ni^2)
          Lx      =1.50e-3
          Ly      =2.00e-4
          ep      =11.7*8.854e-14
          zero    =1.e-18 {Zero is given an extremely small value because the program has a fault if a
real 0 is used}
          mup {Mobility}
          mun {Mobility}
          NN
          p=ni*exp(u1/ktq)
          n=ni*exp(w/ktq)

        dfp      =mup*ktq {Diffusion}
        dfn      =mun*ktq {Diffusion}
        taup     = 1.000e-6 {Lifetime}
        taun     = 1.000e-6 {Lifetime}
        jp       =q*(p*mup*(-grad(v))-dfp*grad(p)) {Current Density}
        jn       = q*(n*mun*(-grad(v))+dfn*grad(n)) {Current Density}
        jtot     =jp+jn {Total Current}



                                                  64
                                                                                         Appendix


        recom =(p*n-ni^2)/(taup*(n+ni)+taun*(p+ni)) {Recombination Rate}
        rs     =ZERO
        fir    =0.0259*ln((NN/2+sqrt(((NN/2)*(NN/2))+ni*ni))/ni) {no voltage applied}
        {
        px=p
        nx=n
        rho=p+NN-n

        pmin     =0
        nmin     =0

        px       = swage(p-pmin,pmin,p,1) {This command is used to return px a positive value in
replacement of p}
        nx       = swage(n-nmin,nmin,n,1) {This command is used to return nx a positive value in
replacement of n}
        }
        px=if p>=0 then p else 0
        nx=if n>=0 then n else 0

        rho      = (p+NN-n)

    Initial values
         u1               e:\thesis2\1e14.p01'
                   =table('                  )
         w                e:\thesis2\1e14.p02'
                   =table('                  )
         v                e:\thesis2\1e14.p03'
                   =table('                  )
         {
         u1=0
         w=0
         v=0
         }

     Equations
         (div(-px*mup*(-grad(v))+dfp*grad(p))-(px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0 {Hole
equation}
         (div(nx*mun*(-grad(v))+dfn*grad(n))- (px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0
{Electron equation}
          div(ep*grad(v))=-q*(rho)                                             {Poisson
equation}

     Boundaries
     Region 1 "ncollector"
       NN        =NDC
       mup       =500
       mun       =1600
       start(0, 0)
       natural(u1)=0 {(dp/dy)=0}
       natural(w)=0 {(dn/dy)=0}
       natural(v)         =0 {(dv/dy)=0}
       line to (Lx,0)

        node_spacing=2e-5
        value(u1)=u1pndc value(w)= wnndc value(v)=vcb+vcdbo
        line to (Lx,8*Ly)
        natural(u1)=0 natural(w)=0 natural(v)=0
        line to (0,8*Ly)

        node_spacing=2e-5
        value(u1)=u1pno value(w)= wnno value(v)=veb+vebo
        line to (0,3.5*Ly)
        natural(u1)=0 natural(w)=0 natural(v) =0



                                                 65
                                                         Appendix


   line to (0, 2*Ly)

   node_spacing=2e-5
   value(u1)=u1ppo value(w)= wnpo value(v)=0
   line to (0, 1.25*Ly)
   natural(u1)=0 natural(w)=0 natural(v) =0
   line to finish

Region 2 "pbase"
   NN        =NA
   mup       =300.000
   mun       =1300.000
   start (0, 8*Ly)
   line to (0,1*Ly)

   node_spacing=2e-5
   line to (0.28*Lx,1*Ly)

   node_spacing=2e-5
   line to (0.3*Lx, 1.2*Ly)

   node_spacing=2e-5
   line to (0.3*Lx,8*Ly)
   line to finish

Region 3 "nemitter"
   NN        =ND
   mup       =100.000
   mun       =300.000
   start "nn" (0, 8*Ly)
   line to (0, 2.5*Ly)

   node_spacing=2e-5
   line to (0.18*Lx,2.5*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 2.7*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 8*Ly)
   line to finish

Region 4 "n+collector"
  NN=NDCC
  mup=100.000
  mun=300.000
  start "nnn" (0.86*Lx,8*Ly)

   node_spacing=2e-5
   line to (0.86*Lx, 0)
   line to (Lx, 0)
   line to (Lx, 8*Ly)
   line to finish

Feature
   !start "backn" (Lx-2e-5,0) line to (Lx-2e-5, 8*Ly)
   !start "be" (0.385*Lx,0) line to (0.385*Lx,8*Ly)
   ! start "front" (0.05*Lx,0) line to (0.05*Lx, 8*Ly)
   start "top" (0,7.9*Ly)line to (Lx,7.9*Ly)
   start "bottom" (0, 0.1*Ly) line to (Lx,0.1*Ly)



                                             66
                                                                                  Appendix



      Monitors
        contour (px)
        contour (nx)
        contour (v)

         elevation (p) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (n) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "v" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "v" from (0, 0.55*Ly) to (1*Lx, .55*Ly)
         {elevation (dot (uniti, jtot) )as "Jc" from (Lx, 0) to (Lx, 8*Ly)
         elevation (dot (uniti, jtot)) as "Je" from (0, 3*Ly) to (0, 8*Ly)
         elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 1.75*Ly)

         surface (v)
         surface (p)
         surface (n)}


      Plots

         contour (u1) print(240)
         contour (w) print(240)
         contour (v) print (240)
         contour (p) print(240)
         contour (n) print(240)
         elevation (px) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (nx) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
         {contour (n ) zoom(.1*Lx,0.65*Ly,0.25*Lx, Ly)}
         elevation (dot (uniti, jtot))as "Jc" from (Lx, 0) to (Lx, 8*Ly)
         elevation (dot (uniti, jtot)) as "Je" from (0, 3.5*Ly) to (0, 8*Ly)
         elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 2*Ly)
END




        bjt'
  Title '

  Select {page34}

         stages = 4 {page50, running 13 times}
         {aspect = 4 default value}
         {loglimit 15 default value}
         errlim = 5e-4
         nodelimit = 250000
         changelim =0.05




                                                    67
                                                                                             Appendix


     Variables {page44}
       u1(range = -1,1)
       w(range = -1,1)
       v(range =-2,5)

     Definitions {page46}
        uniti     = vector (1.0000,0.000000)
        vcb       =0
        veb       =0
        {vcb      = staged(2.2,2.4,2.6,2.8,3.0,3.0,3.0,3.0)}
        q         = 1.602e-19
        ktq       = 0.0259
        ni        = 1.45e10
        c         = 38.69565217

        {4 Stages}
        NDC = staged        ( 1e15, 2e15, 3e15, 5e15)
        NDCC = staged       ( 1e15, 4e15, 7e15, 1e16)
        NA      = staged    (-1e15,-4e15,-7e15,-1e16)
        ND      = staged    ( 1e15, 4e15, 7e15, 1e16)

          {6 Stages
          NDC = staged ( 1e11, 2e11)
          NDCC = staged ( 1e11)
          NA      = staged (-1e11)
          ND      = staged ( 1e11)
          }
          {4 Stages
          NDC = 5e15 {!staged ( 5e15, 5e15, 5e15)}
          NDCC = 5e15 {!staged ( 3e16 5e16, 5e17, 1e18)}
          NA      = -5e15 {!staged (-3e16,-5e16,-1e17)}
          ND      = 5e15 {! staged ( 3e16,5e16,1e17,1e18)}
          }
          ppo     = -0.5*NA+0.5*(NA^2+4*ni^2)^0.5
          u1ppo = ln(ppo/ni)*ktq
          npo     = ni*ni/ppo
          wnpo = ln(npo/ni)*ktq
          nno     =0.5*ND+0.5*(ND^2+4*ni^2)^0.5
          wnno = ln(nno/ni)*ktq
          pno     = ni*ni/nno
          u1pno =ln(pno/ni)*ktq
          {
          nnc     =0.5*NDC+0.5*(NDC^2+4*ni^2)^0.5
          pnc     = ni*ni/nnc
          }
          vebo    =ktq*ln(ppo*nno/ni^2)
          nndc    = 0.5*NDCC+0.5*(NDCC^2+4*ni^2)^0.5
          wnndc =ln(nndc/ni)*ktq
          pndc    = ni*ni/nndc
          u1pndc =ln(pndc/ni)*ktq
          vcdbo =ktq*ln(ppo*nndc/ni^2)
          Lx      =1.50e-3
          Ly      =2.00e-4
          ep      =11.7*8.854e-14
          zero    =1.e-18 {Zero is given an extremely small value because the program has a fault if a
real 0 is used}
          mup {Mobility}
          mun {Mobility}
          NN
          p=ni*exp(u1/ktq)



                                                   68
                                                                                         Appendix


        n=ni*exp(w/ktq)

        dfp    =mup*ktq {Diffusion}
        dfn    =mun*ktq {Diffusion}
        taup   = 1.000e-6 {Lifetime}
        taun   = 1.000e-6 {Lifetime}
        jp     =q*(p*mup*(-grad(v))-dfp*grad(p)) {Current Density}
        jn     = q*(n*mun*(-grad(v))+dfn*grad(n)) {Current Density}
        jtot   =jp+jn {Total Current}
        recom =(p*n-ni^2)/(taup*(n+ni)+taun*(p+ni)) {Recombination Rate}
        rs     =ZERO
        fir    =0.0259*ln((NN/2+sqrt(((NN/2)*(NN/2))+ni*ni))/ni) {no voltage applied}
        {
        px=p
        nx=n
        rho=p+NN-n

        pmin     =0
        nmin     =0

        px       = swage(p-pmin,pmin,p,1) {This command is used to return px a positive value in
replacement of p}
        nx       = swage(n-nmin,nmin,n,1) {This command is used to return nx a positive value in
replacement of n}
        }
        px=if p>=0 then p else 0
        nx=if n>=0 then n else 0

        rho      = (p+NN-n)

    Initial values
         u1               e:\thesis2\1e15.p01'
                   =table('                  )
         w                e:\thesis2\1e15.p02'
                   =table('                  )
         v                e:\thesis2\1e15.p03'
                   =table('                  )
         {
         u1=0
         w=0
         v=0
         }

     Equations
         (div(-px*mup*(-grad(v))+dfp*grad(p))-(px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0 {Hole
equation}
         (div(nx*mun*(-grad(v))+dfn*grad(n))- (px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0
{Electron equation}
          div(ep*grad(v))=-q*(rho)                                             {Poisson
equation}

     Boundaries
     Region 1 "ncollector"
       NN        =NDC
       mup       =500
       mun       =1600
       start(0, 0)
       natural(u1)=0 {(dp/dy)=0}
       natural(w)=0 {(dn/dy)=0}
       natural(v)         =0 {(dv/dy)=0}
       line to (Lx,0)

        node_spacing=2e-5



                                                 69
                                                         Appendix


   value(u1)=u1pndc value(w)= wnndc value(v)=vcb+vcdbo
   line to (Lx,8*Ly)
   natural(u1)=0 natural(w)=0 natural(v)=0
   line to (0,8*Ly)

   node_spacing=2e-5
   value(u1)=u1pno value(w)= wnno value(v)=veb+vebo
   line to (0,3.5*Ly)
   natural(u1)=0 natural(w)=0 natural(v) =0
   line to (0, 2*Ly)

   node_spacing=2e-5
   value(u1)=u1ppo value(w)= wnpo value(v)=0
   line to (0, 1.25*Ly)
   natural(u1)=0 natural(w)=0 natural(v) =0
   line to finish

Region 2 "pbase"
   NN        =NA
   mup       =300.000
   mun       =1300.000
   start (0, 8*Ly)
   line to (0,1*Ly)

   node_spacing=2e-5
   line to (0.28*Lx,1*Ly)

   node_spacing=2e-5
   line to (0.3*Lx, 1.2*Ly)

   node_spacing=2e-5
   line to (0.3*Lx,8*Ly)
   line to finish

Region 3 "nemitter"
   NN        =ND
   mup       =100.000
   mun       =300.000
   start "nn" (0, 8*Ly)
   line to (0, 2.5*Ly)

   node_spacing=2e-5
   line to (0.18*Lx,2.5*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 2.7*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 8*Ly)
   line to finish

Region 4 "n+collector"
  NN=NDCC
  mup=100.000
  mun=300.000
  start "nnn" (0.86*Lx,8*Ly)

   node_spacing=2e-5
   line to (0.86*Lx, 0)
   line to (Lx, 0)



                                        70
                                                                                  Appendix


         line to (Lx, 8*Ly)
         line to finish

      Feature
         !start "backn" (Lx-2e-5,0) line to (Lx-2e-5, 8*Ly)
         !start "be" (0.385*Lx,0) line to (0.385*Lx,8*Ly)
         ! start "front" (0.05*Lx,0) line to (0.05*Lx, 8*Ly)
         start "top" (0,7.9*Ly)line to (Lx,7.9*Ly)
         start "bottom" (0, 0.1*Ly) line to (Lx,0.1*Ly)

      Monitors
        contour (px)
        contour (nx)
        contour (v)

         elevation (p) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (n) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "v" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "v" from (0, 0.55*Ly) to (1*Lx, .55*Ly)
         {elevation (dot (uniti, jtot) )as "Jc" from (Lx, 0) to (Lx, 8*Ly)
         elevation (dot (uniti, jtot)) as "Je" from (0, 3*Ly) to (0, 8*Ly)
         elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 1.75*Ly)

         surface (v)
         surface (p)
         surface (n)}


      Plots

         contour (u1) print(240)
         contour (w) print(240)
         contour (v) print (240)
         contour (p) print(240)
         contour (n) print(240)
         elevation (px) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (nx) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
         {contour (n ) zoom(.1*Lx,0.65*Ly,0.25*Lx, Ly)}
         elevation (dot (uniti, jtot))as "Jc" from (Lx, 0) to (Lx, 8*Ly)
         elevation (dot (uniti, jtot)) as "Je" from (0, 3.5*Ly) to (0, 8*Ly)
         elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 2*Ly)
END




        bjt'
  Title '




                                                    71
                                                          Appendix


Select {page34}

    stages = 4 {page50, running 13 times}
    {aspect = 4 default value}
    {loglimit 15 default value}
    errlim = 5e-4
    nodelimit = 250000
    changelim =0.05

Variables {page44}
  u1(range = -1,1)
  w(range = -1,1)
  v(range =-2,5)

Definitions {page46}
   uniti     = vector (1.0000,0.000000)
   vcb       =0
   veb       =0
   {vcb      = staged(2.2,2.4,2.6,2.8,3.0,3.0,3.0,3.0)}
   q         = 1.602e-19
   ktq       = 0.0259
   ni        = 1.45e10
   c         = 38.69565217

   {4 Stages}
   NDC = staged        ( 5e15, 5e15, 5e15, 5e15)
   NDCC = staged       ( 1e16, 4e16, 7e16, 1e17)
   NA      = staged    (-1e16,-4e16,-7e16,-1e17)
   ND      = staged    ( 1e16, 4e16, 7e16, 1e17)

   {6 Stages
   NDC = staged ( 1e11, 2e11)
   NDCC = staged ( 1e11)
   NA      = staged (-1e11)
   ND      = staged ( 1e11)
   }
   {4 Stages
   NDC = 5e15 {!staged ( 5e15, 5e15, 5e15)}
   NDCC = 5e15 {!staged ( 3e16 5e16, 5e17, 1e18)}
   NA      = -5e15 {!staged (-3e16,-5e16,-1e17)}
   ND      = 5e15 {! staged ( 3e16,5e16,1e17,1e18)}
   }
   ppo     = -0.5*NA+0.5*(NA^2+4*ni^2)^0.5
   u1ppo = ln(ppo/ni)*ktq
   npo     = ni*ni/ppo
   wnpo = ln(npo/ni)*ktq
   nno     =0.5*ND+0.5*(ND^2+4*ni^2)^0.5
   wnno = ln(nno/ni)*ktq
   pno     = ni*ni/nno
   u1pno =ln(pno/ni)*ktq
   {
   nnc     =0.5*NDC+0.5*(NDC^2+4*ni^2)^0.5
   pnc     = ni*ni/nnc
   }
   vebo    =ktq*ln(ppo*nno/ni^2)
   nndc    = 0.5*NDCC+0.5*(NDCC^2+4*ni^2)^0.5
   wnndc =ln(nndc/ni)*ktq
   pndc    = ni*ni/nndc
   u1pndc =ln(pndc/ni)*ktq
   vcdbo =ktq*ln(ppo*nndc/ni^2)



                                              72
                                                                                             Appendix


          Lx      =1.50e-3
          Ly      =2.00e-4
          ep      =11.7*8.854e-14
          zero    =1.e-18 {Zero is given an extremely small value because the program has a fault if a
real 0 is used}
          mup {Mobility}
          mun {Mobility}
          NN
          p=ni*exp(u1/ktq)
          n=ni*exp(w/ktq)

        dfp    =mup*ktq {Diffusion}
        dfn    =mun*ktq {Diffusion}
        taup   = 1.000e-6 {Lifetime}
        taun   = 1.000e-6 {Lifetime}
        jp     =q*(p*mup*(-grad(v))-dfp*grad(p)) {Current Density}
        jn     = q*(n*mun*(-grad(v))+dfn*grad(n)) {Current Density}
        jtot   =jp+jn {Total Current}
        recom =(p*n-ni^2)/(taup*(n+ni)+taun*(p+ni)) {Recombination Rate}
        rs     =ZERO
        fir    =0.0259*ln((NN/2+sqrt(((NN/2)*(NN/2))+ni*ni))/ni) {no voltage applied}
        {
        px=p
        nx=n
        rho=p+NN-n

         pmin     =0
         nmin     =0

        px       = swage(p-pmin,pmin,p,1) {This command is used to return px a positive value in
replacement of p}
        nx       = swage(n-nmin,nmin,n,1) {This command is used to return nx a positive value in
replacement of n}
        }
        px=if p>=0 then p else 0
        nx=if n>=0 then n else 0

         rho      = (p+NN-n)

     Initial values
          u1               e:\thesis2\1e16.p01'
                    =table('                  )
          w                e:\thesis2\1e16.p02'
                    =table('                  )
          v                e:\thesis2\1e16.p03'
                    =table('                  )
          {
          u1=0
          w=0
          v=0
          }

     Equations
         (div(-px*mup*(-grad(v))+dfp*grad(p))-(px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0 {Hole
equation}
         (div(nx*mun*(-grad(v))+dfn*grad(n))- (px*nx-ni^2)/(taup*(nx+ni)+taun*(px+ni)))=0
{Electron equation}
          div(ep*grad(v))=-q*(rho)                                             {Poisson
equation}

     Boundaries
     Region 1 "ncollector"
       NN       =NDC



                                                  73
                                                         Appendix


   mup       =500
   mun       =1600
   start(0, 0)
   natural(u1)=0 {(dp/dy)=0}
   natural(w)=0 {(dn/dy)=0}
   natural(v)       =0 {(dv/dy)=0}
   line to (Lx,0)

   node_spacing=2e-5
   value(u1)=u1pndc value(w)= wnndc value(v)=vcb+vcdbo
   line to (Lx,8*Ly)
   natural(u1)=0 natural(w)=0 natural(v)=0
   line to (0,8*Ly)

   node_spacing=2e-5
   value(u1)=u1pno value(w)= wnno value(v)=veb+vebo
   line to (0,3.5*Ly)
   natural(u1)=0 natural(w)=0 natural(v) =0
   line to (0, 2*Ly)

   node_spacing=2e-5
   value(u1)=u1ppo value(w)= wnpo value(v)=0
   line to (0, 1.25*Ly)
   natural(u1)=0 natural(w)=0 natural(v) =0
   line to finish

Region 2 "pbase"
   NN        =NA
   mup       =300.000
   mun       =1300.000
   start (0, 8*Ly)
   line to (0,1*Ly)

   node_spacing=2e-5
   line to (0.28*Lx,1*Ly)

   node_spacing=2e-5
   line to (0.3*Lx, 1.2*Ly)

   node_spacing=2e-5
   line to (0.3*Lx,8*Ly)
   line to finish

Region 3 "nemitter"
   NN        =ND
   mup       =100.000
   mun       =300.000
   start "nn" (0, 8*Ly)
   line to (0, 2.5*Ly)

   node_spacing=2e-5
   line to (0.18*Lx,2.5*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 2.7*Ly)

   node_spacing=2e-5
   line to (0.2*Lx, 8*Ly)
   line to finish




                                        74
                                                                                  Appendix


      Region 4 "n+collector"
        NN=NDCC
        mup=100.000
        mun=300.000
        start "nnn" (0.86*Lx,8*Ly)

         node_spacing=2e-5
         line to (0.86*Lx, 0)
         line to (Lx, 0)
         line to (Lx, 8*Ly)
         line to finish

      Feature
         !start "backn" (Lx-2e-5,0) line to (Lx-2e-5, 8*Ly)
         !start "be" (0.385*Lx,0) line to (0.385*Lx,8*Ly)
         ! start "front" (0.05*Lx,0) line to (0.05*Lx, 8*Ly)
         start "top" (0,7.9*Ly)line to (Lx,7.9*Ly)
         start "bottom" (0, 0.1*Ly) line to (Lx,0.1*Ly)

      Monitors
        contour (px)
        contour (nx)
        contour (v)

         elevation (p) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (n) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "v" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "v" from (0, 0.55*Ly) to (1*Lx, .55*Ly)
         {elevation (dot (uniti, jtot) )as "Jc" from (Lx, 0) to (Lx, 8*Ly)
         elevation (dot (uniti, jtot)) as "Je" from (0, 3*Ly) to (0, 8*Ly)
         elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 1.75*Ly)

         surface (v)
         surface (p)
         surface (n)}


      Plots

         contour (u1) print(240)
         contour (w) print(240)
         contour (v) print (240)
         contour (p) print(240)
         contour (n) print(240)
         elevation (px) as "holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (nx) as "electrons " from (0, 5*Ly) to (1*Lx, 5*Ly)
         {contour (n ) zoom(.1*Lx,0.65*Ly,0.25*Lx, Ly)}
         elevation (dot (uniti, jtot))as "Jc" from (Lx, 0) to (Lx, 8*Ly)
         elevation (dot (uniti, jtot)) as "Je" from (0, 3.5*Ly) to (0, 8*Ly)
         elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 2*Ly)
END




                                                    75
                                                                                                  Appendix




           bjt'
     Title '

     Select {page34}

         stages = 16 {page50, running 16 times}
         {aspect = 4 default value}
         {loglimit 15 default value}
         errlim = 1e-3
         nodelimit = 100000
         changelim =0.05

     Variables {page44}
       u(range = -1,1)
       v(range = -1,1)
       voltage(range=-2,10)

     Definitions {page46}
         uniti    = vector (1.0000,0.000000)
         vcb      = staged ( 0.00, 0.4, 0.8, 1.2, 1.6, 2, 2.4, 2.8, 3.2, 3.6, 4, 4.4, 4.8, 5.2, 5.6, 6)
         veb      = staged ( 0.00,-0.02,-0.04,-0.06,-0.08,-0.10,-0.12,-0.04,-0.06,-0.08,-0.20,-0.25,-
0.30,-0.35,-0.40,-0.45,-0.50,-0.55,
                            -0.60)
         q        = 1.602e-19
         ktq      = 0.0259
         ni       = 1.45e10
         ni_sq = 2.1025e20

         NDC      = 5e15
         NDCC     = 1e18
         NA       =-1e17
         ND       = 1e18

{        ppo      = -0.5*NA+0.5*(NA^2+4*ni_sq)^0.5
         uppo     = ln(ppo/ni)*ktq
         npo      = ni_sq/ppo
         vnpo     = ln(npo/ni)*ktq
         nno      =0.5*ND+0.5*(ND^2+4*ni_sq)^0.5
         vnno     = ln(nno/ni)*ktq
         pno      = ni_sq/nno
         upno     =ln(pno/ni)*ktq
         vebo     =ktq*ln(ppo*nno/ni_sq)
         nndc     = 0.5*NDCC+0.5*(NDCC^2+4*ni_sq)^0.5
         vnndc    =ln(nndc/ni)*ktq
         pndc     = ni_sq/nndc
         upndc    =ln(pndc/ni)*ktq
         vcdbo    =ktq*ln(ppo*nndc/ni_sq)
}

         ppo      = 1e17
         uppo     = 0.4078351811
         npo      = 2102.5
         vnpo     = -0.1771205687
         nno      = 1e18



                                                    76
                                                                                            Appendix


        vnno     = 0.4674721352
        pno      = 210.25
        upno     =-0.4674721352
        vebo     = 0.8753073164
        nndc     = 1e18
        vnndc    = 0.4674721352
        pndc     = 210.25
        upndc    =-0.4674721352
        vcdbo    = 0.8753073164

          Lx     =1.50e-3
          Ly     =2.00e-4
          ep     =11.7*8.854e-14
          zero   =1.e-18 {Zero is given an extremely small value because the program has a fault if a
real 0 is used}
          mup {Mobility}
          mun {Mobility}
          NN

        ux=if u>=-1 then u else -1
        vx=if v>=-1 then v else -1

        p=ni*exp(ux/ktq)
        n=ni*exp(vx/ktq)

        dfp      =mup*ktq {Diffusion}
        dfn      =mun*ktq {Diffusion}
        taup     = 1.000e-6 {Lifetime}
        taun     = 1.000e-6 {Lifetime}
        jp       =q*(p*mup*(-grad(voltage))-dfp*grad(p)) {Current Density}
        sub1     = (n*mun*(-grad(voltage))+dfn*grad(n))
        jn       = q*sub1 {Current Density}
        jtot     =jp+jn {Total Current}
        recom    =(p*n-ni_sq)/(taup*(n+ni)+taun*(p+ni)) {Recombination Rate}
        rs       =ZERO
        rho      = (p+NN-n)


    Initial values
         u                c:\melvin\thesis\vcb0_veb_0_47.p01'
                   =table('                                 )
         v                c:\melvin\thesis\vcb0_veb_0_47.p02'
                   =table('                                 )
         voltage =table('                                   )
                          c:\melvin\thesis\vcb0_veb_0_47.p03'

     Equations
         (div(-p*mup*(-grad(voltage))+dfp*grad(p))-recom)=0 {Hole equation}
         (div(sub1)- recom)=0 {Electron equation}
          div(ep*grad(voltage))=-q*(rho)                                                    {Poisson
equation}

     Boundaries
     Region 1 "ncollector"
       NN        =NDC
       mup       =500
       mun       =1600
       start(0, 0)
       natural(u)=0 {(dp/dy)=0}
       natural(v)=0 {(dn/dy)=0}
       natural(voltage) =0 {(dv/dy)=0}
       line to (Lx,0)




                                                 77
                                                             Appendix


   node_spacing=2e-5
   value(u)=upndc value(v)= vnndc value(voltage)=vcb+vcdbo
   line to (Lx,8*Ly)
   natural(u)=0 natural(v)=0 natural(voltage)=0
   line to (0,8*Ly)

   node_spacing=2e-5
   value(u)=upno value(v)= vnno value(voltage)=veb+vebo
   line to (0,3.5*Ly)
   natural(u)=0 natural(v)=0 natural(voltage) =0
   line to (0, 2*Ly)

   node_spacing=2e-5
   value(u)=uppo value(v)= vnpo value(voltage)=zero
   line to (0, 1.25*Ly)
   natural(u)=0 natural(v)=0 natural(voltage) =0
   line to finish

Region 2 "pbase"
   NN        =NA
   mup       =300.000
   mun       =1300.000
   start (0, 8*Ly)
   line to (0,1*Ly)

   node_spacing=0.2e-5
   line to (0.28*Lx,1*Ly)

   node_spacing=0.2e-5
   line to (0.3*Lx, 1.2*Ly)

   node_spacing=0.2e-5
   line to (0.3*Lx,8*Ly)
   line to finish

Region 3 "nemitter"
   NN        =ND
   mup       =100.000
   mun       =300.000
   start "nn" (0, 8*Ly)
   line to (0, 2.5*Ly)

   node_spacing=0.2e-5
   line to (0.18*Lx,2.5*Ly)

   node_spacing=0.2e-5
   line to (0.2*Lx, 2.7*Ly)

   node_spacing=0.2e-5
   line to (0.2*Lx, 8*Ly)
   line to finish

Region 4 "n+collector"
  NN=NDCC
  mup=100.000
  mun=300.000
  start "nnn" (0.86*Lx,8*Ly)

   node_spacing=0.2e-5
   line to (0.86*Lx, 0)



                                         78
                                                                                  Appendix


         line to (Lx, 0)
         line to (Lx, 8*Ly)
         line to finish

      Feature
         !start "backn" (Lx-2e-5,0) line to (Lx-2e-5, 8*Ly)
         !start "be" (0.385*Lx,0) line to (0.385*Lx,8*Ly)
         ! start "front" (0.05*Lx,0) line to (0.05*Lx, 8*Ly)
         start "top" (0,7.9*Ly)line to (Lx,7.9*Ly)
         start "bottom" (0, 0.1*Ly) line to (Lx,0.1*Ly)


      Monitors
        contour (u)
        contour (v)
        contour (p)
        contour (n)
        contour (voltage)

         elevation (p) as "Holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (n) as "Electrons" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (u) as "Holes Log" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "Electrons Log 1" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "Electrons Log 2" from (0, 1.8*Ly) to (1*Lx, 1.8*Ly)
         elevation (voltage) as "Potential" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (voltage) as "Potential" from (0, 0.55*Ly) to (1*Lx, .55*Ly)
         elevation (dot (uniti, jtot) )as "Jc" from (Lx, 0) to (Lx, 8*Ly)
         elevation (dot (uniti, jtot)) as "Je" from (0, 3*Ly) to (0, 8*Ly)
         elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 1.75*Ly)

      Plots

         contour (u) print(240)
         contour (v) print(240)
         contour (ux) print(240)
         contour (vx) print(240)
         contour (voltage) print (240)
         contour (p) print(240)
         contour (n) print(240)
         elevation (p) as "Holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (n) as "Electrons" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (u) as "Holes Log" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "Electrons Log 1" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "Electrons Log 2" from (0, 1.8*Ly) to (1*Lx, 1.8*Ly)
         elevation (voltage) as "Potential" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (voltage) as "Potential" from (0, 0.55*Ly) to (1*Lx, .55*Ly)
         elevation (dot (uniti, jtot))as "Jc" from (Lx, 0) to (Lx, 8*Ly)
         elevation (dot (uniti, jtot)) as "Je" from (0, 3.5*Ly) to (0, 8*Ly)
         elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 2*Ly)


END




                                                   79
                                                                                                 Appendix




           bjt'
     Title '

     Select {page34}

         stages = 42 {page50, running 3 times}
         aspect = 4
         loglimit 15
         errlim = 1e-3
         nodelimit = 120000
         changelim =0.05

     Variables {page44}
       u(range = -1,1)
       v(range = -1,1)
       voltage(range=-2,10)

     Definitions {page46}
         uniti     = vector (1.0000,0.000000)
         vcb       = staged( 0.30, 0.40, 0.50, 0.55, 0.60, 0.70, 0.80, 0.85, 0.90, 0.95, 1.00, 1.10, 1.15,
1.20, 1.25, 1.30, 1.35, 1.40,
                              1.50, 1.55, 1.60, 1.60, 1.65, 1.70, 1.75, 1.80, 1.85, 1.90, 1.95, 2.00, 2.05,
2.10, 2.15, 2.20, 2.25, 2.30,
                              2.35, 2.40, 2.45, 2.50, 2.55, 2.60)
         veb       = staged(-0.30,-0.40,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-
0.50,-0.50,-0.50,-0.50,-0.50,-0.50,
                            -0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-
0.50,-0.50,-0.50,-0.50,-0.50,
                            -0.50,-0.50,-0.50,-0.50,-0.50,-0.50)
         q         = 1.602e-19
         ktq       = 0.0259
         ni        = 1.45e10
         ni_sq = 2.1025e20


         NDC      = 5e15
         NDCC     = 1e18
         NA       = -1e17
         ND       = 1e18

         ppo      = -0.5*NA+0.5*(NA^2+4*ni_sq)^0.5
         uppo     = ln(ppo/ni)*ktq
         npo      = ni_sq/ppo
         vnpo     = ln(npo/ni)*ktq
         nno      =0.5*ND+0.5*(ND^2+4*ni_sq)^0.5



                                                    80
                                                                                            Appendix


        vnno     = ln(nno/ni)*ktq
        pno      = ni_sq/nno
        upno     =ln(pno/ni)*ktq
        vebo     =ktq*ln(ppo*nno/ni_sq)
        nndc     = 0.5*NDCC+0.5*(NDCC^2+4*ni_sq)^0.5
        vnndc    =ln(nndc/ni)*ktq
        pndc     = ni_sq/nndc
        upndc    =ln(pndc/ni)*ktq
        vcdbo    =ktq*ln(ppo*nndc/ni_sq)

          Lx     =1.50e-3
          Ly     =2.00e-4
          ep     =11.7*8.854e-14
          zero   =1.e-18 {Zero is given an extremely small value because the program has a fault if a
real 0 is used}
          mup {Mobility}
          mun {Mobility}
          NN

        ux=if u>=-1 then u else -1
        vx=if v>=-1 then v else -1

        p=ni*exp(ux/ktq)
        n=ni*exp(vx/ktq)

        dfp      =mup*ktq {Diffusion}
        dfn      =mun*ktq {Diffusion}
        taup     = 1.000e-6 {Lifetime}
        taun     = 1.000e-6 {Lifetime}
        jp       =q*(p*mup*(-grad(voltage))-dfp*grad(p)) {Current Density}
        sub1     = (n*mun*(-grad(voltage))+dfn*grad(n))
        jn       = q*sub1 {Current Density}
        jtot     =jp+jn {Total Current}
        recom    =(p*n-ni_sq)/(taup*(n+ni)+taun*(p+ni)) {Recombination Rate}
        rs       =ZERO
        rho      = (p+NN-n)


    Initial values
         u                c:\melvin\thesis\0_03.p01'
                   =table('                        )
         v                c:\melvin\thesis\0_03.p02'
                   =table('                        )
         voltage =table('                          )
                          c:\melvin\thesis\0_03.p03'

     Equations
         (div(-p*mup*(-grad(voltage))+dfp*grad(p))-recom)=0 {Hole equation}
         (div(sub1)- recom)=0 {Electron equation}
          div(ep*grad(voltage))=-q*(rho)                                                    {Poisson
equation}

     Boundaries
     Region 1 "ncollector"
       NN        =NDC
       mup       =500
       mun       =1600
       start(0, 0)
       natural(u)=0 {(dp/dy)=0}
       natural(v)=0 {(dn/dy)=0}
       natural(voltage) =0 {(dv/dy)=0}
       line to (Lx,0)




                                                 81
                                                             Appendix


   node_spacing=2e-5
   value(u)=upndc value(v)= vnndc value(voltage)=vcb+vcdbo
   line to (Lx,8*Ly)
   natural(u)=0 natural(v)=0 natural(voltage)=0
   line to (0,8*Ly)

   node_spacing=2e-5
   value(u)=upno value(v)= vnno value(voltage)=veb+vebo
   line to (0,3.5*Ly)
   natural(u)=0 natural(v)=0 natural(voltage) =0
   line to (0, 2*Ly)

   node_spacing=2e-5
   value(u)=uppo value(v)= vnpo value(voltage)=0
   line to (0, 1.25*Ly)
   natural(u)=0 natural(v)=0 natural(voltage) =0
   line to finish

Region 2 "pbase"
   NN        =NA
   mup       =300.000
   mun       =1300.000
   start (0, 8*Ly)
   line to (0,1*Ly)

   node_spacing=0.4e-5
   line to (0.28*Lx,1*Ly)

   node_spacing=0.4e-5
   line to (0.3*Lx, 1.2*Ly)

   node_spacing=0.4e-5
   line to (0.3*Lx,8*Ly)
   line to finish

Region 3 "nemitter"
   NN        =ND
   mup       =100.000
   mun       =300.000
   start "nn" (0, 8*Ly)
   line to (0, 2.5*Ly)

   node_spacing=0.4e-5
   line to (0.18*Lx,2.5*Ly)

   node_spacing=0.4e-5
   line to (0.2*Lx, 2.7*Ly)

   node_spacing=0.4e-5
   line to (0.2*Lx, 8*Ly)
   line to finish

Region 4 "n+collector"
  NN=NDCC
  mup=100.000
  mun=300.000
  start "nnn" (0.86*Lx,8*Ly)

   node_spacing=0.4e-5
   line to (0.86*Lx, 0)



                                         82
                                                                                  Appendix


         line to (Lx, 0)
         line to (Lx, 8*Ly)
         line to finish

      Feature
         !start "backn" (Lx-2e-5,0) line to (Lx-2e-5, 8*Ly)
         !start "be" (0.385*Lx,0) line to (0.385*Lx,8*Ly)
         ! start "front" (0.05*Lx,0) line to (0.05*Lx, 8*Ly)
         start "top" (0,7.9*Ly)line to (Lx,7.9*Ly)
         start "bottom" (0, 0.1*Ly) line to (Lx,0.1*Ly)

           Monitors
         contour (u)
         contour (v)
         contour (p)
         contour (n)
         contour (voltage)

         elevation (p) as "Holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (n) as "Electrons" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (u) as "Holes Log" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "Electrons Log 1" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "Electrons Log 2" from (0, 2*Ly) to (1*Lx, 1.8*Ly)
         elevation (voltage) as "Potential" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (voltage) as "Potential" from (0, 0.55*Ly) to (1*Lx, .55*Ly)
         elevation (dot (uniti, jtot) )as "Jc" from (Lx, 0) to (Lx, 8*Ly)
         elevation (dot (uniti, jtot)) as "Je" from (0, 3*Ly) to (0, 8*Ly)
         elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 1.75*Ly)

      Plots

         contour (u) print(240)
         contour (v) print(240)
         contour (voltage) print (240)
         contour (p) print(240)
         contour (n) print(240)
         elevation (p) as "Holes" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (n) as "Electrons" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (u) as "Holes Log" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "Electrons Log 1" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (v) as "Electrons Log 2" from (0, 2*Ly) to (1*Lx, 1.8*Ly)
         elevation (voltage) as "Potential" from (0, 5*Ly) to (1*Lx, 5*Ly)
         elevation (dot (uniti, jtot))as "Jc" from (Lx, 0) to (Lx, 8*Ly)
         elevation (dot (uniti, jtot)) as "Je" from (0, 3.5*Ly) to (0, 8*Ly)
         elevation (dot (uniti, jtot))as "Jb" from (0, 1.25*Ly) to (0, 2*Ly)

END




                                                   83
                                                                          Reference


References

Robert Boylestad and Louis Nashelsky, “Electronic Devices and Circuit Theory”,
1996

Ben G. Streetman, “Solid State Electronic Devices”, 2000

Bar-Lev, Adir, “Semiconductor and electronic devices”, 1993

Seeger, Karlheinz, “Semiconductor physics: An introduction”, 1999

IEEE Transaction on education. Vol 42 No1

http://www.element.hr/izdanja/static/id/9-11/en/contents.html

http://www.mtmi.vu.lt/

http://ece-www.colorado.edu/

http://www.iop.org/

http://www.pdesolutions.com

http://www.eleceng.ohio-state.edu/~roblin/test432/bjt/testall.html

http://www.wikipedia.org/wiki/Bipolar_transistor

http://semiconductorglossary.com/




                                          84

								
To top