Page 1

MODELLING OF SEMICONDUCTOR DEVICES

FOR ICS AND VLSI

A Thesis

Presented to the Graduate School

Faculty of Engineering, Alexandria University

In Partial fulfillment of the

Requirements for the Degree

Of

Master of Science

In

Electrical Engineering

By

Sameh Ahmed Yousry

2006

Page 2

MODELLING OF SEMICONDUCTOR DEVICES

FOR ICS AND VLSI

Presented by

For the Degree of

Master of Science

In

Electrical Engineering

By

Sameh Ahmed Yousry

Examiners’ Committee Approved

Prof. Ahmed K. Abouelsoud ……………..

Prof. Hany Fekry Ragaie ………..…...

Prof. Mohamed I. Elbanna ……………..

Page 3

Advisor’s Committee

Prof. Mohamed Ismail Elbanna

Dr. Tawfik Nammour

Page 4

ACKNOWLEDGMENTS

I would like to give my deep thanks to Prof. Mohamed Elbanna who initiated this work

and whose persistent guidance was behind its completion.

The members of the evaluation committee are deeply thanked for giving their

invaluable time to read and evaluate this thesis.

I would like to express my gratitude to Prof. S. Micheletti and Prof. F. Brezzi,

Universita di Pavia, who helped me in the numerical solution part of the DD model.

Their guidance was of an important help in the completion of this work.

I would like to thank Prof. S. Holst, Universitat Trier, for his help when I faced real

problems with the solution of Poisson's equation. He gave me the clue for obtaining

the suitable Jacobian of the system.

Many thanks to my friend Abd Elhamid Salah Eldin for his help in working with the

Visual C++ tool.

I owe many thanks to all my family, especially my parents for their continuing

sacrifice, support, and encouragement during the course of my research.

Finally, I am grateful to my wife, for her unwavering support and her patience while I

was spending many hours working on my PC.

i

Page 5

ABSTRACT

This thesis is concerned about Simulation of semiconductor devices. Simulation of

semiconductor devices aims at solving the semiconductor partial differential equations

(PDE) for different device geometry and parameters. Device simulators help the device

engineer to create, test and verify novel structures. This increases our physical knowledge

without even going to the laboratory. In the era of the ever-decreasing device structures

simulation methods must be validated and the device engineer must rely on it, since the

cost of manufacturing a device to test is high.

This thesis discusses the requirements needed to implement such a simulator. Several

computational challenges and how they can be solved are presented. It was the aim of this

thesis to implement a device simulator using an object-oriented programming (OOP)

methodology. OOP is a modern programming approach which makes it easy to increase

the program capabilities while keeping the program neat and tight.

The thesis was divided into two main components: geometry and computation. The

geometry component deals with the geometrical aspects ( geometry intersection, point

inclusion, mesh generation and neighborhood adjacency relationships ). We used

Semiconductor Wafer Representation (SWR)model, the well known standard by

Stanford, for implementing the geometry component. SWR does not provide details about

the implementation, it mainly concerned about giving the interface. We tried to keep

close to the standard as we could. Since our simulator is designed to be used for different

device structures, It is important for the mesh generation procedures to deal with

irregularities in the device. Triangles are chosen as the mesh elements. Since we use

OOP, a triangle is inherited from a more abstract polygon class so that different polygonal

elements can be used as well. The simulator is implemented to deal with polygonal

devices but, curved boundaries can be added by inheriting a curve from the basic Edge

class as well.

The geometry algorithms: point inclusion, region intersections, storage of device, etc..

are chosen to be efficient and general and that is the real challenge since, efficiency

doesn't always go well with generality. Therefore, we are biased to generality when

generality is a must, otherwise efficiency has the higher priority. Since the variables

(electric field, electric current, potentials,..etc..) may change with different orders of

magnitude in small regions, adaptive mesh is required. A quad-tree algorithm is used for

generating the mesh. The algorithm goes by spatially decomposing the device domain

into squares when the level of a nodal point is higher than the level of the square. This

will

ii

Page 6

generate an adaptive spatial decomposition. Triangulation in the interior of the device is

done using certain patterns. The boundary zone (known as delta zone) is isolated from the

device region and triangulated using Constrained Delaunay Triangulation ( CDT )

algorithm. CDT is a complex and expensive (from the computational point of view )

algorithm. Fortunately, it is used only in the delta-zone.

The computational component is a real challenge as well. For different device

structures as well as in different modes of operation certain parameters and functions may

dominate while others may be negligible. The simulator has to deal with this. Different

mobility, recombination and generation models can be incorporated to the simulator. The

simulator user has to be free to use the model he wants. Not only that, but the user can

even implement his own models and test them. Again, OOP plays the important role here.

Models are inherited from a general, abstract function class. The user can do what ever he

wants inside the function, but since all functions have the same interface, the simulator

will not distinguish between them.

There are different device models, Hydrodynamic, Energy Transport, Drift-

Diffusion,..etc.. Even the Drift-Diffusion model, which is the simplest model, is complex

in its own. The Drift-Diffusion model consists of three coupled nonlinear partial

differential equations. There are different discretization schemes for discretizing the

system of equations. We used a hybrid mixed finite element scheme. This scheme gives

us some sort of continuity for the electric flux ( required when using different materials )

and current density. It is common for a practical device consisting of different sub-regions

to be discretized using thousands of elements. This will lead to thousands of variables and

millions of matrices elements. Fortunately, the finite element scheme is sparse in nature.

Using different sparse techniques depending on the nature of the matrix is another use of

OOP. Nonlinear Poisson's equation is linearized. The linearized system was solved using

a global Newton method algorithm. Global Newton method converges to the exact

solution whatever the initial guess is.

Different results, a PN junction and a MOS device are shown. Different channel

lengths are entered to the simulator and the I-V characteristics are drawn. The results

shown are highly compatible with the analytical formulae.

MATLAB was originally used for displaying the geometry, mesh as well as plotting

the I-V characteristics. Another version is implemented which uses the windows

application interfaces for entering the device, setting the different parameters as well as

generating the mesh.

SEMILAB is the result of this thesis. It is a mini simulator, which shows how

sophisticated a device simulator is.

iii

Page 7

TABLE OF CONTENTS

ACKNOWLEDGEMENT........................................................................................i

ABSTRACT............................................................................................................ii

TABLE OF CONTENTS.........................................................................................iv

LIST OF FIGURES.................................................................................................vii

LIST OF SYMBOLS...............................................................................................x

LIST OF ABBREVIATIONS..................................................................................xii

CHAPTER 1 INTRODUCTION ............................................................................1

1-1 Device Models...................................................................................1

1-2 Semiconductor Wafer Representation.................................................2

1-3 General Features................................................................................3

1-4 Geometry Server................................................................................3

1-5 Grid Server........................................................................................3

1-6 The Solver.........................................................................................4

CHAPTER 2 THEORETICAL ASPECTS OF

GEOMETRY AND GIRD SERVERS.................................................5

2-1 Introduction......................................................................................5

2-2 SWR information model....................................................................5

2-3 Geometry Server...............................................................................6

2-3-1 Boundary Orientation................................................................9

2-3-2 Point Inclusion Algorithm.........................................................10

2-3-3 Intersection detection Algorithm...............................................11

2-4 Grid Server.......................................................................................12

2-4-1 Quad-tree generation...............................................................12

2-4-1-1 Quad-tree algorithms.........................................................14

2-4-2 Delta-zone detection................................................................18

2-4-3 Interior triangulation................................................................20

2-4-4 Delta-zone triangulation...........................................................20

2-4-5 Divide and Conquer Delaunay triangulation..............................21

iv

Page 8

CHAPTER 3 THE DRIFT-DIFUSSION MODEL....................................................33

3-1 Introduction.......................................................................................31

3-2 The DD system of equations..............................................................32

3-3 Change of variables............................................................................33

3-4 Mobility and recombination-generation rates......................................33

3-5 Scaling...............................................................................................34

3-6 Boundary conditions...........................................................................35

3-7 Historical Perspective.........................................................................37

CHAPTER 4 NUMERICAL SOLUTION

OF THE DD-MODEL..........................................................................39

4-1 Introduction.......................................................................................39

4-2 The DD-model...................................................................................39

4-3 Nonlinear iterations............................................................................40

i. Gummel Iteration method.................................................................40

ii. Full Newton method.........................................................................42

4-4 Simulator challenges...........................................................................42

4-5 Discretization techniques....................................................................43

4-5-1 Finite difference method............................................................43

4-5-2 Finite element discretization......................................................44

4-5-3 Galerkin finite element method..................................................44

4-5-4 Notation...................................................................................45

4-5-5 Mixed formulation.....................................................................46

4-5-6 Discretization of the continuty equations...................................48

4-5-7 Examples of mixed finite elements.............................................49

4-5-8 Hybridization of the mixed finite formulation.............................52

4-5-9 Algebraic treatment of problem (4-5-47 )..................................53

4-5-10 Application of the continuity equation.....................................57

4-6 Laplace and Poisson equations.........................................................62

4-7 Global approximate Newton method...............................................65

CHAPTER 5 SOFTWARE IMPLEMENTATION

OF THE DD MODEL.........................................................................66

5-1 Introduction....................................................................................66

5-2 Model architecture..........................................................................67

i. Functions.......................................................................................67

ii. Matrix............................................................................................69

iii.Gauss Quadrature..........................................................................72

iv.Linear Solver.................................................................................72

v. Gummel Class................................................................................72

5-3 Simulation results............................................................................73

i. PN results......................................................................................73

ii. MOSFET results...........................................................................76

v

Page 9

CHAPTER 6 CONCLUSTION AND FUTURE WORK............................................81

APPENDEX A. OBJECT ORIENTED PROGRAMMING........................................84

APPENDEX B. SEMILAB........................................................................................86

REFERENCES..........................................................................................................98

vi

Page 10

LIST OF FIGURES

1. Figure 1-1 Device Models hierarchy..............................................................1

2. Figure 1-2 SEMILAB Information Model......................................................2

3. Figure 2-1 SWR Information Model.............................................................6

4. Figure 2-2 Example of CSG..........................................................................6

5. Figure 2-3 B-rep geometry model..................................................................7

6. Figure 2-4 B-rep MOSFET model.................................................................7

7. Figure 2-5 Two dimensional tree...................................................................8

8. Figure 2-6 Point Inclusion.............................................................................10

9. Figure 2-7 Point inclusion degenerate case....................................................10

10. Figure 2-8 A Quad and its children...............................................................12

11. Figure 2-9 A Typical Quad-tree....................................................................12

12. Figure 2-10 Boundary parameters...................................................................14

13. Figure 2-11 Example of a Quad-tree...............................................................15

14. Figure 2-12 Element container........................................................................16

15. Figure 2-13 Hypothetical device geometry......................................................17

16. Figure 2-14 Quad-tree of the hypothetical device............................................17

17. Figure 2-15 Delta-zone of leaf quads..............................................................18

18. Figure 2-16 Slim elements near the boundary..................................................18

19. Figure 2-17 Improvement of delta-zone method..............................................19

20. Figure 2-18 Delta-zone of the hypothetical device...........................................19

21. Figure 2-19 Interior triangulation pattern.........................................................20

vii

Page 11

22. Figure 2-20 Triangles adjacency.......................................................................21

23. Figure 2-21 Edge pointer.................................................................................21

24. Figure 2-22 Vertices in the plane......................................................................21

25. Figure 2-23 Decomposition of the vertices.......................................................22

26. Figure 2-24 Merging between halves...............................................................22

27. Figure 2-25 Potential and Next potential candidate..........................................23

28. Figure 2-26 In-Circle test................................................................................23

29. Figure 2-27 In-Circle test conditions...............................................................24

30. Figure 2-28 In-Circle test for the two halves..................................................24

31. Figure 2-29 Merging of halves........................................................................25

32. Figure 2-30 In-Circle algorithm.......................................................................25

33. Figure 2-31 Adding constrains........................................................................26

34. Figure 2-32 Delaunay triangulation of the hypothetical device.........................27

35. Figure 2-33 Delta-zone triangulation of the hypothetical device......................27

36. Figure 2-34 Triangulation of the hypothetical device.......................................28

37. Figure 2-35 MOSFET device..........................................................................28

38. Figure 2-36 MOSFET Quad-tree....................................................................29

39. Figure 2-37 Delta quads of MOSFET.............................................................29

40. Figure 2-38 Delta zone regions.......................................................................30

41. Figure 2-39 Triangulation of MOSFET...........................................................30

42. Figure 3-1 Boundary conditions....................................................................36

43. Figure 4-1 Finite difference...........................................................................43

44. Figure 4-2 Barycenter coordinates................................................................45

45. Figure 4-3 Triangle parameters.....................................................................50

46. Figure 5-1 SWR-Solver interaction...............................................................67

47. Figure 5-2 Function Class hierarchy..............................................................68

48. Figure 5-3 Matrix Class hierarchy.................................................................69

49. Figure 5-4 Sparse matrix data structure........................................................70

50. Figure 5-5 Matrix object Data-hiding............................................................71

51. Figure 5-6 PN device....................................................................................73

viii

Page 12

52. Figure 5-7 PN triangulation..........................................................................73

53. Figure 5-8 Thermal equilibruim....................................................................74

54. Figure 5-9 Electrons concentation in the thermal equilibruim case................75

55. Figure 5-10 IV characteristics for PN junction...............................................75

56. Figure 5-11 MOSFET device.........................................................................76

57. Figure 5-12 MOSFET triangulation................................................................76

58. Figure 5-13 VGS=0.4V and VDS=0 .......................................................77

59. Figure 5-14 Different biasing voltages............................................................77

60. Figure 5-15 IV characteristics of the MOSFET...............................................78

61. Figure B-1 A shot of SEMILAB classes.........................................................86

62. Figure B-2 MATLAB front-end.....................................................................87

63. Figure B-3 SEMILAB IDE.............................................................................87

64. Figure B-4 Start Drawing...............................................................................88

65. Figure B-5 Entering the number of regions.....................................................89

66. Figure B-6 Type and sub-regions selection.....................................................90

67. Figure B-7 Device Structure...........................................................................91

68. Figure B-8 Drawing the device..........................................................................92

69. Figure B-9 Doping Level...................................................................................93

70. Figure B-10 Boundary Conditions.....................................................................94

71. Figure B-11 Mesh parameters...........................................................................95

72. Figure B-12 The mesh generated.......................................................................96

73. Figure B-13 Global Newton Method.................................................................97

ix

Page 13

LIST OF SYMBOLS

Symbol Description

δ

E

Deltazone value

Electric Field

Electrical Dielectric constant

ε

n

p

Electrons concentration density

Holes concentration density

Jn

Jp

Electrons Current density

Holes Current density

Total charge density

ρ

µn

Electrons mobility

µp

Dn

Dp

Holes mobility

Electrons diffusion coefficient

Holes diffusion coefficient

k,Coh

Doping Level

ψ

Potential Energy

φn

Electrons imref

φp

Holes imref

ρn

Electrons Slotboom variable

ρp

RSHR

RAU

RII

R

Vth

Holes Slotboom variable

Shockley-Hall-Reed recombination

Auger recombination

Impact ionization recombination - generation

Total recombination- generation

Thermal voltage

x

Page 14

Symbol

ni

LD

Description

Intrinsic concentration level

Intrinisic Debye length

σ

Flux vector

τ

Vector finite element

¯ nj

¯ tj

Normal unit vector to the edge j

Tangent unit vector to the edge j

L2(Ω)

M

Sobolev space

Stiffness Matrix

Barycenter coordinate for the vertex i

λi

Th

Triangulation of the device region

xi

Page 15

CHAPTER 1

INTRODUCTION

1-1 Device Models

The device simulator aims at solving the semiconductor partial differential equations

(PDE) for different device geometry and parameters. Device simulators help the device

engineer to create, test and verify novel structures. This increases our physical knowledge

without even going to the laboratory. Device simulators are not only useful for advanced

device engineers, but undergraduate students can benefit from using the simulator. Indeed,

the student can understand more about the theoretical device aspects by logging to a

simulator and visualizing how carriers move, electric field, breakdown voltages,..etc.

Semiconductor devices can be modeled using the well known Boltzmann Transport

Equation (BTE). BTE is a nonlinear partial differential equation (PDE) in a probability

distribution function (PDF) which characterizes the device region. Taking the moments of

the PDF provides us with the carriers concentrations as well as other data [1]. However the

solution of BTE is not easy. Monte Carlo simulation was used to solve such a problem as

shown in [1]. By taking the moments of BTE a much more suitable model is derived,

namely the Hydrodynamic model. The Energy transport (ET) is derived from the

Hydrodynamic model. ET can be simplified further to the Drift-Diffusion model (DD). The

following figure (Figure 1-1) shows to us the hierarchy of the device models[1]. It worth to

mention that there is a parallel model hierarchy , the quantum models , quantum correction

factors together with Schrodinger equation are coupled to the classical models shown in the

figure (Figure 1-1).

Figure 1-1 Device Model hierarchy

1

Boltzmann Transport Equation

Energy Transport model

Hydrodynamic model

Drift-Diffusion model

Page 16

As a matter of fact, the DD model is not as simple as it seems. The DD model consists of

three coupled nonlinear PDEs. In this thesis we will deal with the DD model. However the

discussion can be extended easily to the ET model as shown in [2].

1-2 Semiconductor Wafer Representation (SWR)

The process of solving a system of PDEs system numerically consists of three

computational phases: discretization, solution of the algebraic system of equations and

interpolation. During the discretization phase, the domain region is partitioned geometrically

into many small sub-regions, called mesh elements, followed by an approximation of

differential operators with algebraic operators. In the second phase numerical methods are

applied to solve the algebraic system of equations. Finally an interpolation scheme is used

to complete the solution for the entire problem domain.

Different elements (objects ) are used for implementing the simulator. A Geometry

manipulation tool and a mesh generator were implemented with a well defined interface

based on the SWR as was suggested in [3]. SWR stands for Semiconductor Wafer

Representation, it is a framework for manipulating the device geometry as well as providing

an optimal mesh. The Solver object interacts with SWR to access the mesh elements and

geometrical parameters for fulfilling its task ( The solution of the device equation ). A

pictorial view of this interaction is shown in the figure below (Figure 1-2)

Figure 1-2 SEMILAB Information Model

SEMILAB is the simulator implemented in this thesis. It was implemented from scratch

based on the object oriented programming paradigm [4]. The C++ programming language,

an efficient object oriented programming language was our choice for implementing the

simulator [5]. C++ is a high level language with all the benefits of mid level languages.

MATLAB is used as a front end [6], while the whole computational processes were done in

the C/C++ code. SEMILAB consists of many objects interacting with each other. The

simulator consists of more over than 11,000 lines of code, excluding comments and the

MATLAB code. Designing how the various objects interact as well as their implementation

was a long and an iterative process.

In the subsequent sections we will discuss the basic features of SEMILAB. Section (1-

3) discusses the general features of the simulator. The facilities of the Geometry server are

presented in section (1-4). Section (1-5) illustrates how the Grid Sever was generated. The

Solver is introduced in section (1-6).

2

Solver

Grid Server

Geometry Server

SWR

Page 17

1-3 General Features

The implementation of the simulator was done with an eye on efficiency and generality

Different device geometry must be handled by the simulator. This introduces difficulties and

complexities in manipulating the geometry. Therefore, general data structures and

algorithms must be incorporated in the implementation. The mesh generated is a boundary

conformal, optimal and good shaped. The exact meanings of the terms are presented in the

next chapter. But as shown in [7] these are the main requirements for generating a mesh

suitable for device simulation. Another important feature is choosing different models and

incorporating each model at run-time under the user control. This adds extra flexibility as

well as generality to the simulator. The user can just invoke a different model and check its

validity compared to other simple models. The solution strategy can be changed and adapted

at run-time for example the holes continuity equation is not considered significant for the

the solution of NMOS devices. Therefore, it is not necessary to include this equation in the

solution strategy since solving it will just introduce a computational cost without any

benefits.

1-4 Geometry Server

The Geometry server is responsible for storing different device regions, determining the

incidence relationships between different geometrical objects ( Vertices, Edges, Regions,

..etc. ) and intersection between edges and regions, which was proven not to be as a simple

task as expected [8]. Vertices are introduced at run-time so we must make sure that no two

vertices will be generated having the same coordinates because this will lead to ambiguity.

Vertices were stored in a two dimensional binary tree which prohibits the creation of

vertices having the same coordinates. The 2D binary tree is an efficient way for storing

vertices as compared to simple arrays [9]. The data structures and geometrical algorithms

are explained in chapter 2.

1-5 Grid Server

The Grid Sever acts on the device geometry to generate the mesh. It is responsible for

generating an optimal mesh which conforms with the boundary of the device as well as

conforming with a certain level control function. We used a Quad-tree spatial

decomposition approach. The basic idea will be shown here. It will be best explained in

chapter 2. The device is enclosed in a box (Quad) and the box is decimated into sub-quads

according to a level control function. The interior of the device is isolated from the

boundary by a delta zone as was done in [7]. Modifications to the algorithm in [7] of the

delta zone and the decimation near the boundary were done in this thesis and these will be

shown in chapter 2. The delta zone was triangulated using the well known Constrained

Delaunay Triangulation (CDT)[10]. A divide and conquer algorithm [11] was used for

CDT implementation.

1-6 The Solver

The Solver is responsible for the discretization and solution of the algebraic system. A

mixed finite element (MFE) scheme was chosen. MFE guarantees the continuity of the flux

( Current density and Electric Flux ) which is a strong requirement of the simulator. Indeed,

the main output required from a device is the current. A hybridization of the MFE was

3

Page 18

introduced in [12] which not only guarantees flux continuity but also results in a positive

definite stiffness matrix, suitable for the iterative solver as will be shown in chapter 4.

4

Page 19

CHAPTER 2

GEOMETRY AND GRID SERVERS

2-1 Introduction

In this chapter we will dive deep inside the Geometry and mesh (grid ) generation

techniques. Both of them provide the geometrical Data for the simulator. In the previous

chapter we mentioned that these types of service were built on the SWR (Semiconductor

Wafer Representation ) information model introduced in [3].

SWR is an Object - Oriented Client-server model which provides the benefits of code-

reuse. In the past, Data files were used to integrate existing tools. Complex devices have

developed tremendously in the last two decades. At the same time the density of Data has

increased and the integration of different tools has become important to handle the Data and

to satisfy the demands of the user which are increasing everyday.

SWR mainly consists of two servers, the Geometry and the Grid servers. The model

implemented in the thesis is built on the SWR. Section (2-2) discusses the framework main

components and how each component is integrated in the model. In section (2-3) we will

discuss the Geometry Server, how the wafer is represented and the main algorithms used.

The Grid Server is discussed in section (2-4). An algorithm based on the modified

refinement rapid descending algorithm discussed in [7] is explained in detail. The

Constrained Delaunay Triangulation used to triangulate the delta zone is explained in detail.

Section (2-5) discusses the Level-Control-Function object and how it is used for controlling

the refinement level. Section (2-6) shows the results obtained by our SWR server.

2-2 SWR Information model

An information model is a software entity aims at unifying tools and services for TCAD

applications. The proposed information model is an object oriented (OO) Client- Server

model based on SWR. The information model consists of two main servers, which are

integrated together, the Geometry and the Grid Servers [3]. Both Servers are built using C++

classes. The Geometry Server provides how the geometry of interest (active region, wafer) is

stored and manipulated in an efficient and a consistent way. The Server supports services

such as point inclusion, intersection, ... etc.

The Grid Server is the core of the information model. Supported by the Geometry Server,

the Grid Server is capable of generating a high quality mesh suitable for a device simulator

as well as for other different tools. Quad-tree method is used for generating and refining the

mesh. Different tools such as Device simulators, Input-Output and Visualization modules

can be integrated with the information model. Tools can be built using the APIs

(Application Procedural Interfaces) supported by the model. Thus, the information model

can be thought of as a development environment for building TCAD systems. Services such

as a solid modeler can be integrated to the model. Services are add-on applications aimed at

5

Page 20

providing ever-increasing capabilities. Figure 2-1 below shows a schematic of the

information model.

Figure 2-1 SWR Information Model

The figure shows that different vendor tools can access the information only through a

predefined interface (APIs).

2-3 Geometry Server

The Geometry Server is a bunch of software objects responsible for storing and

manipulating geometric Data. The wafer (device) is stored in a defined Data structure. There

are two main schemes suitable for storing the device geometry, Constructive Solid

Geometry (CSG) and Boundary Representation (B-rep) . The solid modeler stores the

geometry in an operational way. It is best explained by the following figure (Figure 2-2)

Figure 2-2 Example of CSG

The resulted geometry is the rectangle minus the circle. The B-rep model represents the

geometry in a hierarchical form. Every geometrical entity (object in OOP notation) is

6

Information Model

Geometry Server

Grid Sever

Visualizations

Device

Simulator

IO-Objects

APIs

Services

For example

solid modeler

(CSG)

Page 21

decomposed into simpler entities. The Geometry (Device) consists of different areas. Each

area consists of one or more boundaries. Each boundary consists of edges. Two vertices

bound an edge. The vertex as expected is the building block of the geometry structure. An

entity-relationship for describing the geometry structure is shown in Figure 2-3. Arrowhead

segment represents a one to many relationship.

Figure 2-3 B-rep Geometry Model

In Figure 2-4, a simple MOS device is shown together with its representation in the B-rep

model. This example helps in showing how the B-rep model represents Data.

Figure 2-4 B-rep of MOSFET

In the above figure we used different notation. However the same hierarchy discussed

7

e1

e2

e3

.e4

e5.e6

.e7

.e8

.e9

.e13

.e10

.e11

.e11

.e12

.e14

Device

Material

Regions

Boundary

Edges

Geometry

Get Area

Boundary

Get Bound

Edge

Vertex

Get Edge

Get Vertex

Area

Page 22

before holds. This shows us how the B-rep model is capable of introducing new hierarchies

easily. In the above hierarchy, different device types (Si SiO2, GaAs, ..etc. ) are added. This

notation is important for MOS devices and hetero-structure devices.

A vertex consists of two coordinate values (2D case). A third attribute named LCF (Level

Control Function) is added [7]. The Grid Server can access this field. This attribute, as will

be explained later determines the degree of refinement needed around the given vertex. An

edge is bounded by two end vertices. The edge is just a straight segment with no direction.

Direction has no meaning except when dealing with boundaries. A boundary is a collection

of edges oriented in a certain direction (counter clockwise orientation is used). To avoid

getting two vertices having the same coordinates, vertices must be stored in a certain Data

structure and allocating any vertex is done referring to the Data structure to check for every

new vertex whether it has been already allocated or not. A two dimensional tree is used for

storing the vertices [9]. Range searching is applied to allocate any point. The range

searching algorithm combined with the two dimensional tree form an efficient way for

allocating points. The algorithm is best explained by considering a typical case of searching

the tree for a certain point v=(0.5,1) . Assume that the root (apex) of the tree is the origin

( 0,0 ) and the tree consists of seven nodes as shown in Figure 2-5.

Figure 2-5 Two dimensional tree

First the x-coordinate is compared to the x-coordinate of the root since it is greater we are

in the right half plane and there is no need to search in the left half plane. We move right to

the vertex ( 1 , -1 ) and hence there is a comparison of the y-coordinates since the vertex y-

coordinate, 1, is greater than the node y-coordinate , -1, The point is above the line

y=?1 . We will move right again to the node (0.5,1) which is the point required. If the

point is not in the tree then a new point is allocated and stored in the appropriate place.

Indeed, assume that the point v=(0.2,1) is required. The suitable location of the point is

shown with the dashed line in the figure. Hence the two dimensional tree together with the

range searching algorithm produce a convenience way for storing and accessing Data.

Indeed the algorithm has a logarithmic order complexity.

In the next subsections a discussion of some of the implemented algorithms will be

discussed.

8

( 0, 0 )

(-1, 2 )

( 1 , -1 )

(-2, -2 )

(-2 , 2) ( 0.5, -2 )

( 0.5, 1 )

(0.2 , 1 )

Page 23

2-3-1 Boundary Orientation

Several algorithms in the Geometry Server depend on an implicit counter-clockwise

ordering scheme. The region is defined to be on the left as a boundary is traversed. In this

subsection, the algorithm to determine the orientation of a boundary is presented in

Algorithm 2-3-1 [14].

All the points comprising the boundary are traversed once and four indices are set. The

indices right , top , left and bottom correspond to the point index corresponding to the right

most, top most, left most, and bottom most points respectively. If at least three of the indices

right, top, left, and bottom are distinct from one another, then their ordering determines the

orientation. Starting from the lowest index, if consecutive indices increase as all the indices

are traversed counter-clockwise , then the boundary is oriented in a counter-clockwise

manner. Otherwise, the boundary is oriented in a clockwise manner. This simple algorithm

is O(N) with N being the number of points on the boundary.

Algorithm 2-3-1 Boundary Orientation

Procedure BoundaryOrientation

Input: boundary

Output: clockwise or counter-clockwise orientation

begin:

right := top := left := bottom :=0;

(* set the indices by traversing through boundary points *)

for i:=0 until number of boundary points do

if x[i] < x[left] then

left := i;

if x[i] > x[right] then

right := i;

if y[i] > y[top] then

top := i;

if y[i] <y[bottom] then

bottom :=i;

end

Boolean A = ( top?right ) ;

Boolean B = ( right≥bottom );

Boolean C = ( bottom≥left );

Boolean D = ( left≥top );

if (( A and B and C) or (A and B and D) or (A and C and D) or (B and C and D))

then

orientation = COUNTERCLOCKWISE;

else

orientation =CLOCKWISE;

return orientation ;

end

2-3-2 Point inclusion Algorithm

This algorithm is responsible for deducing if a point is inside, on the boundary or outside

a certain region [14]. The algorithm is best explained by referring to figure 2-6

9

Page 24

Figure 2-6 Point Inclusion

A horizontal straight line, R, passing by the point p is drawn and the number of

intersections with the boundary is calculated. Obviously, if the count is even then the point

is outside and if it is odd the point is inside. Despite the simplicity of this idea,

implementation is fragile due to the necessity of handling special-case intersections of R

with the boundary shown in the next figure(Figure 2-7). The ray may hit a vertex, or be

collinear with an edge.

Figure 2-7 Point Inclusion Degenerate Case

One method of eliminating most of the difficulties is to require that for an edge e to

count as a crossing of R, one of e's endpoints must be strictly above R, and the other

endpoint on or below. The algorithm is an O(N) complex where N is the number of

boundary edges.

2-3-3 Intersection Detection Algorithm

This algorithm is responsible of detecting two given regions intersect or not. This

10

P

R

P

R

Page 25

facility is very useful for the Grid Server. A brute force algorithm is used. The algorithm is

represented below :

Algorithm 2-3-3 DetectIntersection

Input: Region R1 , Region R2

Output: intersect;

begin

for every edge p in R2 do

for every edge q in R1 do

if ( p and q intersects ) then return intersect=1

end

end

return intersect =0

end

This algorithm is not efficient since we have to travel all the edges of both the two

regions resulting in O(N.M) complexity where N is the number of edges in R1 and M is the

number of edges in R2. Fortunately, the number of edges is small and the simplicity of the

algorithm competes using any more efficient algorithm.

The intersection between two segments may seem straightforward however it respects

some care. Edges are not a straight lines extending from ?∞ to ?∞ . Degenerate cases

must be taken into account, Edges may intersect at an endpoint, overlap or an edge may be

completely a subset of another one. Vertical lines having

undefined slopes must be taken into account. These degenerate cases are taken into account

in the implementation.

2-4 Grid Server

Different mesh requirements are needed for a grid used in device and process simulations

[7]. First, the mesh should be boundary-conformal, i.e. the mesh elements should be

conformed to the device area. Second, the scheme should be adaptively refined. Areas of

high concentration gradients should contain more mesh points than those of low

concentration gradients. Third, the grid should not contain ill-shaped mesh elements as was

shown in [7].

Mesh schemes can be classified according to the complexity of its Data structure [24].

The simplest is the structured mesh, however, structured mesh is not flexible to conform to

the boundary. On the other hand unstructured mesh conforms well to the boundary, but it

requires a complex general data structure. For example Delaunay Triangulation require a

quad-edge like data structure [15]. Semi-structured mesh stands in between. The data

structure is a tree or a tree like structure. and the scheme can be conformed to the boundary

(For example by using delta zone method described in [7] ). Quad-tree, a semi-structured

mesh, has been proven to be one of these schemes, which produce a high quality mesh.

There are several advantages for using quad-trees. First, the algorithm is simple. Second,

adaptive mesh refinement can easily be incorporated.

To generate a mesh, we will undergo through four major steps:

1. Quad-tree generation.

2. Delta-zone detection.

3. Triangulating interior quads.

11

Page 26

4. Triangulating the delta-zone.

2-4-1 Quad-tree generation

A general quad-tree is used. By "general" we mean that any quad can have 0,1,2,3 or 4

sub quads. A sub-quad is a quarter of a quad. In the following figure (Figure 2-8) a quad is

shown together with its four sub-quads. B,T,L,R stand for bottom, top, left, right

respectively.

Figure 2-8 A Quad and its children

TL, TR, BL, BR is the local address of the quad relative to its parent. Each local address

can be represented by two coordinates X and Y where X takes the value L (left) or R (right)

and Y the value T (top) or B (bottom).

A quad is said to be a regular leaf if it has no sub quads. An irregular quad has one, two

or three sub quads. Boundary quads are used to create a boundary-conformal grid. Each

quad has pointers to its children as well as to its parent. Therefore any quad in the quad-tree

can be accessed starting from a given quad thus speeding up the search operation. The level

of the quad Q denoted by Level (Q) is the depth of the quad in the tree. The root quad is at

level zero. A quad-tree QT is said to be balanced if it obeys the one difference rule, i.e. the

level difference between any two neighbor quads can not be more than one. In figure 2-9 a

balanced tree is shown.

Figure 2-9 A Typical Quad-Tree

Please note that each quad is in general a parent of 0,1,2,3,4 sub quads. Balanced trees

guarantee no ill-shaped elements.

The refinement process is based on a positive integer valued function, Level Control

Function, or shortly LCF [7]. The LCF determines the degree of refinement around a given

12

TL

BL

BR

TR

TL BL

BR

TR

Page 27

vertex. A quad-tree QT is said to be a Support of a LCF if:

Level ( ( ( (Q) ) ) )≤ ≤ ≤ ≤LCF ( ( ( (vi) ) ) )

LCF ( ( ( (vi) ) ) ) for all vertices vi

LCF can be the normal of the doping gradient, local truncation error or any user specific

function. A modification of the rapid descending algorithm explained in [2] is used. The

algorithm can be spelled over as follows:

The LCF is modified at the mid edge vertices as well as at the center of the quad under the

following conditions:

If LCF ( vi ) == Level (Q) AND LCF (vi-1)

OR LCF (vi+1) == Level (Q). Then:

The LCF at the mid edge vertices of the edges vi-1 vi as

well as vi vi+1 are set to Level (Q)+1.

The LCF at the center vertex is set to Level (Q)+1.

When the quad is totally outside the geometry, the quad is removed from the tree, thus

the parent quad will be considered a leaf quad. To prevent the triangulation routine

explained later from triangulating such a region, the corner vertex is marked as

“triangulation voided”. If the quad is partially inside i.e., a boundary quad, then the

refinement process can be stopped when certain patterns as described in [28] are found or by

using the following subroutine:

If Level(Q) < max (LCF at internal vertices) then refine.

The LCF values at the mid edge vertices and the center vertex of irregular quads are

checked as follows:

If LCF( c ) > Level(Q)+1 Then:

Refine around all corner vertices.

Else if the leaf region is sandwiched between two sub quads

AND one or more of the LCF value at the mid edge vertices

is larger than Level(Q)+1 Then:

Refine this leaf region.

Setting the level control function values at the mid edge vertices and the quad center to

Level (Q)+1 prevents generating neighbour quads of levels greater than Level(Q)+1. Thus

obeying the one-difference rule.

It can be easily deduced from the above algorithm that the tree generated is balanced. It

was proven in [7] that such an algorithm generates a maximal Support quad-tree.

Boundary quads are treated in a slightly different way. In [7] certain boundary patterns

are only allowed. In this thesis we implemented a slightly different algorithm for boundary

quads. We will assume that if a point is outside the geometry it has a level control function

value depending on the closest point belonging to the geometry and the distance between

them. The LCF at a point v outside the geometry is given by:

LCFv= = = =LCFp( ( ( (1? ? ? ?

d

feature) ) ) )

n

13

Page 28

By referring to figure 2-10 d is the minimum distance between the point v and the

geometry boundary, feature is a measure of the device size chosen to be the root quad

length and n determine how LCFv is close to LCFp . Obviously d ≤ ≤ ≤ ≤ feature since any

point in the quad-tree must be included in the enclosing root quad. This method guarantees

the homogeneity of LCF.

Figure 2-10 Boundary parameters

The algorithm for boundary quads goes as follows:

if ( LCF(v) > Level(Q) ) or the Q contains a complex boundary THEN

generate a sub-quad around the point v

Quads are objects. Every quad has pointers to its four corner points, a pointer to its

parent, pointers to its children quads and a linked list of the triangles belonging to the quad.

Adding the triangles to the quad doesn't introduce an overhead when the process of

triangulating the quads is running. The Quad-Tree structure points to the ROOT quad.

Therefore, it has access to all quads. Locating where a certain point belongs is done in

optimum time since we can take advantage of the tree structure. Indeed given a point v the

location of the point, i.e., finding which quad or triangle the point belongs can be done by

parsing the tree until we arrive at the required quad or triangle.

2-4-1-1 Quad-Tree algorithms

In this subsection we will show some useful algorithms which are used intensively by

the Quad-Tree object.

a) Finding a neighbour quadrant

Finding a neighbour quad is an important procedure, However the quad-tree structure

facilitates finding any of the four neighbours of a given quad. The algorithm is shown in

[31], The problem can be stated as follows :

" Given a quadrant node and a direction (i.e. Left , Right, Top, Bottom), find the neighbour

quad which is of size equal to or greater than the given node "

The relative path P is the path from one quad to another. For a relative path P, the x-

symmetry is a new relative path P' which results from replacing all the X-coordinates of P

by their opposite values. Similarly, the y-symmetry is the relative path which results from

14

.v

.p

.d

Page 29

replacing all the Y-coordinates of P by their opposite values.

Now we are ready to present the algorithm for finding the neighbour quads. The idea is

based on a 2-step tracing technique. First we perform a bottom-up ascending trace by

following the parent links and then a top-down descending trace by following the child

links. This procedure is illustrated by the example shown in the following figure, where we

want to find the right neighbour of the quad A. We first follow the ascending path to find

the closest ancestor which contains A as one of its L (left) sub-quads. In this case, the

closest ancestor is the quad ROOT and the ascending path is P = /TL/TR/TR. Next we find

the x-symmetry path P' = /TR/TL/TL. From the ancestor quad ROOT, we follow P' and

reach the node B, which is the right neighbour of A. This process is shown graphically by

the quad-tree in figure (2-11).

Figure 2-11 Example of a Quad-Tree

In this thesis the four local addresses are given numbers. A stack is formed which is

allocated at run-time after the tree has been generated. The stack depth is the same as the

tree depth ( the maximum level in the tree). Moving from a certain quad to its parent, the

local address of the quad is pushed into the stack. After arriving at the suitable parent quad

as was described above, the x or y-symmetry of the stack is found and we parse the tree

again, following the descending route.

b) Intersection of quads with the geometry

Boundary quads (B-nodes) are quads which are partially inside the device. To further

decimate a boundary quad, the intersection between the quad and the device geometry must

be computed. A simple brute force algorithm is used. Indeed, every quad has just four sides

so simplicity competes. We determine if an intersection between a quad side and a device

edge is detected then the intersected segment is added to a linked list .

c)Element containers

The tree must provide the solver with simple Geometry ( Nodes, Segments and

Triangles). Every simple geometry has a unique global address and a unique region address.

Since the device may contain different materials (Si and insulator for example) and since

different parts requires different type of equations to be solved. Every region must have its

space of geometrical objects. At the same time the potential for example is computed over

the whole domain therefore, we must also have a global space of geometrical objects. The

15

A B

ROOT

TL

BL

BR

TL

TR

TR

TR

TL

Page 30

mesh is responsible of providing such spaces. An element container is an object responsible

of storing and providing such services. To summarize, the element container provides the

following :

1. Storing geometrical objects.

2. Numbering of objects.

3. Separating interior objects from boundary objects.

4. Supplying the user with the global and region number of a certain object.

5. Destroying and Clean-up of objects .

The Element Container class can be considered as an interface between the actual mesh

and the user ( Solver ). The Element Container uses the geometry server to know the

number of different materials in the device. It then allocate the suitable storage space. Every

region has its own space. Segment types are stored in different containers in the same region

space. A pictorial view of the Element Container is shown in figure 2-12 below.

Figure 2-12 Element Container

The following arbitrary device geometry will be used to show results from the SWR. It is

required that the mesh density increases around the middle line.

16

Interiors

Region 1

Neumanns

Dirichlets

Region 2

.....

Interiors

Neumanns

Region n

Dirichlets

Interiors

Dirichlets

Neumanns

Page 31

Figure 2-13 Hypothetical Device Geometry

The quad-tree generated is shown in the next figure (Figure 2-14)

Fig 2-14 Quad-Tree of the Hypothetical Device

The Level Control Function (LCF) is chosen to be the concentration gradient. The Local

Truncation Error (LTE) can be used as well. Thanks to OOP, we can use both. Just by

forming a parent base class and deriving two classes, the Gradient class and Error class.

17

-4-3-2 -1012345

-3

-2

-1

0

1

2

3

-4-3-2-1012345

-5

-4

-3

-2

-1

0

1

2

3

4

Page 32

Both objects can be used at run-time.

After generating an initial tree, we can use an LCF, the error for example, to generate

another tree. The variables computed using the old grid (potentials, carriers concentrations,

etc., ) are interpolated using the old grid. This can be thought of as a mapping between two

different layers. It is similar to the well known multi-grid method.

2-4-2 Delta-zone detection

Delta-zone was first introduced in [7] to handle small feature triangles near the

boundary. The basic idea is to separate the boundary of the region from the interior by a

narrow band, called the δ zone. Inside the δ zone a triangulation scheme which is more

suitable for general polygon triangulation is applied. We will use [7] as our guide in

describing how we choose the delta-zone. A δ?cover is a quad which is extended in all

directions by δ . In this definition we mean that the extension is done for the leaf regions

only as shown in figure 2-15.

Figure 2-15 Delta-zone of leaf quads

In [7] δ was chosen to be ¼-th the smallest quad's length. In this thesis δ is chosen

depending on every quad length. Choosing δ as in [7] introduce a problem when δ is

very small . Consider the typical case in the next figure (figure 2-16). δ is very small that

the quad Q is not a δ -cover of the boundary. Therefore Q is not a delta-zone quad. And

according to [7] the delta-zone triangles look like the right-hand side figure.

Figure 2-16 Slim elements near the boundary

18

0 sub-quad

1 sub-quad

2 sub-quads

Q

Page 33

It is obvious that the triangles formed are slim which is not suitable for a simulator. We

solved this problem as was mentioned above by making δ adaptive depending on the

quad length. Consider the same example but with δ=1⁄4length(Q) . Q will be a delta-

zone quad as shown in the next figure (figure 2-17). The triangles formed are shown in the

right-hand side which is of high quality.

Figure 2-17 Improvement to the Delta-zone method

The delta-zone quads and the delta-zone are shown in the next figure (Figure 2-18).

Figure 2-18 Delta zone for the hypothetical device

After the delta-zones are generated, Constrained Delaunay Triangulation (CDT) is used.

To apply CDT, we first need to collect all vertices and boundary edges. The whole delta

zone is sandwiched by two non-intersecting boundaries, external and internal as shown in

the above figure. To ensure the conformity of the final mesh, all quad-tree vertices on the

internal boundary should be included in the vertex set V for CDT. For the external

boundary, all edge vertices for the original boundary should be included in the vertex set. In

addition, we add points which are intersections of quad edges and the external boundary.

However, we must exclude those intersection points which are too close to each other;

otherwise, small feature elements could be produced.

19

Q

-4-3-2-1012345

-4

-3

-2

-1

0

1

2

3

4

-3-2-101234

-3

-2

-1

0

1

2

3

Page 34

With the vertex set, we can create the edge set E for CDT. For each pair of vertices in the

vertex set, the edge connecting these two vertices is included in the edge set if the edge is a

part of the external or internal boundary.

2-4-3 Interior triangulation

After the quad-tree is generated, a triangulation procedure starts by dividing quads into

two distinct categories, interior and delta zone quads. Interior quads are triangulated using

the patterns shown in the figure (Figure 2-19), where the leaf region is shaded.

Figure 2-19 Interior triangulation patterns

2-4-4 Delta-zone triangulation

Constrained Delaunay Triangulation (CDT) was used to triangulate the general geometry

sandwiched between the the delta-zone and the device boundary. Delaunay Triangulation

has the nice property that the triangles generated are optimal.

Different Delaunay Triangulation algorithms are introduced in the literature [16]. "

Divide and Conquer " algorithm is shown in [17] to be the optimal. Delaunay Triangulation

needs a complex Data structure for storing the edges and triangles [15][18]. The Data

structure is not only responsible for storing the elements, but must take care of adjacency

relations. Indeed given a certain triangle, how one can allocate the neighbours, ..etc. A novel

structure was introduced [15] namely the quad-edge structure. However, a new simpler

structure, based on a triangle was introduced [18]. This structure was used as our main data

structure since it fits smoothly with our Quad-Tree structure. Every segment in the

triangulation points to the attached triangles. These two extra pointers save a lot of time

when locating triangles and this is an elegant solution which speeds up the simulator. We

will focus here on the triangle-based data structure. Referring to Figure 2-20, where we

have four adjacent triangles in a global triangulation. Every triangle has pointers to its three

segments. Every segment has two pointers to the attached triangles. If it is a boundary

segment there is only one pointer and the other pointer is a NULL pointer.

20

Page 35

Figure 2-20 Triangles adjacency

The above figure can be drawn back as shown in Figure 3-21 showing the edge pointers.

Figure 2-21 Edge pointer data-structure

2-4-5 Divide and Conquer Delaunay Triangulation

Points created in the vertex set V are used for Delaunay Triangulation. The edge set E is

used in CDT. The first step is to put all of the points in V into order of increasing x-

coordinates, when two points have the same x-coordinate, their order is determined by their

y-coordinate[19]. To achieve this we follow two paths, the first is to store the points in a

binary tree sorted by the increasing x-coordinate. The second path is by parsing the tree and

popping the elements into an ordered array.

Figure 2-22 Vertices in plane

Once the points are sorted, the sorted set is successively divided into halves until we are

left with subsets containing no more than three points. These subsets may be instantly

triangulated as a segment in the case of two points and a triangle in the case of three points.

The decomposition of the ordered set is done using a recursive function. An abstract

class, Triangulation, is defined. Different classes inherit from this basic class namely the

21

1

2

3

4

5

6

7

8

9

10

Page 36

Subset class, the 3-point class and the 2-point class the subset class contains more than

three points. The other two classes are the degenerate cases. In the next figure the

decomposition of points is shown together with its decomposition tree. Every Triangulation

object has a pointer to the starting point in the sorted array and the number of elements. This

decreases the memory storage required for storing the points.

Figure 2-23 Decomposition of the vertices

From here, the triangulated subsets are recursively merged with their former other halves.

The final product of any merge will be a triangulation consisting of LL-edges (edges

previously present in the left triangulation, having endpoints from the left subset), RR-edges

(edges previously present in the right triangulation, having endpoints from the right subset)

and LR-edges (new edges running between the left and right triangulations, having one

endpoint from the left subset and one endpoint from the right subset). To maintain

Delaunayhood over the merged point subsets, deletion of LL and RR-edges may be

necessary. However, we never create new LL or RR- edges, when merging.

Merged First Half Merged Second Half

Figure 2-24 Merging between halves

The first two merges are shown in figure 2-24. They were somewhat simple, with no

deletion of any LL or RR-edges in either case. The next merge will be a little more

complicated and demonstrative of the algorithm.

22

1

2

3

4

5

6

7

8

9

10

1

2

3

4

5

7

8

9

10

6

Page 37

The first step for merging the two above halves is to insert the base LR-edge. The base

LR is the bottom-most LR-edge which does not intersect any LL or RR-edges . It is one of

the convex hull segments of the system of points. Working upward from here, we need to

determine the next LR-edge to be added just above the base LR-edge. Clearly, such an edge

will have, as one endpoint, either the left or right point subset. Naturally, we narrow our

decision by selecting two candidate points: one from the left subset and one from the right

subset.

Figure 2-25 Potential and Next potential candidates

Let us begin with the right side. The first potential candidate is the point connected to the

right point of the base LR- edge by the RR-edge which defined the smallest clockwise angle

from the base LR-angle. Similarly, the next potential candidate defines the next smallest

clockwise angle from the base LR-edge. The potential candidate is then checked for the

following two criteria:

1. The clockwise angle from the base LR-edge to the potential candidate must be less than

180 degrees.

2. The circumcircle defined by the two endpoints of the base LR-edge and the potential

candidate must not contain the next potential candidate in its interior.

Figure 2-26 In-circle test

Here, the potential candidate satisfies the first criterion, but not the second.

If both criteria are satisfied, the potential candidate becomes our final candidate for the

right side. If the first criterion holds but the second does not, then the RR-edge from the

potential candidate to the right endpoint of the base LR-edge is deleted. The process is then

repeated with the next potential candidate as the potential candidate until a final right

23

9

7

8

9

10

Potential

candidate

Next

potential

candidate

9

Next

potential

candidate

7

8

9

10

Potential

candidate

Page 38

candidate is chosen or it is determined that no candidate is found.

Figure 2-27 In-circle test conditions

After deleting the bad edge, a suitable right candidate is found. As for the left candidate

selection, the process is just the mirror image of that for the right.

When neither a right nor a left candidate is submitted, the merge is complete. If only one

candidate is submitted, it automatically defines the LR-edge to be added. In the case where

both candidates are submitted, the appropriate LR-edge is decided by a simple test:

If the right candidate is not contained in interior of the circle defined by the two

endpoints of the base LR- edge and the left candidate, then the left candidate defines LR-

edge and vice-versa. By the guaranteed existence of the Delaunay Triangulation ( Here

applied to only four points), at least one of the candidates will satisfy this; by the uniqueness

of the Delaunay Triangulation, only one candidate will satisfy this (except in the case when

the four points are co-circular ).

Figure 2-28 In-circle test for two halves

From the above figure, only the left candidate satisfies the condition, and thus defines the

new LR-edge. Once the new LR-edge is added, the entire process is repeated with the new

LR-edge as the base LR-edge.

24

Next Potential candidate

( outside circumcircle )

3

7

10

1

2

4

8

9

Base

LR-edge

Left

candidate

Right

candidate

5

6

7

8

9

10

Potential

candidate

<180 degrees

6

Page 39

Figure 2-29 Merging of halves

In the above figure LR-edges are added until the merge is complete (i.e. until no left or

right candidates are submitted). An in-circle procedure is implemented here, variants were

introduced in [20]. Given three non collinear points A,B and C, the circumcircle can be

found as shown in the figure below (Figure 2-30)

Figure 2-30 In-circle algorithm

Next, the constraints are added to the Delaunay triangulation. Constraints will all be in

the form of a required edge between two points. To adjust for the constraint, we need to

delete all triangles which have an edge intersecting with the constraint. In a way, we are

clearing the path for the constraint. Once this is finished, we will have a polygon, within our

triangulation, that contains the two points of the constraint. Consider that a constraint edge

is between point 1 and 10.

25

1

2

3

4

5

7

8

9

10

Base LR-edge

New LR-edge

1

2

3

4

5

7

8

9

10

Base LR-edge

New LR-edge

1

2

3

4

5

7

8

9

10

Base LR-edge

New LR-edge

6

6

6

A

B

C

O

Page 40

Figure 2-31 Adding Constraints

As shown in the figure the constraint edge splits the constraint polygon into two parts.

The two halves are then triangulated using a polygonal triangulation procedure. This

introduces non-Delaunay triangles. This process is then repeated for all constrained edges.

Holes in the triangulation may be specified as a closed polygon consisting of constrained

edges. Once the constraints are in place, we invoke a triangle eating virus procedure which

erases all triangles inside the polygon.

Triangles are created and deleted at run-time. An efficient and easy structure must deal

with this. Triangles can be stored in linked list . But to keep track of still alive triangles, we

must search the whole list for the triangle to be deleted.

Another simpler yet powerful approach is implemented in this thesis. We divided the

triangles into groups depending on their most left vertex. Therefore we have a number of

smaller linked lists . The minimum point of a certain triangle can be computed easily and we

can now know the corresponding linked list. Then a search inside the linked list, which is

now small, is performed. This method can be considered as a simple hash-table.

Finding the potential candidate and the next potential candidate points depend on sorting

the edges passing by a certain point by their angles taken from the base line. Since the

number of points is given to the Delaunay triangulation, an array of lists is constructed

which is meant to keep the edges passing by points. A certain edge is added to the array in

two locations one for each of its final endpoints.

As was already mentioned a triangle eating virus procedure is applied to remove

triangles from holes. This procedure is applied after we are done with the triangulation and

after we have added the constraints. Every edge in the triangulation is examined to check if

it is an internal diagonal of the hole. Detecting external and internal diagonals was discussed

[8]. If the edge is an internal diagonal, it is deleted. Deleting any edge in any phase in the

triangulation process must reflect this removal in the triangles which this edge belongs,

removing this edge from the points linked list and removing it from the "Triangulation"

object data.

The Divide and Conquer applied to the hypothetical device geometry and the result is

shown in the next figure (Figure 2-32)

26

1

2

3

4

5

6

7

8

9

10

Constraint

polygon

Page 41

Figure 2-32 Delaunay triangulation of the Hypothetical Device

As seen in the above figure the union of all triangles gives the convex-hull of the points

set which is a property of Delaunay Triangulation. The constraints are added and the

triangles are removed from the interior of the device. These result in the following CDT in

the delta-zone.

Figure 2-33 Delta-zone triangulation of the Hypothetical Device

The complete triangulation ( the interior and the delta-zone ) is shown in the next figure

(figure 2-34).

27

-3-2-101234

-3

-2

-1

0

1

2

3

-3-2 -101234

-3

-2

-1

0

1

2

3

Page 42

Figure 2-34 Triangulation of the Hypothetical Device

In this section, a more practical result is shown. The steps of generating the mesh for a

MOS device is shown next. First the device geometry is stored in the Geometry

Server.

Figure 2-35 A MOS Device

The Geometry is passed to the Grid Server and the quad-tree is generated as shown in the

next figure. The mesh density is high in the depletion regions and in channel, which is

highly required for the Simulator.

28

-1-0.500.51

3.4

3.6

3.8

4

4.2

4.4

4.6

4.8

5

5.2

5.4

ND=1e7ND=1e7

NA=1e3

SiO2

Page 43

Figure 2-36 MOSFET Quad-Tree

The Delta Zone procedure now determines the delta quads as was already stated

previously

Figure 2-37 Delta quads of the MOS

The delta-zones are generated. Every region, the Silicon and SiO2, has a delta zone as

shown in the next figure (Figure 2-38).

29

-1.5-1-0.500.51 1.5

3

3.5

4

4.5

5

5.5

-1.5 -1-0.500.51 1.5

3.4

3.6

3.8

4

4.2

4.4

4.6

4.8

5

5.2

5.4

Page 44

Figure 2-38 Delta-zone regions of a MOSFET

The interiors are triangulated by using the templates discussed in section 2-4-3 and the

delta-zones are triangulated by CDT. The whole triangulation is shown in the next figure

(Figure 2-39). It is the union of the delta-zones triangulation and the interiors triangulation.

Figure 2-39 Triangulation of MOSFET

In this chapter a full discussion of the SWR framework is carried out. A hypothetical

device of general shape was shown. Then a MOSFET device was presented and every main

principle in the mesh generation is shown by figures generated by SEMILAB.

30

-1 -0.500.51

3.4

3.6

3.8

4

4.2

4.4

4.6

4.8

5

5.2

5.4

Page 45

CHAPTER 3

THE DRIFT-DIFFUSION MODEL

3-1 Introduction

The Drift-Diffusion, DD, model is the best understood model for simulating

semiconductor devices. It was introduced by Van Roosbroeck in 1950 as a conservation

system for the electron and hole carriers, along with the electric field determined from

Poisson's equation. Derivation of the model is possible starting from the BTE. The DD

model is a good approximation of the device physical phenomena when [2]:

•

All of the scattering processes are elastic . The spatial variation of the relaxation times

and of the band structure of the semiconductor are neglected, i.e., slow variations of the

doping profile are assumed.

Degeneration effects in the approximation of the collision integral are neglected.

The electric field depends solely on the spatial position and the magnetic induction

vanishes.

The carrier temperature coincides with the lattice temperature , which is constant. This

prevents simulating hot carrier and velocity overshoot phenomena.

The energy bands are parabolic.

From the mathematical point of view and under appropriate scaling, the conservation part

of the system of equations is convection dominated. The convection domination arises form

the potential by solving Poisson equation.

In the 1960s Gummel introduced [21] system decoupling through a nonlinear Gauss-

Seidl iteration. Scharfetter and Gummel [22] provided an exponential fitting approximation

for the continuity equation in 1 dimension.

In section 3-2 the model equations are introduced. Section 3-3 deals with change of

variables mostly suitable for the numerical simulation. In section 3-4 mobility models as

well as different Generation- Recombination rates are discussed. Section 3-5 introduces

different scaling schemes, The De Mari and Unity methods which are suitable for obtaining

a numerically stable solutions, since different device parameters, for example the doping

profile, may change by different order of magnitude. In section 3-6 Boundary conditions are

presented. Section 3-7 concludes this chapter by reviewing the history of the numerical

solution of the DD model.

•

•

•

•

31

Page 46

3-2 The DD System of equations

A typical semiconductor device consists of a bounded and simply connected portion of

space Ω of Rd(d=1,2,3) , which is constituted by a semiconductor part, denoted by

Ωs , and, in the case of MOS devices, also by one more subdomains of thin oxide

adjacent to Ωs and whose union is denoted by Ω0 . We also denote by x∈Rdthe

independent spatial variable and by t∈(0,tf) the time variable. The DD model equations

can be written as follows:

q∂ p⁄∂t?∇ Jp=?qR

E=?∇ Ψ

∇⋅εE=ρ

q∂n⁄∂t?∇ Jn=?qR

inQ:=ΩX (0,tf)

inQs:=ΩsX (0,tf) 3-2-1

inQs=ΩsX (0,tf)

inQ

ρ=q( p?n?k)

inQs

ρ=0inQ0

Jn=qµnnE?qDn∇ ninQs

Jp=qµppE?qDp∇ p inQs

where

ε

E

ρ

q

n

p

Jn

Jp

R

Dn

Dp

k

Ψ

µn

µp

is theelectrical permittivity

is theelectrical field

is thechargedensity

is theelectroncharge

is theelectrons concentrations

is theholes concentrations

is theelectronscurrent density

is theholescurrent density

is thenetrecombination?generationrate

is theelectrons diffusioncoefficent

is theholes diffusioncoefficent

is thedopinglevel

is the potentialenergy

is theelectronsmobility

is theholesmobility

(ND?NA)

32

Page 47

3-3 Change of variables

Different variables are introduced which turns out the continuity equations into different

forms suitable for numerical discretization. We will start by defining the imrefs [43]

φn=ψ?KT

qni

φp=ψ?KT

qni

lnn

lnp

3-3-1

where Efn=qφn and Efp=qφp

The current densities Jn and Jp can be rewritten as :

Jn=?qµnn∇φn

Jp=?qµp∇φp

3-3-2

We will introduce another variable which will be used extensively in the 2 dimensional

discretization

ρn=e

ρp=e

ρnand ρpare known as the Slotboom variables for the electrons and holes respectively.

Therefore,

Jn=qDnnie(qψ⁄KT)∇ ρn

Jp=?qDpnie(?qψ⁄KT)∇ ρp

(?qφn⁄KT)

(qφp⁄KT)

3-3-3

3-3-4

3-4 Mobility and recombination-generation rate

Mobility can be defined as the ratio between the carriers average velocity to the applied

electric field [23], i.e.,

ν=µE 3-4-1

However, such a relation is not linear, practically after a certain electric field Esat the

velocity saturates and never increases over a certain velocity νsat in silicon. Therefore, for

low electric field value µ can be considered constant. For high field applications the

mobility can be expressed as [23]:

33

Page 48

µn,p=

µ0

|∇ ψ|

vsat

(1

β)

(1?(µ0

)

β

)

(1

β) 3-4-2

Where µ0 is the low field mobility and β=2 for electrons and equals 1 for holes.

In order to complete the description of equations 3-2-1, we will provide some suitable

relations for the recombination-generation term. In non thermal equilibrium recombination-

generation mechanisms arise to bring the system back to thermal equilibrium. The

mechanisms considered in the simulation are the Shockley- Hall- Read, SHR, Auger, AU,

and Impact ionization, II,[23]. The mathematical expressions for the three mechanisms can

be shown to be:

RSHR=( pn?ni

τn( p?ni)?τp(n?ni)

2)

RAU=( pn?ni

2)(Cnn?Cpp)

RII=?(αn|E||Jn|⁄q)?(αp|E||Jp|Jp)⁄q

3-4-3

Where τn,τp are the carrier lifetimes, Cn,Cp are the Auger coefficients, αn,αp are

the ionization rates, RSHR,RAU?RIIare the SHR, AU, II recombination and generation

terms respectively.

The total recombination- generation rates are computed as :

R=RSHR?RAU?RII 3-4-4

3-5 Scaling

The physical parameters in equation 3-2-1 have different physical dimensions and, in

order to compare their orders of magnitude, these quantities have to be made dimension-less

by appropriate scaling. Two closely related scaling schemes are introduced [2].

i.De Mari scaling

•

Potentials scaled down by Vth=(KT

q)

•

Concentrations are scaled down by the intrinsic concentration ni

•

Length is scaled down by an intrinsic Debye length LD= ε

Vth

(q ni)

ii.Unit Scaling

Potentials are scaled down by Vth .

•

34

Page 49

•

Concentrations are scaled down by C=max(k) where k is the doping level.

Length is scaled down by a characteristic device dimension l.

By applying any of the above scaling, the scaled dimension-less DD system reads

•

∇⋅λ2E= p?n?k

∂n

∂t?∇⋅Jn=?R

∂ p

∂t

E=?∇ ψ

Jn=µn(∇ n?n∇ ψ)

Jp=?µp(∇ p? p∇ ψ)

whereλ2=(εVth)

(lscal

?∇⋅Jp=?R

2

qCscal)

3-5-1

Quantity De Mari

Factor

De Mari Factor

value

0.0258 V

Unit

Factor

Unit Factor

value

0.0258 V

ψ

Vth

Vth

n,p

ni

1.482×1010cm?3

C

1018cm?3

x

LD

3.357×10?3cm

l

10?4cm

µn,µp

D0Vth

?1

38.68cm2V?1s?1

µ

1000cm2V?1s?1

Dn,Dp

D0

1cm2s?1

µVth

25.8cm2s?1

Jn,Jp

qDoni⁄LD

0.71×10?6Acm?2

qVthµC ⁄l

4.13×106Acm?2

R

D0ni⁄LD

2

1.314×1015cm?3s?1

VthµC ⁄l2

2.58×1029cm?3s?1

t

LD

2⁄D0

1.127×10?5s

l2⁄(Vthµ)

4×10?10s

Table 3-1 Scaling Factors

In this thesis all the values of the graphs are expressed using De Mari scaling, unless it is

mentioned otherwise.

3-6 Boundary Conditions

In this sub-section we will discuss the DD model boundary conditions in the case of

steady state problems. Let us assume that the active device area, denoted by

Ω=Ωs∪Ω0⊂Rd(d?2) , is an open bounded set. The discussion will be done on the

35

Page 50

MOS structure shown in figure 3-1. The boundary ∂Ω of the semiconductor device can

be divided into two disjoint parts. i.e.,

∂Ω=∂ΩP∪∂ΩA

∂ΩP∩∂ΩA=∅

Where ∂ΩP is a physical boundary, e.g., the metal contacts where external voltages are

applied, ∂ΩA is an artificial boundary which separates several devices on the same chip

e.g, is the oxide- semiconductor interfaces. ∂ΩA and ∂ΩP can be further decomposed

into disjoint portions depending on whether the region is semiconductor or oxide, i.e,

3-6-1

∂ΩP=∂ΩP,S∪∂ΩP,0

∂ΩA=∂ΩA,S∪∂ΩA,0∪∂ΩI

3-6-2

Where ∂ΩI denotes the oxide-semiconductor interface. In the example of figure 3-1

we have:

A

B

.n+

Figure 3-1 Boundary Conditions

Mixed Dirichlet - Neumann boundary conditions, typically non-homogeneous Dirichlet

conditions on ∂ΩP and homogeneous Neumann conditions on the remaining parts are

used.

We start by describing the boundary conditions on ∂ΩP and consider first ∂ΩP,S

This is made by ohmic contacts where external voltages are applied to electrically drive the

semiconductor device. From a mathematical point of view, an ideal ohmic contact is a

Dirichlet segment where the thermodynamic equilibrium is assumed, i.e., the mass-action

law

np|∂ΩP,S=ni

2 3-6-4

and the charge neutrality:

ρ|∂ΩP,S=q( p?n?k)|∂ΩP,S=0 3-6-5

36

C

D

E

F

G

H

P

.n+

Oxide

Download full-text