VIEWS: 0 PAGES: 92 CATEGORY: Travel POSTED ON: 8/2/2010
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