ise integrated systems engineering release 9.0 part 12 · suitable for semiconductor device...

80
ISE Integrated Systems Engineering Release 9.0 Part 12 MESH

Upload: others

Post on 30-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

ISE Integrated Systems EngineeringRelease 9.0

Part 12MESH

Part 12 – MESH Contents

MESH

1 – Introduction......................................................................................................... 12.11.1 About this manual ....................................................................................................................12.11.2 Scope of the manual................................................................................................................12.11.3 Terms and conventions ...........................................................................................................12.1

2 – Getting started .................................................................................................... 12.32.1 About MESH ............................................................................................................................12.32.2 Introductory three-dimensional example..................................................................................12.4

2.2.1 Boundary description file ............................................................................................12.42.2.2 Command file .............................................................................................................12.5

3 – Using MESH......................................................................................................... 12.73.1 Running MESH ........................................................................................................................12.7

3.1.1 Setting default parameters .........................................................................................12.73.1.2 Setting the maximum size of elements.......................................................................12.83.1.3 Setting analytical profiles............................................................................................12.93.1.4 Setting adaptation according to impurities and minimum size of elements..............12.113.1.5 More complex doping profiles ..................................................................................12.133.1.6 Statistics for tutorial examples..................................................................................12.14

3.2 Defining more complicated geometries .................................................................................12.153.2.1 One-dimensional example: NMOS...........................................................................12.153.2.2 Two-dimensional example: NMOS...........................................................................12.163.2.3 Three-dimensional example: MOS-controlled thyristor (MCT) .................................12.163.2.4 Three-dimensional example: ECL transistor ............................................................12.173.2.5 Three-dimensional example: Incorporating external profiles....................................12.183.2.6 Additional notes for arbitrary 3D geometries ............................................................12.18

3.3 Troubleshooting .....................................................................................................................12.193.3.1 Early termination ......................................................................................................12.193.3.2 MESH runs for unexpectedly long time ....................................................................12.193.3.3 Three-dimensional geometry and topology checker ................................................12.193.3.4 Error messages and invalid geometries ...................................................................12.19

3.4 MESH options........................................................................................................................12.20

4 – Boundary description....................................................................................... 12.234.1 Overview................................................................................................................................12.234.2 Compatibility with other programs .........................................................................................12.234.3 Input file in bound format .......................................................................................................12.23

5 – Command file description................................................................................ 12.255.1 Overview................................................................................................................................12.255.2 Description of general function evaluator ..............................................................................12.26

5.2.1 Controls section........................................................................................................12.265.3 Definitions section..................................................................................................................12.27

5.3.1 Defining refinement regions .....................................................................................12.275.3.2 Defining multibox refinement regions .......................................................................12.285.3.3 Defining subMeshes.................................................................................................12.285.3.4 Defining constant profiles .........................................................................................12.295.3.5 Defining analytic profiles ..........................................................................................12.30

12.iii

Part 12 – MESHContents

5.4 Placements section............................................................................................................... 12.315.4.1 Geometrical elements.............................................................................................. 12.325.4.2 Placing refinement regions ...................................................................................... 12.325.4.3 Placing multibox regions.......................................................................................... 12.335.4.4 Placing profiles ........................................................................................................ 12.335.4.5 Placing subMeshes ................................................................................................. 12.345.4.6 Referencing constant profiles .................................................................................. 12.355.4.7 Referencing analytic profiles ................................................................................... 12.36

5.5 Examples .............................................................................................................................. 12.395.5.1 Using refinement polygons ...................................................................................... 12.395.5.2 Regionwise and materialwise refinement ................................................................ 12.405.5.3 Using analytic functions for refinement I.................................................................. 12.415.5.4 Using analytic functions for refinement II................................................................. 12.425.5.5 Using analytic functions for doping specification ..................................................... 12.42

5.6 Reading old command files................................................................................................... 12.435.6.1 Instructions not supported ....................................................................................... 12.43

6 – Formulas for analytic profiles.......................................................................... 12.456.1 Overview ............................................................................................................................... 12.456.2 General concepts.................................................................................................................. 12.45

6.2.1 Local coordinate systems, valid domains, and reference regions ........................... 12.456.2.2 General implantation models................................................................................... 12.476.2.3 Other parameters of interest.................................................................................... 12.48

6.3 Available models along the primary direction ....................................................................... 12.506.3.1 Gaussian functions .................................................................................................. 12.506.3.2 Error functions ......................................................................................................... 12.516.3.3 Constant function..................................................................................................... 12.526.3.4 External 1D profile ................................................................................................... 12.52

6.4 Lateral or decay functions..................................................................................................... 12.526.4.1 Lateral Gaussian function........................................................................................ 12.536.4.2 Lateral error function ............................................................................................... 12.536.4.3 No lateral function.................................................................................................... 12.54

7 – Technical aspects ............................................................................................. 12.557.1 Valid polygons and polyhedra............................................................................................... 12.557.2 Numeric considerations ........................................................................................................ 12.557.3 Mesh refinement algorithm ................................................................................................... 12.56

7.3.1 Constructing the first coarse grid............................................................................. 12.567.3.2 Adaptation according to external data ..................................................................... 12.567.3.3 Obtaining a conforming final grid............................................................................. 12.56

7.4 Delaunization module ........................................................................................................... 12.577.4.1 Algorithm ................................................................................................................. 12.57

7.5 Active and total concentrations in MESH.............................................................................. 12.58

Appendix A – Examples ......................................................................................... 12.59A.1 Tutorial: Diode example........................................................................................................ 12.59

A.1.1 Boundary file: diode.bnd ......................................................................................... 12.59A.1.2 Command file: Abrupt diode.................................................................................... 12.59A.1.3 Command file: Default parameters ......................................................................... 12.60A.1.4 Command file: Maximum size of elements ............................................................. 12.61A.1.5 Command file: Modifying the n-type region............................................................. 12.62

12.iv

Part 12 – MESH Contents

A.1.6 Command file: Doping adaptation............................................................................12.63A.1.7 Command file: Minimum size of elements ...............................................................12.64A.1.8 Command file: Using values at the junction.............................................................12.65

A.2 Complex examples................................................................................................................12.67A.2.1 One-dimensional NMOS ..........................................................................................12.67A.2.2 Two-dimensional NMOS ..........................................................................................12.69A.2.3 Three-dimensional: MOS-controlled thyristor ..........................................................12.70A.2.4 Three-dimensional example: ECL transistor ............................................................12.73A.2.5 Three-dimensional example: Incorporating external profiles ...................................12.76A.2.6 Three-dimensional example.....................................................................................12.77

Bibliography............................................................................................................ 12.79

12.v

Part 12 – MESH 1 – Introduction

Part 12 – MESH

1 – Introduction

1.1 About this manualThis manual describes the ISE TCAD mesh generator MESH. It is a dimension-independent tool, whichincorporates several different meshing engines, using different meshing techniques and algorithms. MESH isa command-line tool, where the different meshing options are available by using switches and command-lineoptions. MESH generates meshes that are suitable for semiconductor device simulation. Local meshrefinement is performed by using the doping and refinement information prescribed in the MESH commandfile (.cmd).

1.2 Scope of the manualThis manual is intended for users of the MESH software package. The main chapters are:

Chapter 2 describes the MESH application and provides an example of the MESH functionality.

Chapter 3 describes how to run MESH and outlines the function of the command file.

Chapter 4 describes the ‘bound’ format of the input file and how MESH is compatible with otherprograms.

Chapter 5 describes the MESH command file.

Chapter 6 explains the analytic models implemented by MESH.

Chapter 7 describes some technical aspects of the MESH application.

1.3 Terms and conventionsTable 12.1 Standard terms

Term Explanation

Click Using the mouse, point to an item, press and release the left mouse button.

Double-click Using the mouse, point to an item and in rapid succession, click the left mouse button twice.

Select Using the mouse, point to an icon, a button, or other item and click the left mouse button.

12.1

Part 12 – MESH1 – Introduction

Table 12.2 Typographic conventions

Convention Definition or type of information

Blue Identifies a cross-reference.

Bold Identifies a selectable icon, button, menu, or tab, for example, the OK button. It also indicates the name of a field, window, dialog box, or panel.

code Identifies text that is displayed on the screen, or text that the user must enter.

Italics Used to emphasize text or identifies a component of an equation or a formula.

NOTEAlerts the user to important information.

12.2

Part 12 – MESH 2 – Getting started

Part 12 – MESH

2 – Getting started

2.1 About MESHThe mesh generator MESH is a dimension independent and modular Delaunay grid generator, which issuitable for semiconductor device simulation. MESH generates high quality spatial discretizations for 1D, 2D,and 3D devices using a predefined set of mixed-element types. Taking some of the best meshing algorithmsavailable, and innovative ideas and procedures, MESH is a modular, dimension-independent mesh generationtool kit. A modular organization of the basic steps allows the incorporation of new strategies.

In 2D, complex devices that are generated by process simulation can be handled. In 2D and 3D, grids forcomplex nonplanar devices can be generated.

MESH is also the grid generation engine that is used inside MDRAW. The integrated MDRAW mesher isequivalent with the command-line mesh tool, when the -M switch is used (mesh -M). By default, MDRAWgenerates a mesh without obtuse angles, and MESH produces less restrictive Delaunay meshes (see Chapter 7on page 12.55).

MESH is fully integrated into the ISE environment. The DF–ISE boundary representation is used as input forMESH.

Impurity concentrations and user-required element sizes can be described using dimension-independentsyntax. The same description of analytical profiles can be used in 1D, 2D, and 3D. The grid can be adaptedto analytical profiles or profiles generated by DIOS, in 2D, and DIP, in 3D. (All references to concentrationsin this document imply ‘active’ or ‘substitutional’ concentrations, as DESSIS calculations use them in such aform.)

MESH can read old OMEGA boundary files and transform them into the DF–ISE boundary syntax, using the-n switch. The user must ensure the conformity of the old boundary files. Old command files can also be usedby specifying the -oldcmd file switch, in which case, the old command files are converted to the new syntax.

NOTE Rename the newly generated boundary and command files and use them for any future work.

The fitting of the geometries is no longer performed by using tensor product grids. A new strategy, whichsubdivides the domain into macroelements that are subsequently split into elements, allows for the meshingof more general devices with thin non-coplanar layers.

The desired point densities, according to the supplied concentration profiles, are obtained by refining theelements in an anisotropic way, generating fine elements for the critical parts of the device and coarseelements in the bulk regions. Unnecessary point propagation due to quadtrees, octrees, or tensor product gridtechniques is avoided.

Finally, adding a delaunization step after macroelement tessellation allows MESH to obtain high qualityconforming Delaunay grids, suitable for control volume discretization methods, used in the device simulation.For more information, refer to the literature [1][2][3][4].

12.3

Part 12 – MESH2 – Getting started

2.2 Introductory three-dimensional exampleThe functionality of MESH is demonstrated by using a simple diode example. Figure 12.1 shows threedifferent approximations of a real diode. For the 1D and 2D descriptions, the most important features of thedevice are represented. The 1D approximation is a line cut along the x-axis, passing through both contacts.The 2D case is a plane cut along the z-axis passing through both contacts.

Figure 12.1 Geometry of a simple diode

Grid generation in MESH is controlled by two files. One file contains the device geometry description (.bnd)and the other (.cmd) contains information about profiles, for example, doping profiles and grid adaptationcriteria.

Input files for the entire tutorial are in the Examples Library.

2.2.1 Boundary description file

The first step is creating the boundary description file for the grid generator. MESH identifies thedimensionality from the boundary file. Two boundary input formats are available, but only one is shown inthe tutorial. For more information on the available formats, see Chapter 4 on page 12.23.

The device geometry description files have the extension .bnd. For this diode example, the file name isdiode.bnd. The geometry of the diode shown in Figure 12.1 is described as follows:

For 1D:

Silicon "substrate" {line [(0) (2)]} # silicon region, named substrateContact "anode" {point [(0)]} # Contact areaContact "cathode" {point [(2)]} # Contact area

12.4

Part 12 – MESH 2 – Getting started

For 2D:

Silicon "substrate" {rectangle [(0,0) (2,3)]} # silicon region, named substrateContact "anode" {line [(0,0) (0,3)]} # Contact areaContact "cathode" {line [(2,1) (2,2)]} # Contact area

For 3D:

Silicon "substrate" {cuboid [(0,0,0) (2,3,2)]} # silicon region, named substrateContact "anode" {rectangle [(0,0,0) (0,3,2)]} # Contact areaContact "cathode" {rectangle [(2,1,1) (2,2,2)]} # Contact area

NOTE The boundary file diode.bnd is used as a reference for the remainder of the tutorial.

2.2.2 Command file

The command file controls the grid adaptation by specifying profiles, for example, doping profiles andrefinement specifications. The command file must have the extension .cmd. Comment lines start with * or #.

According to Figure 12.1 on page 12.4, two types of doping regions are required: a p-type region and an n-type region. The simplest way to define these regions is to use two constant profiles. For the moment, norefinement specification is given and grid generation relies on their default values. For more informationabout these default values, see Section 5.3.1 on page 12.27.

2.2.2.1 Command file for a simple diode

This section describes the command file diode.cmd that is used as an example for the rest of the tutorial. Thecommand file contains two types of information: dimension-independent data and dimension-dependent data.The dimension-independent part of the command file diode.cmd, for our example, is:

Title "minimal example: simple diode"Definitions {

# ProfilesConstant "n-type region" {

Species = "PhosphorusActiveConcentration" Value = 1e+18}Constant "p-type region" {

Species = "BoronActiveConcentration" Value = 1e+17}

}

The optional keyword Title is used for a short description of the device and mesh. The section Definitionsspecifies the dimension-independent part of the command file and can be used for all dimensions withoutmodifications.

Two constant profiles for doping are described using the keyword Constant followed by the profile name inquotation marks. The keyword Species is used to declare the doping species used in the region. The constantconcentration is specified by the number following the keyword Value. The sign is intrinsic to the species.

Now, the doping profiles must be placed in the device. The placement of these profiles depends on the devicegeometry.

12.5

Part 12 – MESH2 – Getting started

Since, we want to fill ‘solid’ regions with constant doping in this example, the following instructions areadded to the command file:

Placements {# Profiles Constant "n-type region instance" {

Reference = "n-type region"EvaluateWindow {

Element = cuboid [(1 0 0), (2 3 2)] # for 3D}

}Constant "p-type region instance" {

Reference = "p-type region"EvaluateWindow {

Element = cuboid [(0 0 0), (1 3 2)] # for 3D}

} }

The keyword Placements starts the dimension-dependent section where the instances of the definitions givenin the Definitions section are defined. The keyword Reference specifies a profile defined in the Definitionssection. EvaluateWindow defines the valid domain for the profiles. In this example, the valid domains are linesin 1D, rectangles in 2D, and cuboids in 3D. If EvaluateWindow is not defined in the file, the profile is valid inthe entire domain of the device.

For the 3D case, the valid domain of the p-type region is the lower half of the device given by the cuboid[(0 0 0), (1 2 3)]. In 2D, this domain is given by the rectangle [(0 0), (1 2)] and in 1D, by the line [(0), (1)].However, the doping profile defined for 3D can be used for the lower dimensions and, for the rest of thetutorial, only the command file for the 3D case will be used.

In the example, there is an abrupt decay function between the two constant profiles. The doping associated topoints outside the EvaluateWindow is zero. This situation can be modified if the parameter DecayLength is used.By setting the keyword DecayLength in EvaluateWindow, an error function can be used as a decay profile.

12.6

Part 12 – MESH 3 – Using MESH

Part 12 – MESH

3 – Using MESH

3.1 Running MESHAfter creating the first two basic input files, diode.bnd and diode.cmd, the first mesh can be created using thecommand:

mesh diode

MESH automatically adds the extensions .bnd and .cmd to the base name diode. MESH creates the output filesdiode_msh.grd and diode_msh.dat that contain mesh geometry information and doping information,respectively. Another file, diode_msh.log, is created and used as the log file for the grid generation. Theresulting mesh for the simple diode is shown in Figure 12.2.

.

Figure 12.2 Fitting only the geometry of a diode

Table 12.3 on page 12.15 provides statistics for all meshes shown in the tutorial. See Section A.1.2 onpage 12.59 for the complete diode.cmd used for this example. In the Examples Library, the example is underthe project Tool/Mesh/Tutorial/abrupt.

3.1.1 Setting default parameters

Figure 12.2 shows the result when only the geometry is fitted and no adaptation parameter is given to MESH.However, it is possible to define a set of default parameters to control the grid generation for the entire device.

3.1.1.1 Example

To set the default adaptation parameters for the entire device, the following changes are introduced to theprevious example:

Definitions {# Refinement regionsRefinement "default region" {

MaxElementSize = 1MinElementSize = 0.02

}# Profiles same as previous command file

}

-1.0e+17

-1.3e+15

+1.4e+14

+1.3e+16

+1.0e+18/cm3Net Doping

2-D Diode

-1.0e+17

-1.3e+15

+1.4e+14

+1.3e+16

+1.0e+18/cm3Net Doping

1-D Diode

-1.0e+17

-1.3e+15

+1.4e+14

+1.3e+16

+1.0e+18/cm3Net Doping

2-D Diode

12.7

Part 12 – MESH3 – Using MESH

Placements {# Refinement regionsRefinement "default region instance" {

Reference = "default region"# Default region

}# Profiles same as previous command file

}

These will be the default values taken when an adaptation parameter is not present in the definition of arefinement region. Figure 12.3 shows the meshes created using the above parameter values.

Figure 12.3 Grids created using some default adaptation parameters

See Section A.1.3 on page 12.60 for the complete diode.cmd file used for this example. In the ExamplesLibrary, the example is under the project Tool/Mesh/Tutorial/defaultAdaptation.

3.1.2 Setting the maximum size of elements

Figure 12.2 on page 12.7 and Figure 12.3 show grids too coarse even for an abrupt diode. To change thedensity and shape of the grid, add new mesh refinement specifications to the Definitions and Placementssections.

3.1.2.1 Example

To demonstrate MESH flexibility, we will generate meshes with different density in one corner of the device.First, we demonstrate the effect of specifying a smaller maximum element side length MaxElementSize. In thefollowing Definitions section, the information about doping is omitted for brevity.

Title "Demonstration of effect of MaxElementSize"Definitions {

# Refinement regions sectionRefinement "one corner" {

MaxElementSize = (0.2 0.4 0.25)}Refinement "rest of the device" {

MaxElementSize = (0.4, 0.8, 0.5)}# Profiles same as previous command file

}

In the above example, the upper-left front corner of the device is more refined than the rest of the device. Forboth refinement regions, MaxElementSize is specified with a vector so that the mesh density varies between theaxes.

-1.0e+17

-1.3e+15

+1.4e+14

+1.3e+16

+1.0e+18/cm3Net Doping

3-D Diode

-1.0e+17

-1.3e+15

+1.4e+14

+1.3e+16

+1.0e+18/cm3Net Doping

2-D Diode

-1.0e+17

-1.3e+15

+1.4e+14

+1.3e+16

+1.0e+18/cm3Net Doping

1-D Diode

12.8

Part 12 – MESH 3 – Using MESH

The Placements section for this example in 3D is:

Placements {# Refinement regions sectionRefinement "one corner instance" {

Reference = "one corner"RefineWindow = cuboid [(0.75 0 0), (2 1.5 1)]

}Refinement "rest of the device" {

Reference = "rest of the device"}# Profiles same as previous command file

}

The refinement region instance "rest of the device" does not have the RefineWindow element associated withit. For MESH, this type of refinement region is considered valid for the entire device as the default refinementregion. When more than one region instance does not have RefineWindow, the last refinement instance isconsidered as the default region.

RefineWindow can be replaced for the appropriate 2D and 1D geometrical elements (rectangles and lines,respectively). The cuboid definitions can also be kept for the 1D and 2D cases.

The meshes generated by MESH for the different number of dimensions are shown in Figure 12.4. It isobserved that the abrupt junctions are better adapted using finer grid elements.

Figure 12.4 Changing the maximum side of elements

See Section A.1.4 on page 12.61 for the complete diode.cmd file used for this example. In the ExamplesLibrary, the example is under the project Tool/Mesh/Tutorial/maximumSize.

3.1.3 Setting analytical profiles

In the previous examples, the doping distribution changes abruptly at the p-n junction in the middle of thedevice. A more realistic doping profile can be specified using an analytical description in the MESHcommand file.

For this example, the adaptation parameters are the same as those presented in Section 3.1.2 on page 12.8.

3.1.3.1 Command file for a more realistic diode

As in the simple diode example, we specify the doping concentration inside cuboids, rectangles, or alonglines. Throughout the device, we define a p-type doping of 1×1017 cm–3 using the abrupt profile Constant inside

-1.0e+17

-1.3e+15

+1.4e+14

+1.3e+16

+1.0e+18/cm3Net Doping

3-D Diode

-1.0e+17

-1.3e+15

+1.4e+14

+1.3e+16

+1.0e+18/cm3Net Doping

1-D Diode

-1.0e+17

-1.3e+15

+1.4e+14

+1.3e+16

+1.0e+18/cm3Net Doping

2-D Diode

12.9

Part 12 – MESH3 – Using MESH

a cuboid. A well of n-type doping replaces the abrupt constant profile shown in the previous example. Theprofile is defined using an error function along the -axis plus a lateral function. The profile has the maximumat the surface of the top contact.

Keeping the same definition for the p-type doping profile, the new profile is described in the Definitionssection as:

AnalyticalProfile "n-type well" {Species = "PhosphorusActiveConcentration"Function = Erf(SymPos = 0.5, PeakVal = 1e+18, Length = 0.1)LateralFunction = Gauss(Factor = 0.8)

}

The keyword AnalyticalProfile starts a description of an analytical profile. The keyword Function representsthe function component along the primary direction, and the keyword LateralFunction represents the functioncomponent along the lateral direction. Figure 12.20 on page 12.46 and Figure 12.21 on page 12.47 show theschemes for 2D and 3D profiles, respectively.

The syntax to place this analytical profile in the Placements section is:

AnalyticalProfile "n-type well instance" {Reference = "n-type well"ReferenceElement {

Element = rectangle [(2, 1, 0) (2, 2, 1)]}

}

ReferenceElement defines the origin of the local coordinate system for the primary function. All mesh pointsare projected to this element and the computed distance is used to evaluate Function. Using the keywordDirection, it is possible to evaluate only along the positive or negative side of the element (see Section 5.4.7on page 12.36).

Figure 12.5 shows the resulting doping profiles. Since we have defined a doping of /cm3 throughoutthe device and /cm3 in the well, the resulting doping in the well is /cm3. The grid is not welladapted to the doping, and the grid adaptation is necessary to resolve the specified doping profile.

Figure 12.5 Modifying the n-type region

See Section A.1.5 on page 12.62 for the complete diode.cmd file used for this example. In the ExamplesLibrary, the example is under the project Tool/Mesh/Tutorial/doping.

1– 1017×1 1018× 9 1017×

-1.0e+17

-1.3e+15

+1.3e+14

+1.2e+16

+9.0e+17/cm3Net Doping

3-D Diode

-1.0e+17

-1.3e+15

+1.3e+14

+1.2e+16

+9.0e+17/cm3Net Doping

2-D Diode

-1.0e+17

-1.3e+15

+1.3e+14

+1.2e+16

+9.0e+17/cm3Net Doping

1-D Diode

12.10

Part 12 – MESH 3 – Using MESH

3.1.4 Setting adaptation according to impurities and minimum size of elements

An important parameter in the Definitions section allows for the control of adaptation depending on dopingprofiles around p-n junctions. It is called RefineFunction. While refinements can occur on many user-requiredquantities, two different functions can be attached to this keyword. In our example, we use the asinh (keywordMaxTransDiff) of the doping concentration difference (Variable = DopingConcentration) between the meshpoints to adapt the grid. In this example, if the difference is greater than 1, the edge of the macroelements usedto build the mesh is refined.

However, the adaptation needs to be controlled with respect to the smallest element size. WhereasMaxElementSize is the upper bound for the edge length of mesh elements, the lower bound is specified with thekeyword MinElementSize. When MinElementSize is not present in the definition of a region, the default value of0.02 is taken.

As before, the influence of these new parameters is shown using two refinement regions. However, tohighlight the influence of the new parameters, MaxElementSize is set to 0.5 for both regions.

NOTE There are no values associated to RefineFunction when the keyword is not present in the refinementdefinition statement.

3.1.4.1 Example: Command file for doping-dependent adaptation

Keeping the same profiles as the previous example, the new statements for the refinement regions are:

Definitions {# Refinement regionsRefinement "one corner" {

RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 1)}Refinement "default region" {

MaxElementSize = 0.5 # or (0.5 0.5 0.5)}# Profiles same as previous command file

}Placements {

# Refinement regionsRefinement "one corner instance" {

Reference = "one corner"RefineWindow = cuboid [(0.75 0 0), (2 1.5 1)]

}Refinement "default region instance" {

Reference = "default region"}# Profiles same as previous command file

}

12.11

Part 12 – MESH3 – Using MESH

Figure 12.6 shows the grids created with the above command file.

Figure 12.6 Grid adaptation according to doping

The adaptation for the 1D case is fine since the cuboid defining the corner includes the 1D cut, which wasused as a boundary description. The 2D and 3D cases show the effect of not having criteria for the dopingadaptation. Only the elements in the left corner are refined, which is why the doping profile is resolved betterat this corner than in the right corner.

See Section A.1.6 on page 12.63 for the complete diode.cmd file used for this example. In the ExamplesLibrary, the example is under the project Tool/Mesh/Tutorial/adaptation.

3.1.4.2 Example: Command file with minimum element size

The effect of the keyword MinElementSize can be seen in this example. The RefineFunction given in the previouscommand file is taken for the default region. For the default region, we set MinElementSize to the vector (0.04,0.1, 0.1), while for the corner, the default value 0.02 is used.

Definitions {# Refinement regions Refinement "one corner" {

MinElementSize = 0.02}Refinement "rest of the device" {

MinElementSize = (0.04, 0.1, 0.1)MaxElementSize = 0.5RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 1)

}# Profiles same as previous command file

}# Placements section same as previous command file

Figure 12.7 on page 12.13 shows the effect of increasing the minimum size of the elements for the defaultregion. The adaptation for the corner is much finer because MinElementSize is smaller than for the rest of thedevice.

-1.0e+17

-1.3e+15

+1.3e+14

+1.2e+16

+9.0e+17/cm3Net Doping

3-D Diode

-1.0e+17

-1.3e+15

+1.3e+14

+1.2e+16

+9.0e+17/cm3Net Doping

2-D Diode

-1.0e+17

-1.3e+15

+1.3e+14

+1.2e+16

+9.0e+17/cm3Net Doping

1-D Diode

12.12

Part 12 – MESH 3 – Using MESH

Figure 12.7 Effect of setting the minimum element size

See Section A.1.7 on page 12.64 for the complete diode.cmd file used for this example. In the ExamplesLibrary, the example is under the project Tool/Mesh/Tutorial/minimumSize.

3.1.5 More complex doping profiles

Finally, two more profiles are added under the contact regions. In this case, values at the junction are used todefine the profiles along the primary direction instead of standard deviation for Gaussian profiles or diffusionlength for error functions. To complete the profiles, the keywords ValueAtDepth and Depth are required.ValueAtDepth is the concentration at the junction and Depth is the distance from the junction with respect to thepeak position.

NOTE Depth is a local distance from the peak position.

One default refinement region is used for the entire device.

3.1.5.1 Example: Command file using values at the junction

The syntax for the new analytical profiles in the Definitions section is:

Definitions {# Substrate doping as in the previous example# n-type well doping as in the previous example

AnalyticalProfile "high doping for Ohmic contact in n-region" {Species = "PhosphorusActiveConcentration"Function = Gauss(PeakPos = 0, PeakVal = 1e+20, ValueAtDepth = 1e+18, Depth = 0.2)LateralFunction = Gauss(Factor = 0.8)

}AnalyticalProfile "high doping for Ohmic contact in p-region" {

Species = "BoronActiveConcentration"Function = Gauss(PeakPos = 0, PeakVal = 1e+20, ValueAtDepth = 1e+17, Depth = 0.2)LateralFunction = Gauss(Factor = 0.8)

}Refinement "entire device" {

MinElementSize = (0.04, 0.02, 0.02)MaxElementSize = (0.5 0.5 0.5)RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 1)

}}

-1.0e+17

-1.3e+15

+1.3e+14

+1.2e+16

+9.0e+17/cm3Net Doping

3-D Diode

-1.0e+17

-1.3e+15

+1.3e+14

+1.2e+16

+9.0e+17/cm3Net Doping

2-D Diode

-1.0e+17

-1.3e+15

+1.3e+14

+1.2e+16

+9.0e+17/cm3Net Doping

1-D Diode

12.13

Part 12 – MESH3 – Using MESH

and in the Placements section:

Placements {# Substrate doping as in the previous example# n-type well doping as in the previous example

AnalyticalProfile "high doping for Ohmic contact in n-region instance" {Reference = "high doping for Ohmic contact in n-region"ReferenceElement {

Element = rectangle [(2, 1, 0), (2, 2, 1)]}

}AnalyticalProfile "high doping for Ohmic contact in p-region instance" {

Reference = "high doping for Ohmic contact in p-region"ReferenceElement {

Element = rectangle [(0 0 0), (0 3 2)]}

}# Refinement regions Refinement "entire device instance" {

Reference = "entire device"}

}

Figure 12.8 shows the resulting meshes.

Figure 12.8 Using values at the junction

NOTE The curvatures of the doping profiles along the lateral directions are better resolved because of asmaller value for the minimum element size.

See Section A.1.8 on page 12.65 for the complete diode.cmd file used for this example. In the ExamplesLibrary, the example is under the project Tool/Mesh/Tutorial/final.

3.1.6 Statistics for tutorial examples

Table 12.3 on page 12.15 presents statistics for the tutorial examples that correspond to the previous examplesin the order they were presented.

-1.0e+20

-7.1e+16

+4.0e+11

+7.1e+16

+1.0e+20/cm3Net Doping

3-D Diode

-1.0e+20

-7.1e+16

+4.0e+11

+7.1e+16

+1.0e+20/cm3Net Doping

2-D Diode

-1.0e+20

-7.1e+16

+4.0e+11

+7.1e+16

+1.0e+20/cm3Net Doping

1-D Diode

12.14

Part 12 – MESH 3 – Using MESH

In general, dfisetools -r can be used to generate information on the number of points and elements.

NOTE The number of grid elements in Table 12.3 does not include the elements used to define the contactareas – only 3D elements are counted for 3D; 2D elements, for 2D; and 1D, elements for 1D. Theywill vary from version to version as algorithmic changes occur.

3.2 Defining more complicated geometriesMore complex examples are included in the Examples Library. This section presents a short analysis of theperformance of MESH with different examples. A comparison is made between MESH and the rest of thegrid generators available in the ISE TCAD environment.

3.2.1 One-dimensional example: NMOS

Figure 12.9 shows the resulting mesh for the example. While the grids produced by MESH and GRID1D areidentical, it is interesting to analyze the difference in the command file syntax. In Section A.2.1 on page 12.67,both command files are included for further comparison.

Figure 12.9 1D NMOS with MESH: (a) Doping and (b) grid (175 points, 174 1D elements)

In the Examples Library, the example is under the project Tool/Mesh/1D/nmos.

Table 12.3 Diode

Case name Command file (see tutorial directory)

Figure Statistics: Range of point count

Simple abrupt 12.2 2–15

Default defaultAdaptation 12.3 3–36

n-well adaptation 12.4 6–200

Doping doping 12.5 14–620

Max size maximumsize 12.6 14–628

Min size minimumsize 12.7 10–600

Complex final 12.8 16–1879

0 1 2 3 4 5 6 7 8 9

-6.8e+14 +1.0e+14 +4.1e+15 +1.4e+17 +4.6e+18 +1.6e+20

/cm3Net Doping

NMOS : MESHPN+

0 1 2 3 4 5 6 7 8 9

NMOS : MESH

(a) (b)

12.15

Part 12 – MESH3 – Using MESH

3.2.2 Two-dimensional example: NMOS

This example shows the difference between Delaunay grids and obtuse angle–free grids. By default, MESHproduces 2D Delaunay grids suitable for device simulation. However, MESH can be forced to produce gridswithout obtuse angles, that is, the center of the circumscribe circle (Voronoï center) of each grid element liesinside the element, including the element edges. To do this, the option -s must be used.

Conversely, by default, MDRAW produces obtuse angle–free grids. However, using the option -delaunayAll,you can obtain the same type of grid as default MESH grids. For more information, see the MDRAW manual.

In Figure 12.10, (a) shows a Delaunay grid for an NMOS example and (b) shows an obtuse angle–free gridfor the same example. In the first case, the grid is composed of 663 points and 808 2D elements. The secondgrid is composed of 823 points and 995 2D elements.

Although both grids are suitable for device simulation, the first is more desirable due to its smaller size. Thesize reduction is achieved because the propagation of the green points is stopped earlier in the first case thanin the second.

Figure 12.10 Delaunay meshes (a) and obtuse angle–free meshes (b) in 2D

NOTE The option -s is available only in 2D.

To compare MESH and MDRAW command files, refer to the files in Section A.2.2 on page 12.69. In theExamples Library, the example is under the project Tool/Mesh/2D/nmos.

3.2.3 Three-dimensional example: MOS-controlled thyristor (MCT)

The device in this case is very long (500 µm) and very narrow (10 µm). The most interesting part is locatedon the top of the device, so the figures show the upper part of the example.

MESH and OMEGA both created a valid spatial discretization for this device. Figure 12.11 on page 12.17shows both grids. The number of points has been reduced by over 40% using MESH. Conversely, the numberof 3D elements in the MESH grid is greater than in the OMEGA grid. The reason for this increase is thedifferent element composition of the grids.

-2e+16 -2e+15 -9e+13 +3e+14 +4e+15 +6e+16 +8e+17 +1e+19 +2e+20

1/cm**3Net Doping

NMOS : MESH -s

-2e+16 -2e+15 -9e+13 +3e+14 +4e+15 +6e+16 +8e+17 +1e+19 +2e+20

/cm3Net Doping

NMOS : MESH

(a) (b)

12.16

Part 12 – MESH 3 – Using MESH

Figure 12.11 MOS-controlled thyristor created by MESH (a) and OMEGA (b)

The command file used to create the MESH grid is included in Section A.2.3 on page 12.70. In the ExamplesLibrary, the example is under the project Tool/Mesh/3D/mct.

3.2.4 Three-dimensional example: ECL transistor

Figure 12.12 shows both grids for this example.

Figure 12.12 ECL transistor created by MESH (a) and OMEGA (b)

In the mesh created by MESH, less point propagation around the insulator layer is observed. An intersection-based approach can fit the geometry using fewer elements than a typical tensor product grid used in OMEGA.Moreover, OMEGA again produces a grid with green lines, while with the option -w, it fails to create a grid.Therefore, only MESH can produce a grid that is green line free.

The command files for MESH are included in Section A.2.4 on page 12.73. In the Examples Library, theexample is under the project Tool/Mesh/3D/ecl.

-5.6e+20

-3.3e+17

-1.8e+14

+2.2e+16

+3.8e+191/cm**3Net Doping

MCT : OMEGA

-5.6e+20

-3.3e+17

-1.8e+14

+2.2e+16

+3.8e+191/cm**3Net Doping

MCT : MESH

(a) (b)

0

1

2

3

4

0

1

2

3

4

5

0

1

2

3

45

67

8

-1.2e+20 -3.5e+17 -9.7e+14 +9.1e+14 +3.3e+17 +1.2e+20

1/cm**3Net Doping

x

y

z

ECL : OMEGA

0

1

2

3

4

0

1

2

3

4

5

0

1

2

3

45

67

8

-1.2e+20 -3.5e+17 -9.7e+14 +9.1e+14 +3.3e+17 +1.2e+20

1/cm**3Net Doping

x

y

z

ECL : MESHECL : MESH

(a) (b)

12.17

Part 12 – MESH3 – Using MESH

3.2.5 Three-dimensional example: Incorporating external profiles

In 3D, the doping profiles can be incorporated using DIP. For both grid generators, the option -D must be used.The script for DIP is read from the file named filename.dip. Figure 12.13 shows the grids created by MESHand OMEGA.

Figure 12.13 Using DIP as doping profile generator in MESH (a) and OMEGA (b)

Although the grids have a similar number of points, MESH does not propagate points from the geometrythrough the entire device as can been seen in the OMEGA grid.

The command file for MESH describes the refinement regions for the drain and source regions using the samereference to the Definitions section. This property allows us to re-use refinement regions in the entire deviceand to ensure similar grid quality for the critical parts of the device without too much effort.

The command file is included in Section A.2.5 on page 12.76. In the Examples Library, the example is underthe project Tool/Mesh/3D/dip.

3.2.6 Additional notes for arbitrary 3D geometries

MESH supports arbitrary 3D geometries. The following notes are relevant when creating non-Manhattan typegeometries:

The keyword polyhedron can be used to create closed solids with arbitrary polygons acting as faces.

For rectangles that are not parallel to the three coordinate planes, the keyword polygon should be used todescribe the four points.

When inputting polygons in 3D, it is preferred that polygonal vertices are specified such that the facenormal points outside the polyhedra space or material space. Face normal is computed by traversing thepolygon nodes; the order of points in the polygon definition should be counterclockwise to achieve theoutward-facing normal property.

-4.4e+17

-8.1e+14

+1.7e+15

+9.0e+17

+4.9e+201/cm**3N

DIP : OMEGA

-4.4e+17

-8.1e+14

+1.7e+15

+9.0e+17

+4.9e+20 /cm3 N

DIP : MESH

(a) (b)

12.18

Part 12 – MESH 3 – Using MESH

3.3 Troubleshooting

3.3.1 Early termination

One common problem that causes MESH to quit before generating the mesh and doping files (_msh.grd and_msh.dat) is an error in the command file (.cmd). A common mistake is not having the correct path for loadingsubmeshes in 2D.

3.3.2 MESH runs for unexpectedly long time

Handling the green points and green lines is the most critical step in MESH. Many loops may be required inorder to make this step. There are two possible reasons for excessive computing time:

The complexity of the input geometry. In this case, it is recommended that you start with very coarse gridsand that you mesh only the geometry using the command-line option -m.

The mesh density. Depending on the specification of the mesh density in the command file, a substantialnumber of mesh points may be inserted during the adaptation. The insertion of the refinement regions ina stepwise or staged manner can help find the critical region that is responsible for the excessive numberof points. The option -w is also very helpful in debugging MESH grids.

MESH displays the number of elements that will be checked at each step of the program. During the handlingof the green points and green lines, the number of elements to check should decrease after each loop.

3.3.3 Three-dimensional geometry and topology checker

Incorrectly constructed input geometry has been a predominant source of 3D MESH failures. Incorrectconstructions can take many forms, namely, two regions intruding into each other in 3D, unclosed faces,unclosed polyhedra, incorrect face orientations, and so on. Automatic generation of input files fails to capturesome of these errors.

To help users, MESH has a topology checker, (-Cin command-line option), which looks at the edges, faces,and polyhedron for several of the above issues. While it provides some clues to correct the structure at the endof its operation, it is currently not very user-friendly.

3.3.4 Error messages and invalid geometries

Chapter 7 on page 12.55 explains the technical assumptions in creating a valid geometry. Some errorsoccurring at different stages of the program execution are:

If the faces of a polyhedron are not closed, MESH sends the message:

Error: invalid combination for closed polygon in LD3DPolygonFace::LD3DPolygonFace

If the points in a polygon are not coplanar, the following message is sent to the standard output:

Warning: no co-planar points in IISgeoEdgesPolygon::IISgeoEdgesPolygon, dot product = value.

Any dot product between the normal vector of the face and two points on the face must be zero, that is,the vectors are perpendicular (value = 0).

12.19

Part 12 – MESH3 – Using MESH

If the faces of a polyhedron are open (that is, it is a cube without a lid), MESH gives the following warningand, in some cases, may fail to finish unless the geometry is corrected:

Warning : The non-contact region (polyhedron) 'foo' is open and may cause mesh failure. Please checkyour geometry.

3.4 MESH optionsThe usage is:

Mesh [ options ] cmd-filename

-v Print version number.

-h Print options.

-t Generate only simplex elements: triangles in 2D and tetrahedrons in 3D.

-s Create a more restrictive Delaunay grid. The maximum angle allowed for triangles is in 2D. Thus, the Voronoï center of every grid element is completely inside the element.

-f Fit MaxElementSize first. MESH creates an initial set of macroelements according to the specifications of the user before fitting the geometry.

-m Generate grids using only the device geometry as the refinement criterion and ignore doping specifications. Always using this option is recommended as it helps to debug the geometry for complex devices.

-w Skip delaunization. Fit only user requirements and build a mesh, not suitable for device simulation. Valid for 2D and 3D. This option is useful to check if the grid is too coarse or too fine after the adaptation. Moreover, it helps to debug the last step in 3D Delaunay procedures.

-Cin Perform a topology check of the input geometry (3D only).

-Cout Perform a topology check of the resulting output mesh (3D only).

-R Remove unnecessary points, edges, or faces from boundary description.

-D Use DIP as doping incorporation functions. The file with the script for DIP must have the extension .dip. Valid only for 3D.

-I Do not use profiles; skip all datasets. Neither analytical profiles nor external profiles are taken in account. The file filename_msh.dat is not created.

-c <int> Restrict point connectivity for general patterns.

-g Build mesh in gas.

-G General pattern inserting point inside.

-i With analytical implantation (only 3D).

-n Translate the input files into the newest syntax.

-r Read mesh files specified in command file.

π 2⁄

12.20

Part 12 – MESH 3 – Using MESH

-P New (default) delaunization algorithm to finish the mesh (3D only).

-p Switch to old delaunization algorithm to finish the mesh (3D only).

-noffset Generate boundary conformal/orthogonal meshes using the ISE normal offsetting technique (2D only).

-numDecimals <integer> Round input values from the GUI. Default value is 5. This is a critical parameter and it must be selected depending on the example that the user is working with. If the value is large enough, the input geometry can no longer be valid. For example, the coplanarity of face points can be destroyed in 3D.

-rounding-off Disable rounding of input boundary points.

-discontinuousData Write discontinuous datasets.

-interfaceAdapt Enable refinement near material interfaces.

-preSurfaceSmooth Do NOT smooth the boundary conformal surface mesh points before performing delaunization (3D only).

-compress Compress output files into .gz format.

-binary Write binary output files.

-voronoiOutput Write out Voronoï dual mesh (3D only).

-AllActive Convert total concentrations to active concentrations (default).

-AllTotal Convert active concentrations to total concentrations.

-DopingAsIs Use concentrations as in files (for expert user).

-extract_in Extract boundary for regions specified in the control section from input boundary.

-interfaceAdapt Enable refinement at interfaces.

-iterative Use iterative refinement scheme.

-nop Do not generate mesh. Read input and write output files (can be used for topology check).

-noShrinkData Do not check variable validity when continuous data is stored.

-preSurfaceSmooth Do not smooth surface before delaunization (3D only).

-shortestEdge <value> Size of the shortest allowable edge in the final mesh (2D only).

-rounding-off Do not round coordinates from input boundary.

-oldcmd Allow the loading of command files that use the old syntax. Use also the -n option to convert the old command file to the new syntax, and use the new command file for any future work.

12.21

Part 12 – MESH 4 – Boundary description

Part 12 – MESH

4 – Boundary description

4.1 OverviewMESH reads the boundary description from the file filename.bnd. Two formats are supported:

bound format, which is a user-friendly geometry description format.

DF–ISE format, for boundary description (see Utilities, Chapter 2 on page 6.3).

4.2 Compatibility with other programsMESH can read the formats used for GRID1D and MDRAW in 1D and 2D, respectively. For 3D, the formatsbound and DF–ISE bnd are supported.

4.3 Input file in bound formatThe most important feature of this format is that it can be easily created and changed manually. In 2D, thebound format can be exported from the standard DF–ISE format using MDRAW.

A device is described through a list of solid regions and contact areas specified by the user. Solid regions aredefined as , where d is the device dimension and contact areas are defined as .Each solid region is given a material type, region name, and geometrical element defined by the user. Generalsyntax for a solid region is:

materialType "region name" {arbitrary list of solid regions}

Valid materials for the solid regions are listed in the file datexcodes.txt [DATEX], which includes Silicon,Oxide, Copper, and Aluminum. In the MDRAW GUI, valid materials can be found in the Materials menu.

Contact areas consist of a list of one or more (d–1)-D surfaces. The keyword for contacts is Contact. Generalsyntax for a contact area is:

Contact "contact name" {arbitrary list of N-D surfaces}

NOTE For each Contact, a name must be given using the above syntax.

In 1D, the solid regions are lines and the contact areas are points. In 2D, the solid regions are polygons, whichcan be represented by a polygon or rectangle. A polygon is defined as a set of connected segments or lines.The contact areas are segments or lines.

In 3D, the solid regions are polyhedra. A polyhedron can be described as either a cuboid (cuboid) or a generalpolyhedron (polyhedron), using the old bound format. A polyhedron is a set of connected 2D polygons. In 3D,the contact areas are polygons (see Section 5.4.1 on page 12.32).

regions Rd∈ regions Rd 1–∈

12.23

Part 12 – MESH 5 – Command file description

Part 12 – MESH

5 – Command file description

5.1 OverviewThis chapter gives a full description of the MESH command file (.cmd) format and describes the newcommand file format. The old command file format is still supported for input; however, an additional switch-oldcmd also must be specified, to load a command file that is using the old syntax.

In the MESH command file filename.cmd, users can specify different parameters for the grid generation. Whitespaces separate keywords, strings are presented with quotation marks, and blocks are delimited by openingand closing braces. Comment lines start with * or #. Keywords used in the command file are not case sensitive.

Several different types of information can be given in the command file. The user can specify the defaultmeshing engine, refinement information, and doping profile information. In addition, meshing parameters forNOFFSET meshers are stored in the command file.

Refinement information is required to control the grid generation procedure according to user requirements(local element size). This information is given using a set of parameters defined in the Definitions section.Profile information is required to define the profiles, for example, doping profiles, which are used in gridadaptation. Doping profiles can be specified with three types of information:

External simulation results

Constant data

Analytic formulas and predefined functions describing a profile

The command file is split into several different sections: Controls, Definitions, Placements, and Offsetting. Themain blocks and keywords are:

Title The command file can start with an optional title statement. The keyword Titlefollowed by a quoted string constitutes the title statement.

Controls This keyword starts the control section of the command file. The default meshingengine can be specified in this section.

Definitions Defines sets of refinement parameters and profile definitions to be used in thePlacements section. These sets are referenced using their unique reference names.

Placements Defines instances of the definitions given in the Definitions section placed withrespect to the current device.

Offsetting Parameters for 2D or 3D NOFFSET meshing engines can be specified in this section.The 2D NOFFSET meshing engine can be accessed using mesh -noffset; while the 3DNOFFSET meshing engine can be accessed as a separate binary, noffset3d.

The following syntax is used:

Title "example name"Controls {meshing engine information}Definitions {defining information}Placements {placing information}Offsetting {offsetting information}

12.25

Part 12 – MESH5 – Command file description

5.2 Description of general function evaluatorApart from the predefined (Gaussian, Erf, …) functions, users can also define general analytic functions thatcan be used in analytic profiles for defining primary and lateral functions. The syntax is:

Function = Eval(init = "...", function = "...", value = ...)LateralFunction = Eval(init = "...", function = "...")

or:

Function = General(init = "...", function = "...", value = ...)LateralFunction = General(init = "...", function = "...")

Both Eval and General have the same syntax for the argument list. The difference between Eval and General isthat General uses spatial coordinates, while Eval uses coordinates that are measured in the primary and lateraldirections for profiles.

The argument list can be defined in the following way:

init This is a semicolon-separated list of assignments for variables that are used later, forexample, init = "a=2;b=4". This string is evaluated only once.

function This is an expression that is evaluated for every query. The variable that replaces theprimary or lateral distance must be called x, for example, function = "sin(x)",

function = "exp(4*x)*sin(x)". In general, 1D, 2D, and 3D analytic functions canspecified here, using a valid C syntax. The variables x, y, and z refer to the respectivespatial coordinates for General.

value This is the default return value if the evaluation fails. The default is zero and 1 forLateralFunction.

Notes:

There is only one name space for all variables, that is, if init="a=1" is set in one instance, it is known forall instances.

You can freely mix Eval with Gaussian, Erf, and 1D.

The symbols "pi" and "e" can be used in the expressions.

The following functions can be used: "sin", "cos", "tan", "asin", "acos", "atan", "sinh", "cosh", "tanh","exp", "log", "log10", "sqrt", "floor", "ceil", "abs", "hypot", "deg", "rad".

Numeric constants must be specified as "2*10^18".

As an extension to the Eval function evaluator, the General evaluator assesses device coordinates directly,(x, y) and (x, y, z) and does not use primary and lateral distances. Any lateral functions and referencegeometries (in the Placements section) are ignored.

5.2.1 Controls section

The Controls section of the command file records the default meshing engine. The syntax of the Controlssection is:

Controls {meshengine = "meshing engine name"

}

12.26

Part 12 – MESH 5 – Command file description

where the meshing engine name can be specified as mesh or noffset.

The meshing engine (mesh or noffset) is chosen with the following priorities:

If the command-line switch mesh or noffset is specified in the MESH command line, the respectivemeshing engine is invoked, even if the command file defines a different meshing in the Controls section.

If no meshing engine switch is specified in the MESH command line, but a Controls section is defined inthe command file, the specified meshing engine from the command line is invoked.

5.3 Definitions sectionThe Definitions section is composed of sets of refinement and profile blocks. Each block consists of thereference name, an opening brace, the specification of the corresponding parameters, and a closing brace.

The order of the definitions inside the block has not effect since these definitions are used as references in thePlacements section. The syntax of this section is:

Definitions {Refinement "reference name" {

# set of parameters}Multibox "reference name" {

# set of parameters}SubMesh "reference name" {

# set of parameters}Constant "reference name" {

# set of parameters}AnalyticalProfile "reference name" {

# set of parameters}...

5.3.1 Defining refinement regions

The syntax for each refinement region is:

Refinement "reference name" {MaxElementSize = value | vectorMinElementSize = value | vectorRefineFunction = MaxTransDifference(parameters) | MaxGradient(parameters)

}

where:

MaxElementSize Controls the maximum size of grid elements. A real number or a vector can be specified, where d is the dimension. represents the

maximum edge lengths along the coordinate axes. A vector can be used to refinenonisotropically. Only values greater than zero are considered. The default for allvector components is 1.

x x1 … xn, ,[ ]= xd

12.27

Part 12 – MESH5 – Command file description

MinElementSize A real number or a vector can be specified. represents theminimum edge lengths along the coordinate axes. Grid elements can be refined in onedirection if their edge length in this direction is greater than the specified value. Onlyvalues greater than zero are considered. The default for all vector components is 0.02.

RefineFunction Two different functions can be used to select grid elements for refinement:MaxTransDifference and MaxGradient.

Variable Defines the dataset used to adapt the grid. The grid can be adapted according tospecies or any type of variable defined in the DF–ISE dataset files. The values arecomputed from the analytic formulas, constant data, and external simulation resultsdefined in the command file. Hence, the names for Variable must be taken from theDF–ISE dataset files, and these names must be enclosed in quotation marks.

MaxGradient The gradient of a profile (keyword variable) in the element is evaluated. If thegradient is greater than value and the edge lengths are large enough, the element isrefined.

MaxTransDifference The maximum difference of the transformed values of a profile at the vertices of theelement is evaluated. If the difference is greater than value and the edge lengths arelarge enough, the element is refined. The transformation (linear, logarithmic, arsinh)is defined in the DF–ISE dataset files for each variable. The syntax is:

RefineFunction = MaxGradient(Variable = "DFISE Dataset Name", Value = value) |RefineFunction = MaxTransDifference(Variable = "DFISE Dataset Name",

Value = value)

RefineFunction can be repeated for different variables in the same Refinement block. IfVariable is not defined, DopingConcentration is taken as the default. If Value is notspecified, it defaults to 1; however, there is no RefineFunction assigned by default.

5.3.2 Defining multibox refinement regions

The multibox is a special refinement box, which is implemented for 2D only. You can specify the requiredminimum and maximum element sizes in both directions, and an additional refinement ratio in bothdirections. The created mesh is graded using the specified ratios (also observing the minimum and maximumelement sizes).

The syntax to define a multibox refinement region is:

Multibox "multibox reference name" {MaxElementSize = value | vectorMinElementSize = value | vectorRatio = (ratio_width, ratio_height)

}

where MaxElementSize and MinElementSize are the same as for the refinement region definitions. Ratio controlsthe grading of the element sizes. ratio_width is the grading factor in the x-direction and ratio_height is thegrading factor in the y-direction.

5.3.3 Defining subMeshes

External simulation results given on a mesh can be used to define profiles in the device. The external meshmust have the same spatial dimension as the device. The datasets defined on the external mesh are interpolated

x x1 … xd, ,[ ]= xd

12.28

Part 12 – MESH 5 – Command file description

to the newly generated mesh. The external profiles are called subMeshes. The syntax for subMeshes in theDefinitions block is:

SubMesh "reference name" {Geofile = "filename"Datafile = "filename", Mode...Datafile = "filename", Mode

}

where:

Geofile The string indicates the name of a file with an external mesh. This file must be inDF–ISE format. The dimension of the external mesh must be the same as thedimension of the device.

Datafile The string indicates the name of a file with datasets defined on the external mesh. Thisfile must be in DF–ISE format. Several Datafiles can be defined for each Geofile.

Mode The string indicates the mode in which the data files are handled after generating themesh. The possible modes are:

'w' or "write"

After generating the mesh write a file containing the same datasets as Datafile. Bydefault, the name of the output file is composed of the base name of the command fileand the extension of the Datafile.

'w' or "write" = filename

This has the same definition as write, except that the output file name can be specified.If filename has no extension, the extension of the Datafile is used.

'r' or "read"

Read only mode. The information from the file is used for mesh adaptation but is notsaved in the output file.

'i' or "incremental"

Incremental mode. If the file name (without the extension) ends with a number, thecorresponding output file has the same name with the counter increased by one. If thefile name does not end with a number, then zero (0) is appended to the file name.

'o' or "overwrite"

Overwrite mode. After mesh generation, the Datafile is overwritten.

The default mode is write.

5.3.4 Defining constant profiles

The syntax for constant profiles in the Definitions block is:

Constant "reference name" {Species = "DFISE Dataset Name"Value = value

}

12.29

Part 12 – MESH5 – Command file description

where:

Species Selects the species or variable for the constant profile. The list of available species andvariables is given in the DF–ISE dataset files. No default value is assumed.

Value Value of the constant profile. No default value is assumed.

NOTE Only Species can be used to define a constant profile.

5.3.5 Defining analytic profiles

Profiles can be defined using simple analytic expressions. These expressions are composed of twocomponents. The first component called Function represents the values along a direction defined as the normaldirection of the ReferenceElement. These values are smoothed along the direction perpendicular to the normalusing the second component LateralFunction. The formulas used for these analytic profiles are described inChapter 6 on page 12.45. Apart from the predefined formulas, general analytic functions can also be used. Thesyntax for analytic profiles in the Definitions section is:

AnalyticalProfile "reference name" {Function = gauss(parameters) | erf(parameters) | subMesh1D(parameters) | General(parameters) |

Eval(parameters)Species = "DF–ISE Dataset Name"LateralFunction = gauss(parameters) | erf(parameters) | General(parameters) | Eval(parameters)

}

where:

Species Selects the species or variables for the analytic profile. The list of available speciesand variables is given in the DF–ISE dataset files. No default value is assumed.

Function Indicates the type of the component and the parameters used along the directionnormal to the ReferenceElement. Gaussian functions, error functions, or externalprofiles can be used as predefined functions. Apart from the predefined functions(Gaussian, Erf, 1D external profiles), the general function evaluator can also be usedto define a general analytic function. A Gaussian profile can be specified as:

Function = Gauss(PeakPosition = value, PeakValue = value, StandardDeviation = value)

Function = Gauss(PeakPosition = value, Dose = value, StandardDeviation = value)Function = Gauss(PeakPosition = value, PeakValue = value, Length = value)Function = Gauss(PeakPosition = value, Dose = value, Length = value)Function = Gauss(PeakPosition = value, PeakValue = value, ValueAtDepth = value,

Depth = value)Function = Gauss(PeakPosition = value, Dose = value, ValueAtDepth = value,

Depth = value)

By default, PeakPosition is equal to zero and there are no default values for the otherparameters. An error function can be defined as:

Function = Erf(SymmetryPosition = value, MaxValue = value, Length = value)Function = Erf(SymmetryPosition = value, Dose = value, Length = value)Function = Erf(SymmetryPosition = value, MaxValue = value, ValueAtDepth = value,

Depth = value)Function = Erf(SymmetryPosition = value, Dose = value, ValueAtDepth = value,

Depth = value)

12.30

Part 12 – MESH 5 – Command file description

By default SymmetryPosition is equal to zero.A general analytic function can be defined as:

Function = General/Eval(init = "...", function = "...", value = value)

For the usage of general functions, see the examples in Section 5.5 on page 12.39. Forthe incorporation of 1D external profiles, the syntax is:

Function = subMesh1D(datafile = "filename", Scale = value, Range = line [(x1), (x2)])

Datafile is a file in the XGRAPH format. More than one profile can be included inDatafile. The keyword Scale allows us to scale the coordinates values from the file.By default, Scale is equal to 1.

Range selects a range of values from the file. The keywords x1 and x2 must be given inthe file coordinates system. Range is applied to all profiles inside the file. By default,the entire data range is selected.

LateralFunction Defines the lateral component of the analytic profile. Either a Gaussian or an errorfunction can be used, as well as a general analytic function can be used, by specifyingthe keyword General, with a proper definition of the analytic function:

LateralFunction = Gauss(Factor = value)LateralFunction = Gauss(StandardDeviation = value)LateralFunction = Gauss(Length = value)LateralFunction = Erf(Factor = value)LateralFunction = Erf(Length = value)LateralFunction = General/Eval(...)

By default, an error function is used as LateralFunction. For Function = subMesh1D, bydefault StandardDeviation = 0.8 is chosen, and for Function = Gauss and Function = Erf

by default, Factor = 0.8.

5.4 Placements sectionThe Placements section is composed of sets of refinement and profile instances. Their positions in the devicemust be specified and they must reference a definition given in the Definitions section. In other words, eachinstance or block consists of the instance name, an opening brace, a reference, the specification of thecorresponding parameters, and a closing brace.

The order of the refinement regions in this section is important. MESH selects the conditions to apply amongall refinement regions described in this section.

The order of the profile instances in the Placements section is important only when the parameter Replace ispresent. The syntax for this section is:

Placements {Refinement "reference name" {# set of parameters}Multibox "reference name" {# set of parameters}SubMesh "reference name" {# set of parameters}Constant "reference name" {

12.31

Part 12 – MESH5 – Command file description

# set of parameters}AnalyticalProfile "reference name" {# set of parameters}...

}

5.4.1 Geometrical elements

The specification of placement blocks requires the use of geometrical elements. These elements aregeometrical objects used to select or locate data, and they are not part of the grid elements. The coordinatesof these objects are defined relative to the coordinates of the device, except for one section in the SubMeshplacement.

The allowed geometrical elements and the number of coordinate values that must be specified depend on thedimension of the device. Let denote a point. The following geometrical elements aredefined:

, , , , ,

Only simple polygons are allowed. The polygons are closed internally by adding the line segment between and . Only simple closed polyhedra are allowed. All their faces must be

described. Table 12.4 on page 12.36 provides a detailed list of elements and the functions for which theseelements can be used. In describing a polyhedron with arbitrary-oriented faces, use polygons instead ofrectangles.

Apart from the above-defined geometrical elements, the keywords material or region can also be used toperform regionwise or materialwise refinement or both refinements. For material, the argument is a validDATEX material name in brackets. For region, the argument is a valid (existing) region name in brackets (seeSection 5.5.2 on page 12.40).

5.4.2 Placing refinement regions

In the Placements section, a refinement instance is specified by the name, an opening brace, the specificationof the reference name, the keyword RefineWindow, and a closing brace. Several refinement instances can referto the same set of refinement parameters.

If no RefineWindow is specified, the refinement instance is used as the default region for the entire device. Thesyntax for a refinement instance is:

Refinement "instance name" {Reference = "reference name"RefineWindow = geometrical element | material | region

}

where:

Reference Defines the reference to one of the previously defined refinements.

n x x1 … xd, ,[ ]=

point x1( ) line x1 x2,( ) rectangle x1 x2,( ) polygon x1 … xm, ,( ) m 2> cuboid x1 x2,( )

polyhedron polygon1 x1 … xm, ,( ) … polygonp x1 … xm, ,( ), ,{ } m 2>

x1 x1 … xd, ,[ ]= xm x1 … xd, ,[ ]=

12.32

Part 12 – MESH 5 – Command file description

RefineWindow Defines the location of the refinement instance in the device. By default, RefineWindowis the bounding box of the device. For the list of elements that can be used asRefineWindow (see Table 12.4 on page 12.36).

Two other kinds of refine window have been added to the syntax. These additionsallow the user to specify regionwise or materialwise refinement or both refinements(see Section 5.5.2 on page 12.40).

NOTE Where two or more refinement instances overlap, the one defined first in the command file is taken(see Chapter 7 on page 12.55).

5.4.3 Placing multibox regions

In the Placements section, a multibox instance is specified by the Multibox keyword, followed by the name ofthe Multibox window and an opening brace. After the specification of the name of the multibox region(Reference = "") and the size of the Multibox window (Refinewindow=), a closing brace is placed. Severalmultibox instances can refer to the same set of multibox parameters.

If no RefineWindow is specified, the refinement instance is used as the default region for the entire device. Thesyntax for a refinement instance is:

Multibox "instance name" {Reference = "multibox name"RefineWindow = geometrical element

}

where:

Reference Defines the reference to one of the previously defined multiboxes.

RefineWindow Defines the location of the refinement instance in the device. By default, RefineWindowis the bounding box of the device. Since the multibox feature is implemented only in2D, the geometrical element must be rectangle.

NOTE Where two or more multibox instances overlap, the multibox defined first in the command file istaken (see Chapter 7 on page 12.55).

5.4.4 Placing profiles

A set of common parameters is used for placing subMesh (external simulation result), constant, and analyticprofiles. These parameters are:

EvaluateWindow {Element = geometrical element | material | regionDecayLength = value

}Replace

12.33

Part 12 – MESH5 – Command file description

where:

EvaluateWindow Defines the domain where the profile is evaluated and the decay length of an errorfunction is applied in the vicinity of the window boundaries. The domain can bespecified by using a geometrical element, as well as by referring to regions ormaterials. The decay function is used to reduce round-off errors. However, ifEvaluateWindow is not defined, the transition between the profiles is abrupt. IfDecayLength = 0, no decay function is applied and the transition betweenEvaluateWindow and its vicinity is abrupt. If DecayLength is negative, the profile is notapplied to points on the border of Element. The default DecayLength is equal to 0 for allthe profiles.

For analytic and constant profiles, the default Element is the bounding box of thedevice and, for subMeshes, the default Element is the bounding box of the subMesh.See the equations in Chapter 6 on page 12.45 for details.

Replace In general, the values for each profile at each point of the newly generated mesh arecomputed as the sum over all profile instances, defined in the Placements section. Theinstances are inspected in the same order as they are defined in the command file. Ifthe variable Replace is specified for a given instance, all current summed-up values arereplaced by the value corresponding to the given profile instance.

NOTE Avoid using EvaluateWindow when the profile is valid in the entire device and no decay function isrequired. The evaluation of a geometrical element is a time-consuming task.

5.4.5 Placing subMeshes

The syntax for references to subMeshes in the Placements block is:

SubMesh {Reference = "reference name"SelectWindow {

Element = element, AttachPoint = x1, ToPoint = x2}Rotation {

axis = axis, angle = angle}Reflection = X | Y | ZEvaluateWindow {

Element = geometrical element | material | region, decayLength = value}Replace

}

where:

Reference Indicates the reference SubMesh to use. Only references to profiles that are defined asSubMesh are allowed.

SelectWindow Can be used to select a part of the external mesh to work with. Element must bespecified with respect to the coordinate system used in the Geofile. The selected partof the external mesh can be placed in the device by selecting any point in the subMesh(AttachPoint) and defining its position in the device (ToPoint).

12.34

Part 12 – MESH 5 – Command file description

The syntax is:

SelectWindow {Element = line [x1, x2] | rectangle [x1, x2] | cuboid [x1, x2],AttachPoint = x1, ToPoint = x2

}

The allowed element type depends on the dimension of the device. By default, Elementis defined as the bounding box of the subMesh. By default, AttachPoint and ToPoint areselected as the corner of the subMesh bounding box with minimum coordinates

.

Reflection Indicates a reflection perpendicular to the specified coordinate axis. The allowed axesdepend on the dimension of the device. The reflection point (or line or plane) is placedin the middle of the bounding box of the subMesh.

Rotation Performs a rotation around axis. The rotation is counterclockwise. The center of therotation is the mid-point of the subMesh bounding box. By default, Angle is equal tozero and, for 2D and 3D, Axis is set to Z. In 1D, Rotation is not supported.

Ignoremat Ignores material in subMeshes. The standard behavior of subMesh interpolation isthat the interpolated value is only accepted if the point is in a region with the samematerial. The flag "Ignoremat" allows the code to always accept the interpolation. (Bydefault, if the materials are not matched, the closest region with the correct materialis searched.) The default behavior is not checked.

Placements {SubMesh "NoName_0" {

Reference = "NoName_0"Ignoremat

}}

NOTE SelectWindow, Reflection, and Rotation are performed in the order they appear in the command file.The resultant subMesh depends on this order. MESH and DIP support subMeshes in 3D.

5.4.6 Referencing constant profiles

The syntax for referencing constant profiles in the Placements block is:

Constant {Reference = "reference name"EvaluateWindow {

Element = geometrical element | material | regionDecayLength = value

}Replace

}

where Reference is the string indicating the reference constant to use. Only references to constant profiles areallowed.

x1 x2 x1min…xn

min[ ]= =

12.35

Part 12 – MESH5 – Command file description

5.4.7 Referencing analytic profiles

The syntax for referencing analytic profiles in the Placements block is:

AnalyticalProfile "profile Name" {Reference = "reference profile Name"ReferenceElement {

Element = element, Direction = direction}EvaluateWindow {

Element = geometrical element | material | regionDecayLength = value

}Replace

}

where:

Reference String indicating the analytic profile to use. Only references to analytic profiles areallowed.

ReferenceElement The direction of the normal to the ReferenceElement defines the direction of the analyticprofile. When evaluating the function values, the mesh points of the newly generatedmesh are projected to the element. The distance in the normal direction is used toevaluate the Function. The distance of the projection to the boundary of Element is usedto compute the LateralFunction. By default, values are computed on both sides of theelement. If Direction is specified, function values are computed only on the positive ornegative side of the element. The syntax is:

ReferenceElement {Element = element,Direction = positive/negative

}

In 1D devices, Element is a point, and the positive and negative directions are given bythe coordinate axis. In 2D devices, Element is a line, and the positive direction is takento the right of the line.

In 3D devices, Element can be either a rectangle or polygon. The normal for a rectanglemust be one of the coordinate axes. The positive and negative directions are definedfrom this axis. A (planar) polygon can be arbitrarily oriented in 3D. The direction isdefined by the order of the points defining the polygon. A polygon is consideredcorrectly oriented, if the side of the polygon, which is surrounded by the points inpositive orientation, defines the positive direction.

There is no default value for Element and Direction.

Table 12.4 List of elements

Function 1D 2D 3D

RefineWindow in Placements section for refinements Line Rectangle Cuboid

EvaluateWindow in Placements section for profiles Line RectanglePolygon

CuboidPolyhedron

SelectWindow in Placements section for subMeshes Line Rectangle Cuboid

12.36

Part 12 – MESH 5 – Command file description

ReferenceElement in Placements for analytic profiles Point Line RectanglePolygon

region for regionwise refinement Region name

material for materialwise refinement DATEX material name

Table 12.5 Accelerators

Keyword Accelerator Default value

AnalyticalProfile AnaProf

Angle 0

Refinement

AttachPoint AttachP

Axis Z

Constant

Datafile

DecayLength DecayLen 0

DefineProfiles

DefineRefinements

Depth

Direction

Dose

Element

Erf

EvaluateWindow EvalWin Bounding box of the device for constant and analytic profiles. Bounding box of the subMesh for subMeshes.

Factor 0.8 for Gaussian and error functions

Function

Gauss

Geofile

LateralFunction LatFunc Error Function

Length

MaxElementSize MaxElemSize 1

MaxGradient MaxGrad

MaxTransDifference MaxTransDiff

Table 12.4 List of elements

Function 1D 2D 3D

12.37

Part 12 – MESH5 – Command file description

MaxValue MaxVal

MinElementSize MinElemSize 0.02

Mode ‘read’

Negative

PeakPosition PeakPos 0

PeakValue PeakVal

Positive

Profile

Profiles

Range Complete subMesh1D

ReferenceElement RefElem

RefineFunction MaxTransDiff

Refinement

Refinements

RefineWindow RefineWin

Reflection Reflect

Replace FALSE

Rotation

Scale 1

SelectWindow SelWin Bounding box of subMesh

Species

StandardDeviation StdDev 0.8 for subMesh1D

SubMesh

SubMesh1D

SymmetryPosition SymPos 0

Title ""

ToPoint

Value 1

ValueAtDepth ValAtDepth

Variable "DopingConcentration"

Table 12.5 Accelerators

Keyword Accelerator Default value

12.38

Part 12 – MESH 5 – Command file description

5.5 ExamplesThe following examples illustrate the use of extensions in the command file syntax.

5.5.1 Using refinement polygons

Figure 12.14 on page 12.40 illustrates the use of polygonal domains, both for specifying a polygonalRefineWindow and for using a polygonal domain as an EvaluateWindow. The domain is a simple rectangularboundary and the command file is:

Title "Refinement Polygon"Definitions { Refinement "global" { MaxElementSize = (4, 4) MinElementSize = (.04 .04) RefineFunction = MaxTransDiff(Variable="DopingConcentration", Value=0.5) } Refinement "refpol" { MaxElementSize = (0.3 0.1) } Constant "bor" { Species = "BoronConcentration" Value=1e+17 }}

Placements { Refinement "global" { Reference = "global" RefineWindow = rectangle [( -2 -2 ), ( 14 14 )] } Refinement "refpol" { Reference = "refpol" RefineWindow = polygon [( 1 2 ) ( 0.75 2 ) ( 1 2.5 ) ( 1.25 3 ) ( 1.5 3.5 ) ( 1.75 4 ) ( 2 4.25 ) ( 2.25 4.5 ) ( 2.5 4.75 ) ( 2.75 5 ) ( 2.75 5.5 ) ( 3 5.75 ) ( 3.5 5.5 ) ( 4 5.75 ) ( 4.5 5.5 ) ( 5 5.5 ) ( 5.5 5.75 ) ( 5.5 6 ) ( 6 6.25 ) ( 6.5 6 ) ( 7 6 ) ( 7.5 5.25 ) ( 8 5.5 ) ( 8 5 ) ( 7.5 4.5 ) ( 8 4.25 ) ( 8.5 4 ) ( 9 3.75 ) ( 9.5 4 ) ( 9.5 3.5 ) ( 9.5 3 ) ( 9 3 ) ( 8.5 2.75 ) ( 8.75 2.5 ) ( 8.5 2.25 ) ( 8 2.25 ) ( 7.5 2.25 ) ( 7.5 2.5 ) ( 7 2.5 ) ( 7 2 ) ( 6.75 1.5 ) ( 6.75 1 ) ( 6.25 1 ) ( 6 1.5 ) ( 5.5 2 ) ( 5.5 2.5 ) ( 5 2 ) ( 4.75 1.5 ) ( 4.5 1 ) ( 4 1.25 ) ( 3.5 1.25 ) ( 3 1 ) ( 2.5 1.5 ) ( 2.5 2 ) ( 2.5 2.5 ) ( 2 2.5 ) ( 1.5 2.5 ) ( 1.5 2 ) ( 1 2 )] } Constant "bor" { Reference = "bor" EvaluateWindow { Element = polygon [( 1 2 ) ( 0.75 2 ) ( 1 2.5 ) ( 1.25 3 ) ( 1.5 3.5 ) ( 1.75 4 ) ( 2 4.25 )( 2.25 4.5 ) ( 2.5 4.75 ) ( 2.75 5 ) ( 2.75 5.5 ) ( 3 5.75 ) ( 3.5 5.5 ) ( 4 5.75 ) ( 4.5 5.5 ) ( 5 5.5 ) ( 5.5 5.75 ) ( 5.5 6 ) ( 6 6.25 ) ( 6.5 6 ) ( 7 6 ) ( 7.5 5.25 ) ( 8 5.5 ) ( 8 5 ) ( 7.5 4.5 ) ( 8 4.25 ) ( 8.5 4 ) ( 9 3.75 ) ( 9.5 4 ) ( 9.5 3.5 ) ( 9.5 3 ) ( 9 3 ) ( 8.5 2.75 ) ( 8.75 2.5 ) ( 8.5 2.25 ) ( 8 2.25 ) ( 7.5 2.25 ) ( 7.5 2.5 ) ( 7 2.5 ) ( 7 2 ) ( 6.75 1.5 ) ( 6.75 1 ) ( 6.25 1 ) ( 6 1.5 ) ( 5.5 2 ) ( 5.5 2.5 ) ( 5 2 ) ( 4.75 1.5 ) ( 4.5 1 ) ( 4 1.25 ) ( 3.5 1.25 ) ( 3 1 ) ( 2.5 1.5 ) ( 2.5 2 ) ( 2.5 2.5 ) ( 2 2.5 ) ( 1.5 2.5 ) ( 1.5 2 ) ( 1 2 )] } }}

12.39

Part 12 – MESH5 – Command file description

Figure 12.14 Polygonal refinement

5.5.2 Regionwise and materialwise refinement

Figure 12.15 illustrates the effect of using regionwise and materialwise refinement. The following commandfile segment shows the relevant part of the command file:

Placements { Refinement "A" { Reference = "A" RefineWindow = region ["Ox_Region"] } Refinement "B" { Reference = "B" RefineWindow = material ["Oxide"] }

Figure 12.15 Regionwise and materialwise refinement

12.40

Part 12 – MESH 5 – Command file description

5.5.3 Using analytic functions for refinement I

Figure 12.16 illustrates the usage of general analytic functions to specify profiles. The function was used as a profile, and linear interpolation ("ElectrostaticPotential") was used to compute

the required local element size. The following command file code segment illustrates the syntax:

Definitions {Refinement "Region_1" {

MaxElementSize = (1 1)MinElementSize = (0.01 0.01)RefineFunction = MaxTransDiff(Variable = "ElectrostaticPotential", Value = 0.01)

}AnalyticalProfile "Profile_1" {

Species = "ElectrostaticPotential"Function = General(init="a=0.1",function = "a*sin(x)*sin(y)",value = 0)

}}Placements {

Refinement "Region_1" {Reference = "Region_1"

}AnalyticalProfile "Profile_1" {

Reference = "Profile_1"EvaluateWindow {

Element = rectangle [ ( 0 0 ), (9.43 9.43)]}

}}

Figure 12.16 Usage of analytic refinement functions

0.1 x( ) y( )sinsin

Analytic function

Generated mesh

12.41

Part 12 – MESH5 – Command file description

5.5.4 Using analytic functions for refinement II

This example illustrates the usage of a general analytic function to prescribe 3D refinement, based on a 3Danalytic function. The domain is a cube. Figure 12.17 shows the generated mesh.

Definitions {Refinement "Region_1" {

MaxElementSize = (4 4 4)MinElementSize = (0.01 0.01 0.01)RefineFunction = MaxTransDiff(Variable = "ElectrostaticPotential", Value = 10000.0)

}AnalyticalProfile "Profile_1" {

Species = "ElectrostaticPotential"Function = General(init="a=0.1",function = "a*x*x*y*y*z*z",value = 0)

}}Placements {

Refinement "Region_1" {Reference = "Region_1"

}AnalyticalProfile "Profile_1" {

Reference = "Profile_1"EvaluateWindow {

Element = cuboid [ ( 0 0 0 ), ( 10 10 10 )]}

}}

Figure 12.17 Usage of analytic refinement functions

5.5.5 Using analytic functions for doping specification

This example illustrates the usage of general analytic functions for defining doping profiles. In order to usethe primary and lateral directions as x and y, the keyword Eval must be specified, instead of General, that is,by using global spatial coordinates. Figure 12.18 on page 12.43 shows the generated meshes for the example.

AnalyticalProfile "NoName_0" {Species = "BoronActiveConcentration"Function = Eval(init="a=10",function = "a*sin(x)*cos(y)",value = 0)

}ReferenceElement {

Element = line [( 0 0 ), ( 10 10)]# Element = line [( 0 5 ), ( 10 5)]# Element = line [( 5 0 ), ( 5 10)]

}

12.42

Part 12 – MESH 5 – Command file description

Figure 12.18 Usage of analytic refinement functions for doping

5.6 Reading old command filesMESH can transform old syntax when the old commands have a meaning in the MESH multidimensional andflexible syntax. The old command file format is still supported for input; however, an additional switch-oldcmd must be added to load a command file, that is, using the old syntax.

It is recommended that the user checks the new file that is generated to verify whether the translation isperformed correctly.

5.6.1 Instructions not supported

Although MESH automatically translates old command files, there are some instructions that cannot betransformed into the new syntax:

Unsupported commands from GRID1D and MDRAW

Unsupported commands from OMEGA

5.6.1.1 Unsupported commands from GRID1D and MDRAW

The following commands are not supported in MESH:

AlphaGaussFunction Alpha particles profiles.

*lifetime

The special treatment performed in MDRAW and GRID1D for these species can only be simulated if theconcentrations are transformed as follows:

[Eq. 12.1]

*Elifetime or Hlifetime

Element=line[(0 0),(10 10)] Element=line[(0 5),(10 5)] Element=line[(5 0),(5 10)]

Cpeak1

Lifepeak--------------------= Cmax

1Lifemax-------------------= Cconst

1Lifeconst---------------------= CatDepth

1LifeatDepth---------------------------=

12.43

Part 12 – MESH 6 – Formulas for analytic profiles

Part 12 – MESH

6 – Formulas for analytic profiles

6.1 OverviewMESH implements a complete set of analytic models to describe a wide range of different situations. Thereason for implementing analytical profiles is to have a flexible tool to substitute process simulation resultswithout much effort and within a reasonable time.

Due to the wide spectrum of functions to be considered, the organization of this chapter is:

Section 6.2 analyzes the general concepts.

Section 6.3 on page 12.50 describes the models along the primary direction.

Section 6.4 on page 12.52 describes the models along the lateral direction.

Although the formulas are designed according to the models associated with impurity concentrations, theanalytic profiles can be used for any type of variables defined in the DF–ISE dataset files.

6.2 General conceptsIn general, the impurity concentrations can be represented by a set of 1D, 2D, and 3D analytical models. Todescribe each of the analytical models, we define two main directions: the primary direction that isperpendicular to the reference region, and the lateral direction that is parallel to the reference region.

Along each direction, one function is defined, that is, the primary function and lateral function. A propercombination of both functions allows us to have an analytical description of a species concentration.

6.2.1 Local coordinate systems, valid domains, and reference regions

The valid domain for the analytical models depends on the reference region, which is defined using adimension-dependent geometrical element, and it is placed along the lateral direction.

By combining the reference region and primary direction, it is possible to define a local coordinate system foreach analytical function.

6.2.1.1 One-dimensional profiles

One-dimensional profiles require only the definition of the primary function. The primary function is appliedalong the only available axis, . The primary direction and valid domain are defined using a vector. Thereference region for a profile is defined by using a geometrical element, that is, a point. Figure 12.19 onpage 12.46 shows the scheme used for the 1D case.

12.45

Part 12 – MESH6 – Formulas for analytic profiles

Figure 12.19 Primary direction in 1D

6.2.1.2 Two-dimensional profiles

For 2D profiles, the reference region is defined using a baseline. The primary direction is the normal vectorto the baseline and the lateral direction is parallel to the baseline. Figure 12.20 shows a general scheme of thelocal coordinate system and the valid domain. The valid domain for both the primary and lateral functions isdefined by sweeping the primary direction vector along the lateral direction.

Figure 12.20 Primary and lateral directions in 2D

6.2.1.3 Three-dimensional profiles

For 3D profiles, the reference region is defined using a surface. The primary direction is the normal vector tothe surface and the lateral direction is the plane perpendicular to the primary direction. Figure 12.21 onpage 12.47 shows a general scheme of the local coordinate system and the valid domain.

The valid domain for both primary and lateral functions is defined by sweeping the primary direction vectoralong the surface.

Reference Point

Valid Domain and Direction

Reference Line orBaseline

Primary Direction

Lateral Direction

Lateral Direction

Lateral Domain

Primary Domain

12.46

Part 12 – MESH 6 – Formulas for analytic profiles

Figure 12.21 Primary and lateral directions in 3D

6.2.2 General implantation models

In general, impurity concentrations can be expressed as:

[Eq. 12.2]

where:

represents the primary function in the local coordinate system.

represents the lateral function in the local coordinate system.

The most important functions used as models are Gaussian functions and error functions. For the rest of thischapter, functions along the primary direction are referred to as and functions along the lateral direction,as . The indices y and x are important to distinguish parameters among the different directions.

Each model is defined by the minimum set of parameters. This section presents a basic formulation of eachmodel, by using the minimum set of parameters. The next sections show how to obtain this minimum set fromdifferent inputs or initial conditions.

6.2.2.1 Gaussian function

The minimum set of parameters to define a Gaussian function is:

Peak concentration (Cpeak) [cm–3]

Peak position (yp e a k ) [µm]

Length (GLengthy ) [µm] or standard deviation (stdDevy ) [µm]

Using these parameters, the Gaussian is defined by:

[Eq. 12.3]

Reference Surface

Primary Direction

Lateral Direction

Lateral Direction

doping xp xl,( ) g xp⟨ ⟩ f xl⟨ ⟩⋅=

g xp⟨ ⟩

f xl⟨ ⟩

g y⟨ ⟩f x⟨ ⟩

g y( ) Cpeak12---–

y ypeak–stdDevy----------------------

2⋅

exp⋅ Cpeaky ypeak–

GLengthy--------------------------

2–

exp⋅= =

12.47

Part 12 – MESH6 – Formulas for analytic profiles

Figure 12.22 shows the model schematically.

Figure 12.22 General shape of Gaussian functions

6.2.2.2 Error function

The minimum set of parameters to define an error function as doping profile is:

Maximum concentration (Cm a x ) [cm–3]

Symmetry position (ys y m ) [µm]

Length (ELengthy ) [µm]

[Eq. 12.4]

The function is symmetric with respect to the inflection point. Figure 12.23 shows the feature.

Figure 12.23 General shape for error functions

6.2.3 Other parameters of interest

In order to have flexible models, some special parameters must be considered. These are not included in thestandard formulation. However, by applying some definitions, the basic set can be obtained from them.

0 2 4 6 10

2

4

6

8

10

Concentration(y)

[cm-3]

y value

[um]

yPeak

Cpeak

Cpeak * exp(-1)

diffLength

8

g y( )Cmax

2------------ 1 erf

ysym y–ELengthy-------------------------+

⋅=Cmax

2------------ 1 erf

y ysym–ELengthy-------------------------–

⋅=

0 2 4 6 8 10

2

4

6

8

10

Concentration(y)

[cm-3]

y value

[um]

Cmax

Cmax/2

yIn

12.48

Part 12 – MESH 6 – Formulas for analytic profiles

6.2.3.1 Dose

From a process simulation perspective, implantation functions are determined giving the dose concentrationof the profiles. The peak concentration value can be obtained from the Dose (see Section 6.3 on page 12.50).

The general definition of Dose is:

[Eq. 12.5]

For Gaussian functions, the Dose is represented as:

[Eq. 12.6]

[Eq. 12.7]

For error functions, the Dose is defined as:

[Eq. 12.8]

[Eq. 12.9]

NOTE Dose is given in atoms per cm–2.

6.2.3.2 Values at the junction

Junction Concentration and Depth are parameters used to define either Gaussian or error functions. Acomplete description of these parameters and how they can replace the standard deviation in the basicformulation is explained in Section 6.3 on page 12.50.

6.2.3.3 Length

For Gaussian functions, the GLength represents the distance between the peak position and a place where theconcentration decays in a factor of exp(-1) (36%) with respect to the peak concentration (see Figure 12.22 onpage 12.48).

The relationship between the length and standard deviation for Gaussian functions is:

[Eq. 12.10]

Dose g y( ) yd0

∫=

Dose Cpeak12---–

y ypeak–stdDevy----------------------

2⋅

exp⋅ yd0

∫=

DoseCpeak π stdDevy⋅ ⋅

2--------------------------------------------------- 1 erf

ypeak

2 stdDevy⋅---------------------------------+

⋅=

DoseCmax

2------------ 1 erf

ysym y–ELengthy-------------------------+

⋅ yd0

∫=

DoseCmax ELengthy⋅

2------------------------------------------

ysymELengthy------------------------- 1 erf

ysymELengthy-------------------------

+

-------ysym

ELengthy-------------------------

2

–exp⋅

+⋅

⋅=

GLengthy 2 stdDevy⋅=

12.49

Part 12 – MESH6 – Formulas for analytic profiles

6.3 Available models along the primary directionThe following models in MESH are applied along the primary direction:

Gaussian function

Error function

Constant function

External 1D profile

6.3.1 Gaussian functions

The basic set for Gaussian functions is formed by Cpeak, ypeak, and stdDevy. According to the input by the user,the basic set of parameters can be specified in six different ways depending on the parameters used to calculateCpeak and stdDevy:

Peak Concentration and Standard Deviation

The basic set is complete (see [Eq. 12.3]), and there are no basic parameters to compute.

Peak Concentration and Length

Standard Deviation is computed from the GLength using:

[Eq. 12.11]

Dose and Standard Deviation

Given Dose and Standard Deviation, the Peak Concentration value can be calculated using:

[Eq. 12.12]

where factor = 104 because Dose is in cm–2.

Dose and Length

Given Dose and GLength, the Standard Deviation is computed from [Eq. 12.11] and the PeakConcentration from [Eq. 12.12].

Peak Concentration and values at the junction

Standard Deviation is computed from the values at the junction using:

[Eq. 12.13]

NOTE Cp e a k must be greater than Ca t D e p t h .

stdDevyGLengthy

2--------------------------=

CpeakDose factor 2⋅ ⋅

π stdDevy 1 erfypeak

2 stdDevy⋅---------------------------------+

⋅ ⋅

---------------------------------------------------------------------------------------------------=

stdDevyydepth ypeak–

2 CatDepth Cpeak⁄( )ln⋅–----------------------------------------------------------------=

12.50

Part 12 – MESH 6 – Formulas for analytic profiles

Dose and values at the junction

First, Standard Deviation is computed from:

[Eq. 12.14]

Second, using stdDevy, Peak Concentration is computed as in C.

NOTE [Eq. 12.14] is an implicit equation and Dose is in cm–2.

6.3.2 Error functions

For error functions, the basic set of parameters includes Cm a x , ys y m , and ELengthy and can be computed inthe following four ways:

Maximum Concentration and Length

The basic set is complete; there are no parameters to compute (see [Eq. 12.4]).

Dose and Length

Maximum Concentration is computed from Dose using:

[Eq. 12.15]

where factor = 104 because Dose is in cm–2.

Maximum Concentration and values at the junction

ELength can be computed from:

[Eq. 12.16]

NOTE [Eq. 12.16] is an implicit equation.

Dose and values at the junction

Maximum Concentration and ELength are computed using the following implicit equations, which followfrom [Eq. 12.15] and:

[Eq. 12.17]

CatDepth π stdDevy 1 erfypeak

2 stdDevy⋅---------------------------------+

⋅ ⋅ ⋅

2 D⋅ ose factor⋅---------------------------------------------------------------------------------------------------------------------------- 1

2---

ydepth ypeak–stdDevy

----------------------------------2

⋅– exp=

Cmax2 Dose⋅

ELengthy------------------------- factor

ysymELengthy------------------------- 1 erf

ysymELengthy-------------------------

+⋅ 1π

-------ysym

ELengthy-------------------------

2

–exp⋅+

1–

=

erfysym ydepth–

ELengthy--------------------------------

2 CatDepth⋅Cmax

---------------------------- 1–=

Dose factor 1 erfysym ydepth–

ELengthy--------------------------------+

⋅ ⋅ CatDepth ELengthy

ysymELengthy------------------------- 1 erf

ysymELengthy-------------------------

+ 1π

-------ysym

ELengthy-------------------------

2

– exp⋅+⋅

⋅ ⋅=

12.51

Part 12 – MESH6 – Formulas for analytic profiles

[Eq. 12.18]

6.3.3 Constant function

Constant functions are useful to define substrate doping mathematically:

[Eq. 12.19]

6.3.4 External 1D profile

Real 1D process simulation results can be read along the primary direction. To complete the 2D profile and3D profile, an analytical lateral function is added.

The values that do not appear in the file are interpolated using an interpolation function. Every species has acorresponding interpolation function predefined on the datexcodes file (see Chapter 7 on page 12.55). Thesefunctions can be linear, arsinh, or logarithmic.

If h is an interpolation function, the value at point y is computed from an external 1D profile as follows:

[Eq. 12.20]

6.4 Lateral or decay functionsThe lateral or decay functions are evaluated on the valid lateral domain (see Figure 12.20 on page 12.46 andFigure 12.21 on page 12.47). They are defined as the decay along the lateral direction and depend on thedistance from the valid primary domain of the point to evaluate. For 2D, this distance is calculated using thebaseline as reference. For 3D, the distance is computed using the surface as reference. There are threeavailable models to apply:

Gaussian function

Error function

No function

NOTE Lateral or decay functions are not valid for 1D.

Cmax2 Dose⋅

ELengthy------------------------- factor

ysymELengthy------------------------- 1 erf

ysymELengthy-------------------------

+⋅ 1π

-------ysym

ELengthy-------------------------

2

–exp⋅+

1–

=

g y( ) Constant=

g y( )

datai y yi=

h 1– y yi–yi 1+ yi–---------------------- h datai 1+( )

y yi 1+–yi 1+ yi–---------------------- h datai( )⋅+⋅

yi y yi 1+< <

=

12.52

Part 12 – MESH 6 – Formulas for analytic profiles

6.4.1 Lateral Gaussian function

The equation applied is:

[Eq. 12.21]

According to [Eq. 12.21], the required value from the user is the Standard Deviation, stdDevx , along thelateral direction. There are three ways to define it:

Provide the value explicitly.

Provide a factor with respect to the standard deviation along the primary direction:

[Eq. 12.22]

Giving the length of the Gaussian function:

[Eq. 12.23]

By using this function, the decay begins outside the primary domain, that is, the overlap between primary,lateral, and decay domains is zero. Figure 12.24 shows this effect.

Figure 12.24 Using Gaussian function as lateral function in 2D

6.4.2 Lateral error function

The equation applied is:

[Eq. 12.24]

According to [Eq. 12.24], the required value from the user is the length for the error function, Elengthx , alongthe lateral direction. There are two ways to define it:

Provide the value explicitly.

Provide a factor with respect to the length along the primary direction:

[Eq. 12.25]

f x( ) 12---

xclosestP x–stdDevx

------------------------------2

⋅– exp=

stdDevx Factorx stdDevy⋅=

GLengthx stdDevx 2⋅=

baseline (window mask)

f x( ) 12--- 1 erf

xclosestP x–ELengthx

------------------------------+ ⋅=

ELengthx Factorx ELengthy⋅=

12.53

Part 12 – MESH6 – Formulas for analytic profiles

For this model, the overlap of primary, lateral, and decay domains is not zero. The lateral decay starts insidethe primary domain as shown in Figure 12.25.

Figure 12.25 Using error function as lateral function in 2D

6.4.3 No lateral function

This property is valid when Factor is equal to zero. For this case, the value of the lateral function is given bythe expression:

[Eq. 12.26]

For this case, the lateral domain is null.

baseline (window mask)

f x( )1 x PrimaryDomain∈0 x PrimaryDomain∉

=

12.54

Part 12 – MESH 7 – Technical aspects

Part 12 – MESH

7 – Technical aspects

7.1 Valid polygons and polyhedraThere are some constraints for the polygons and polyhedra that are used to define the geometry:

Only simple polygons are allowed. A polygon is simple if there is no pair of nonconsecutive edges sharinga point. A single-connected polygon is described using a single closed line, see Figure 12.26 (a). ForMDRAW, it is necessary to describe a hole in a polygon connecting the hole with a double line to thepolygon, see Figure 12.27 (b).

Figure 12.26 Types of polygon: Simple (a) and nonsimple (b)

Figure 12.27 Single-connected polygons (a) and nonsingle-connected polygon (b)

No polygon or polyhedron can overlap another one. The detection of overlapping regions, particularly in3D, is not a simple task and is not performed in MESH. Only the coplanarity of points defining a face ischecked.

7.2 Numeric considerationsMESH is a Delaunay mesh generator for 1D, 2D, and 3D devices. Grids produced by the program are suitablefor the control volume integration method based on the Voronoï diagrams. The Delaunay condition ensuresnon-overlapping control volumes and the spatial discretization includes the entire device domain. Hence, theeffective facets for the Voronoï diagrams are positive.

MESH can produce a special type of Delaunay mesh in 2D. This type of grid is more restrictive than thedefault grid because all the edge-element facet contributions are positive. The condition is reached when thegrid elements are free of obtuse angles. The condition guarantees that the Voronoï center of every element liesinside or on the border of the element, and they are called self-contained elements. For rectangular triangles,the Voronoï centers lie on one of the edges. For acute triangles, the Voronoï centers lie inside the elements.

(a) (b)

(a) (b)

12.55

Part 12 – MESH7 – Technical aspects

For more information about the control volume method and the assembling of equations, refer to theliterature [4].

7.3 Mesh refinement algorithmMESH is a grid generator based on macroelements, which are refined until the geometry can be wellrepresented or the required density is reached. The refinement point for each macroelement is selectedaccording to:

1. The intersection points between the macroelement and the geometry to fit.

2. Points inserted on the edges and faces of the macroelement after the refinement of the neighborhood. This set is only valid for 2D and 3D.

3. Midpoints of the edges; valid for 2D and 3D.

Applying this approach, the macroelements can have more than two neighbors per face or edge, and becauseof this property, they are called n-connected elements.

During grid generation, the following sequence of three steps is performed.

7.3.1 Constructing the first coarse grid

The starting grid is generated by building a set of macroelements according to the geometry description. Forcomplex 2D and 3D devices, the initial grid is a critical step. The refinement of macroelements in this step isperformed in a way that the point propagation along the entire device is avoided.

7.3.2 Adaptation according to external data

The adaptation is performed by refining the macroelements along their edges controlling two aspects:

1. The gradient of the profiles. The macroelements are refined according to the values at the points given by either the analytical profiles described in the command files or the external data loaded, using submeshes in 2D, or DIP in 3D.

2. The required minimum and maximum sizes of the edges.

7.3.3 Obtaining a conforming final grid

In this step, the n-connected elements are refined until they can be tessellated into a set of valid knownelements: triangles and rectangles in 2D, and tetrahedra, rectangular pyramids, prisms, and bricks in 3D.

The Delaunay conditions are fulfilled at this stage of the program. For 2D cases, the condition is achievedelement by element and, for 3D cases, the condition is achieved by giving the entire grid to the delaunizationmodule. For more information, refer to the literature [2][3][5].

12.56

Part 12 – MESH 7 – Technical aspects

7.4 Delaunization moduleA delaunization algorithm is available for 3D models in MESH. The module handles green points using animproved algorithm, and it is more successful at meshing nonaxis-aligned structures than the previousdelaunization algorithm. The algorithm can be called by using the MESH option -P. Details are in theliterature [6], but some technical aspects of the algorithm are discussed here.

MESH is a mesh generator based on a modified version of the octree method. The octree method starts froma rectangular box enclosing the device to mesh. This box is successively refined using axis-aligned cuts untilthe resulting boxes meet size specifications specified by the user. When these size specifications are met, theboxes are triangulated and the triangulation is passed over to the delaunization module.

The main difficulty in MESH is precisely the triangulation of the final boxes. After the refinement isperformed, some boxes may contain certain fragments of the input boundary of the device. Since the geometryof these boundary fragments can be complicated, they cannot be easily triangulated. The strategy in MESH isto further refine these boxes in the hope that the subboxes contain simpler interface fragments, simple enoughthat the box can be triangulated using a simple template.

Finding a match between the tessellated boxes and the implemented templates is not always possible.Therefore, MESH may perform unnecessary refinement or not stop refining at all (see Figure 12.28).

Figure 12.28 Example of nonstop refinement in MESH; after refinement, the pattern in upper-right corner repeats itself

7.4.1 Algorithm

The algorithm (called by the option -P from the MESH command line) bypasses the template triangulationinside MESH. Instead of directly triangulating the boxes, they are passed over to a module called theDelaunay refinement module.

The idea is to use two independent structures: a set of surface faces (for example, the input boundary plussome isosurfaces or rectangular faces coming from user-defined refinement inside MESH) and a backgroundthree-dimensional generic Delaunay triangulation. The generic Delaunay triangulation is used to store the setof points coming from the octree refinement. The algorithm works in the following way:

The input surfaces are triangulated, and a 2D surface delaunization algorithm is applied.

Each surface face containing a point inside its minimum circumsphere is then refined and the resultingfaces in the surface are delaunized. This step is repeated until the minimum circumspheres of all thesurface faces are point free (see Figure 12.29 on page 12.58 (b)).

After the surface faces are refined, a generic Delaunay triangulation is built for the complete set of points(including the bulk points). Since the minimum circumspheres of the surface faces are point free, thesurfaces must be completely contained in the generic Delaunay triangulation (see Figure 12.29 (c)).

A material is assigned to each tetrahedron in the final triangulation (see Figure 12.29 (d)).

12.57

Part 12 – MESH7 – Technical aspects

Figure 12.29 Two-dimensional example of Delaunay refinement algorithm

In Figure 12.29, the following graphics are displayed:

a) Input boundary and some constraints

b) Refined boundary and constraints

c) Resulting points that are triangulated using a generic Delaunay triangulation algorithm

d) Materials that are assigned

The advantages are:

Only known algorithms are used. The surface refinement algorithm has been successfully used in theformer delaunization module. The generic delaunization algorithm is well studied and efficientalgorithms exist.

The algorithm is suitable for many types of mesh generators, not only octree-based generators. The onlyinput required is a set of surfaces and a point distribution.

7.5 Active and total concentrations in MESHData handling during meshing has changed. Previous versions automatically changed total concentrations(such as BoronConcentration) to active concentrations (such as BoronActiveConcentration), which were added tothe net doping (DopingConcentration). As this behavior is not very transparent, data of concentrations is nolonger changed by the meshing tools.

Some existing projects employ total concentrations to describe doping. In these cases, that is, when no activeconcentrations are present, the total concentrations are used to compute net doping. The log files signal thisbehavior with the comment: Using total concentrations for net doping.

For new projects, it is strongly recommended that active concentrations are used from the outset. In addition,ISE provides a script (dopconv.sh) to convert existing projects to the use of active concentrations.

12.58

Part 12 – MESH Appendix A – Examples

Part 12 – MESH

Appendix A – Examples

A.1 Tutorial: Diode example

A.1.1 Boundary file: diode.bnd

A.1.1.1 One-dimensional diode# Solid regionSilicon "substrate" { line [ (0) (2) ] }

# Contact area Contact "anode" { point [ (0) ] }

# Contact areaContact "cathode" { point [ (2) ] }

A.1.1.2 Two-dimensional diode# Solid regionSilicon "substrate" { rectangle [ (0,0) (2, 3) ] }

# Contact areaContact "anode" { line [ (0,0) (0,3) ] }

# Contact areaContact "cathode" { line [ (2,1) (2,2) ] }

A.1.1.3 Three-dimensional diode# Solid regionSilicon "substrate" { cuboid [ (0,0,0) (2,3,2) ] }

# Contact areaContact "anode" { rectangle [ (0,0,0) (0,3,2) ] }

# Contact areaContact "cathode" { rectangle [ (2,1,0) (2,2,1) ] }

A.1.2 Command file: Abrupt diode

The reference for this example is shown in Figure 12.2 on page 12.7.

Title "minimal example: simple diode"

Definitions{ # Refinement regions

# Profiles

12.59

Part 12 – MESHAppendix A – Examples

Constant "n-type region" { Species = "PhosphorusActiveConcentration" Value = 1e+18 } Constant "p-type region" { Species = "BoronActiveConcentration" Value = 1e+17 }}

Placements { # Refinement regions

# Profiles Constant "n-type region" { Reference = "n-type region" EvaluateWindow { Element = cuboid [ ( 1 0 0 ) , ( 2 3 2 )] } } Constant "p-type region" { Reference = "p-type region" EvaluateWindow { Element = cuboid [ ( 0 0 0 ) , ( 1 3 2 )] } }}

A.1.3 Command file: Default parameters

The reference for this example is shown in Figure 12.2 on page 12.7.

Title "Setting default parameters"

Definitions{ # Refinement regions Refinement "default region" { MaxElementSize = 1 MinElementSize = 0.02 }

# Profiles Constant "n-type region" { Species = "PhosphorusActiveConcentration" Value = 1e+18 } Constant "p-type region" { Species = "BoronActiveConcentration" Value = 1e+17 }

12.60

Part 12 – MESH Appendix A – Examples

}

Placements { # Refinement regions

Refinement "default region instance" { Reference = "default region" # Default region }

# Profiles Constant "n-type region" { Reference = "n-type region" EvaluateWindow { Element = cuboid [ ( 1 0 0 ) , ( 2 3 2 )] } } Constant "p-type region" { Reference = "p-type region" EvaluateWindow { Element = cuboid [ ( 0 0 0 ) , ( 1 3 2 )] } }}

A.1.4 Command file: Maximum size of elements

The reference for this example is shown in Figure 12.4 on page 12.9.

Title "Demonstration of effect of MaxElementSize"

Definitions{ # Refinement regions Refinement "one corner" { MaxElementSize = (0.2 0.4 0.25) } Refinement "rest of the device" { MaxElementSize = (0.4, 0.8, 0.5) }

# Profiles Constant "n-type region" { Species = "PhosphorusActiveConcentration" Value = 1e+18 } Constant "p-type region" { Species = "BoronActiveConcentration" Value = 1e+17 }}

12.61

Part 12 – MESHAppendix A – Examples

Placements{ # Refinement regions Refinement "one corner instance" { Reference = "one corner" RefineWindow = cuboid [(0.75 0 0), (2 1.5 1)] } Refinement "rest of the device instance" { Reference = "rest of the device" }

# Profiles Constant "n-type region" { Reference = "n-type region" EvaluateWindow { Element = cuboid [(1 0 0), (2 3 2)] } } Constant "p-type region" { Reference = "p-type region" EvaluateWindow { Element = cuboid [(0 0 0) , (1 3 2)] } }}

A.1.5 Command file: Modifying the n-type region

The reference for this example is shown in Figure 12.5 on page 12.10.

Title "n-well doping example"

Definitions{ # Refinement regions Refinement "one corner" { MaxElementSize = (0.2 0.4 0.25) } Refinement "rest of the device" { MaxElementSize = (0.4, 0.8, 0.5) }

# Profiles Constant "Substrate doping" { Species = "BoronActiveConcentration" Value = 1e+17 } AnalyticalProfile "n-type well" { Species = "PhosphorusActiveConcentration" Function = Erf(SymPos = 0.5, PeakVal = 1e+18, Length = 0.1) LateralFunction = Gauss(Factor = 0.8)

12.62

Part 12 – MESH Appendix A – Examples

}}

Placements{ # Refinement regions Refinement "one corner instance" { Reference = "one corner" RefineWindow = cuboid [(0.75 0 0), (2 1.5 1)] } Refinement "rest of the device instance" { Reference = "rest of the device" }

# Profiles Constant "Substrate doping instance" { Reference = "Substrate doping" } AnalyticalProfile "n-type well instance" { Reference = "n-type well" ReferenceElement { Element = rectangle [(2, 1, 0), (2, 2, 1)] } }}

A.1.6 Command file: Doping adaptation

The reference for this example is shown in Figure 12.6 on page 12.12.

Title "examples for doping adaptation"

Definitions { # Refinement regions Refinement "one corner" { RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 1) } Refinement "default region" { MaxElementSize = 0.5 # or (0.5 0.5 0.5) }

# Profiles Constant "Substrate doping" { Species = "BoronActiveConcentration" Value = 1e+17 } AnalyticalProfile "n-type well" { Species = "PhosphorusActiveConcentration" Function = Erf(SymPos = 0.5, PeakVal = 1e+18, Length = 0.1) LateralFunction = Gauss(Factor = 0.8) }

12.63

Part 12 – MESHAppendix A – Examples

}Placements { # Refinement regions Refinement "one corner instance" { Reference = "one corner" RefineWindow = cuboid [(0.75 0 0), (2 1.5 1)] } Refinement "default region instance" { Reference = "default region" }

# Profiles Constant "Substrate doping instance" { Reference = "Substrate doping" EvaluateWindow { Element = cuboid [(0 0 0), (2 3 2)] } } AnalyticalProfile "n-type well instance" { Reference = "n-type well" ReferenceElement { Element = rectangle [(2, 1, 0), (2, 2, 1)] } }}

A.1.7 Command file: Minimum size of elements

The reference for this example is shown in Figure 12.7 on page 12.13.

#Title "examples for minimum size"

Definitions { # Refinement regions Refinement "one corner" { MinElementSize = 0.02 } Refinement "rest of the device" { MinElementSize = (0.04, 0.1, 0.1) MaxElementSize = (0.5 0.5 0.5) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 1) }# Profiles Constant "Substrate doping" { Species = "BoronActiveConcentration" Value = 1e+17 } AnalyticalProfile "n-type well" { Species = "PhosphorusActiveConcentration"

12.64

Part 12 – MESH Appendix A – Examples

Function = Erf(SymPos = 0.5, PeakVal = 1e+18, Length = 0.1) LateralFunction = Gauss(Factor = 0.8) }}Placements { # Refinement regions Refinement "one corner instance" { Reference = "one corner" RefineWindow = cuboid [(0.75 0 0), (2 1.5 1)] } Refinement "rest of the device instance" { Reference = "rest of the device" }# Profiles Constant "Substrate doping instance" { Reference = "Substrate doping" EvaluateWindow { Element = cuboid [(0 0 0), (2 3 2)] } } AnalyticalProfile "n-type well instance" { Reference = "n-type well" ReferenceElement { Element = rectangle [(2, 1, 0), (2, 2, 1)] } }}

A.1.8 Command file: Using values at the junction

The reference for this example is shown in Figure 12.8 on page 12.14.

#Title "examples for values at the junction"

Definitions { Refinement "entire device" { MinElementSize = (0.04, 0.02, 0.02) MaxElementSize = (0.5 0.5 0.5) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 1) }

# Profiles Constant "Substrate doping" { Species = "BoronActiveConcentration" Value = 1e+17 } AnalyticalProfile "n-type well" { Species = "PhosphorusActiveConcentration" Function = Erf(SymPos = 0.5, PeakVal = 1e+18, Length = 0.1) LateralFunction = Gauss(Factor = 0.8)

12.65

Part 12 – MESHAppendix A – Examples

} AnalyticalProfile "high doping for Ohmic contact in n-region" { Species = "PhosphorusActiveConcentration" Function = Gauss(PeakPos = 0, PeakVal = 1e+20, ValueAtDepth = 1e+18, Depth = 0.2) LateralFunction = Gauss(Factor = 0.8) } AnalyticalProfile "high doping for Ohmic contact in p-region" { Species = "BoronActiveConcentration" Function = Gauss(PeakPos = 0, PeakVal = 1e+20, ValueAtDepth = 1e+17, Depth = 0.2) LateralFunction = Gauss(Factor = 0.8) }}

Placements { # Refinement regions Refinement "entire device instance" { Reference = "entire device" }

# Profiles Constant "Substrate doping instance" { Reference = "Substrate doping" EvaluateWindow { Element = cuboid [(0 0 0), (2 3 2)] } } AnalyticalProfile "n-type well instance" { Reference = "n-type well" ReferenceElement { Element = rectangle [(2, 1, 0), (2, 2, 1)] } } AnalyticalProfile "high doping for Ohmic contact in n-region instance" { Reference = "high doping for Ohmic contact in n-region" ReferenceElement { Element = rectangle [(2, 1, 0 ), (2, 2, 1)] } } AnalyticalProfile "high doping for Ohmic contact in p-region instance" { Reference = "high doping for Ohmic contact in p-region" ReferenceElement { Element = rectangle [(0 0 0), (0 3 2)] } }}

12.66

Part 12 – MESH Appendix A – Examples

A.2 Complex examples

A.2.1 One-dimensional NMOS

A.2.1.1 Boundary file# 1D nmos

Silicon "Silicon" { line [0 8.661] }Oxide "Oxide" { line [-0.04 0] }Contact "Left" { point [-0.04] }Contact "Right" { point [8.661] }

A.2.1.2 Command file for MESHTitle "nmos-intro, 1d"

Definitions{ # Refinement regions Refinement "N+ Region" { MaxElementSize = (0.02) MinElementSize = (0.01) } Refinement "Default Region" { MaxElementSize = (0.1 ) MinElementSize = (0.04 ) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 1) }

# Profiles Constant "Constant Profile" { Species = "BoronActiveConcentration" Value = 6.8e+14 } AnalyticalProfile "N+ Region" {

Species = "ArsenicActiveConcentration"Function = Erf(SymPos = 0.196, MaxVal = 1.58e+20, ValueAtDepth = 2e+18, Depth = 0.4)

} AnalyticalProfile "P Region" {

Species = "BoronActiveConcentration"Function = Gauss(PeakPos = 0.1082, PeakVal = 2.18e+16, ValueAtDepth = 1e+16, Depth = 0.22)

}}

Placements { # Refinement regions Refinement "Default Region" { Reference = "Default Region" # Default region }

12.67

Part 12 – MESHAppendix A – Examples

Refinement "N+ Region" { Reference = "N+ Region" RefineWindow = line [( 0 ) , ( 1 )] }

# Profiles Constant "Constant Profile Reference" { Reference = "Constant Profile" } AnalyticalProfile "N+ Region Reference" { Reference = "N+ Region" ReferenceElement { Element = point [( 0 )] Direction = positive } } AnalyticalProfile "P Region Reference" { Reference = "P Region" ReferenceElement { Element = point [( 0 )] Direction = positive } }}

A.2.1.3 Command file for GRID1DTitle "nmos-intro, 1d"

Refinement { MaxElementSize=0.1 MinElementSize=0.04 { left = 0 right = 1 MaxElementSize = 0.02 }}

profiles{ constFunction{ peakvalue =6.8e14 species = B } errorFunction{ species = As peakpos = 0.196 direction = (0, positive) peakValAndJunc = (peakvalue =1.58e20 juncdepth = 0.4 juncval = 2e18) } gaussianFunction{ species = B peakPosition = 0.1082 direction = (0, positive) peakValAndJunc = (peakvalue =2.18e16 juncdepth = 0.22 juncval = 1e16) }}

12.68

Part 12 – MESH Appendix A – Examples

A.2.2 Two-dimensional NMOS

A.2.2.1 Command file for MESHTitle "2D nmos"Definitions{ # Refinement regions Refinement "Default Region" { MaxElementSize = (1.2 1.2) MinElementSize = (0.05 0.05) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 1) }

# Profiles SubMesh "SubMesh" { Geofile = "submesh.grd" Datafile = "submesh.dat" }}

Placements { # Refinement regions Refinement "Default Region" { Reference = "Default Region" # Default region }

# Profiles SubMesh "SubMesh" { Reference = "SubMesh" SelectWindow { Element = rectangle [(-0.02 -0.02), (12.02 8.6802)] Attachpoint=(0 0) Topoint=(1 0) }

EvaluateWindow { Element = rectangle [(0.98 -0.02), (13.02 8.6802)] } }}

A.2.2.2 Command file for MDRAWTitle "2D nmos"Definitions{ # Refinement regions Refinement "Default Region" { MaxElementSize = (1.2 1.2) MinElementSize = (0.05 0.05) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 1)

12.69

Part 12 – MESHAppendix A – Examples

}

# Profiles SubMesh "SubMesh" { Geofile = "submesh.grd" Datafile = "submesh.dat" }}

Placements { # Refinement regions Refinement "Default Region" { Reference = "Default Region" # Default region }

# Profiles SubMesh "SubMesh" { Reference = "SubMesh" SelectWindow { Element = rectangle [(-0.02 -0.02), (12.02 8.6802)] Attachpoint=(0 0) Topoint=(1 0) }

EvaluateWindow { Element = rectangle [(0.98 -0.02), (13.02 8.6802)] } }}

A.2.3 Three-dimensional: MOS-controlled thyristor

A.2.3.1 Command file for MESHTitle "MCT example"

Definitions { # Refinement regions Refinement "NoName_3" { MaxElementSize = (1 1 1 ) MinElementSize = (0.125 0.125 0.125 ) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 6) } Refinement "NoName_2" { MaxElementSize = (5 5 5 ) MinElementSize = (0.5 0.5 0.5 ) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 6) } Refinement "NoName_1" { MaxElementSize = (0.5 0.5 0.5 ) MinElementSize = (0.05 0.05 0.05 )

12.70

Part 12 – MESH Appendix A – Examples

RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 4) } Refinement "Default Region" { MaxElementSize = (10 10 10 ) MinElementSize = (0.5 0.5 0.5 ) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 30) }# Profiles Constant "Basis Concentration" { Species = "PhosphorusActiveConcentration" Value = 2e+13 } AnalyticalProfile "nemi40" { Species = "PhosphorusActiveConcentration" Function = Gauss(PeakPos = 0, PeakVal = 3.7e+19, Length = 0.6) LateralFunction = Gauss(Factor = 1) } AnalyticalProfile "nwell30" { Species = "PhosphorusActiveConcentration" Function = Gauss(PeakPos = 0, PeakVal = 1e+18, Length = 0.82) LateralFunction = Gauss(Factor = 1) } AnalyticalProfile "short50" { Species = "BoronActiveConcentration" Function = Gauss(PeakPos = 0, PeakVal = 2e+20, Length = 0.2) LateralFunction = Gauss(Factor = 1) } AnalyticalProfile "anode10" { Species = "BoronActiveConcentration" Function = Gauss(PeakPos = 0, PeakVal = 1e+19, Length = 7.45) LateralFunction = Gauss(Factor = 1) } AnalyticalProfile "pbase20" { Species = "BoronActiveConcentration" Function = Gauss(PeakPos = 0, PeakVal = 8e+16, Length = 3.47) LateralFunction = Gauss(Factor = 1) }}

Placements {

# Refinement regions Refinement "Default Region Preference" { Reference = "Default Region" RefineWindow = cuboid [ ( 0 -0.05 0 ) , ( 10 500 10 )] } Refinement "NoName_2" { Reference = "NoName_1" RefineWindow = cuboid [ ( 3 0 3 ) , ( 10 2 10 )] } Refinement "NoName_3" { Reference = "NoName_2" RefineWindow = cuboid [ ( 0 450 0 ) , ( 10 500 10 )]

12.71

Part 12 – MESHAppendix A – Examples

} Refinement "NoName_4" { Reference = "NoName_3" RefineWindow = cuboid [ ( 0 0 0 ) , ( 10 12 10 )] }

# Profiles Constant "Basis Concentration" { Reference = "Basis Concentration" EvaluateWindow { Element = cuboid [ ( 0 0 0 ) , ( 10 500 10 )] } } AnalyticalProfile "nemi40" { Reference = "nemi40" ReferenceElement { Element = rectangle [( 7 0 7 ) , ( 10 0 10 )] } } AnalyticalProfile "nwell30" { Reference = "nwell30" ReferenceElement { Element = rectangle [( 4.5 0 4.5 ) , ( 10 0 10 )] } } AnalyticalProfile "short50 A" { Reference = "short50" ReferenceElement { Element = rectangle [( 7.5 0 4.5 ) , ( 10 0 7.5 )] } } AnalyticalProfile "short50 B" { Reference = "short50" ReferenceElement { Element = rectangle [( 4.5 0 4.5 ) , ( 7.5 0 7.5 )] } } AnalyticalProfile "short50 C" { Reference = "short50" ReferenceElement { Element = rectangle [( 4.5 0 7.5 ) , ( 7.5 0 10 )] } } AnalyticalProfile "anode10" { Reference = "anode10" ReferenceElement { Element = rectangle [( 0 500 0 ) , ( 10 500 10 )] }

12.72

Part 12 – MESH Appendix A – Examples

} AnalyticalProfile "pbase20" { Reference = "pbase20" ReferenceElement { Element = rectangle [( 0 0 0 ) , ( 10 0 10 )] } }}

A.2.4 Three-dimensional example: ECL transistor

A.2.4.1 Command file for MESHTitle "ECL Transistor"

Definitions { # Refinement regions Refinement "beneath channel" { MaxElementSize = (0.5 0.5 0.5 ) MinElementSize = (0.02 0.02 0.02 ) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 6) } Refinement "Refinement along current flow under the oxide" { MaxElementSize = (0.25 0.25 0.25 ) MinElementSize = (0.125 0.125 0.125 ) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 6) } Refinement "base substrate" { MaxElementSize = (1 1 1 ) MinElementSize = (0.1 0.1 0.1 ) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 8) }

# Profiles Constant "base substrate" { Species = "PhosphorusActiveConcentration" Value = 1e+16 } Constant "base substrate bottom" { Species = "BoronActiveConcentration" Value = 1e+15 } AnalyticalProfile "buried n-channel" { Species = "PhosphorusActiveConcentration" Function = Gauss(PeakPos = 0, PeakVal = 7e+19, Length = 0.2785) LateralFunction = Gauss(Factor = 0.8) } AnalyticalProfile "act-base" { Species = "BoronActiveConcentration" Function = Gauss(PeakPos = 0, PeakVal = 4e+18, Length = 0.1528)

12.73

Part 12 – MESHAppendix A – Examples

LateralFunction = Gauss(Factor = 0.8) } AnalyticalProfile "base-p+" { Species = "BoronActiveConcentration" Function = Gauss(PeakPos = 0, PeakVal = 1.2e+20, Length = 0.292) LateralFunction = Gauss(Factor = 0.8) } AnalyticalProfile "emitter" { Species = "PhosphorusActiveConcentration" Function = Gauss(PeakPos = 0, PeakVal = 1.2e+20, Length = 0.073) LateralFunction = Gauss(Factor = 0.8) } AnalyticalProfile "n+deep" { Species = "PhosphorusActiveConcentration" Function = Gauss(PeakPos = 0, PeakVal = 1e+20, Length = 0.41261) LateralFunction = Gauss(Factor = 0.25) }}

Placements {

# Refinement regions Refinement "base substrate" { Reference = "base substrate" RefineWindow = cuboid [ ( 0 0.5 1 ) , ( 8.2 4 4.5 )] } Refinement "Refinement along current flow under the oxide" { Reference = "Refinement along current flow under the oxide" RefineWindow = cuboid [ ( 4.4 0 1 ) , ( 7.6 1.9 3.5 )] } Refinement "beneath channel" { Reference = "beneath channel" RefineWindow = cuboid [ ( 2.5 0 1 ) , ( 4.9 1 2.8 )] }

# Profiles Constant "base substrate" { Reference = "base substrate" EvaluateWindow { Element = cuboid [ ( 0 0 1 ) , ( 8.2 1.7 4.5 )] DecayLength = 0 } }

Constant "base substrate bottom" { Reference = "base substrate bottom" EvaluateWindow { Element = cuboid [ ( 0 1.7 1 ) , ( 8.2 4 4.5 )] DecayLength = 0 } }

AnalyticalProfile "burried n-channel"

12.74

Part 12 – MESH Appendix A – Examples

{ Reference = "burried n-channel" ReferenceElement { Element = rectangle [( 0 1.7 1 ) , ( 8.2 1.7 4.5 )] Direction = positive } }

AnalyticalProfile "act-base" { Reference = "act-base" ReferenceElement { Element = rectangle [( 0 0 1 ) , ( 5.2 0 4.5 )] Direction = positive } }

AnalyticalProfile "base-p+" { Reference = "base-p+" ReferenceElement { Element = rectangle [( 0 0 1 ) , ( 1.6 0 4.5 )] Direction = positive } }

AnalyticalProfile "emitter" { Reference = "emitter" ReferenceElement { Element = rectangle [( 2.8 0 1 ) , ( 4.6 0 2.5 )] Direction = positive } }

AnalyticalProfile "n+deep" { Reference = "n+deep" ReferenceElement { Element = rectangle [( 6.2 0 1 ) , ( 8.2 0 4.5 )] Direction = positive } }

}

12.75

Part 12 – MESHAppendix A – Examples

A.2.5 Three-dimensional example: Incorporating external profiles

This example illustrates the use of DIP to generate MESH input files.

A.2.5.1 Command file for MESHDefinitions{ # Refinement regions Refinement "channel" { MaxElementSize = (0.1 0.1 0.02 ) MinElementSize = (0.05 0.05 0.005 ) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 10) } Refinement "source + drain" { MaxElementSize = (0.2 0.2 0.2 ) MinElementSize = (0.05 0.05 0.05 ) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 10) } Refinement "default" { MaxElementSize = (0.8 0.8 0.8 ) MinElementSize = (0.05 0.05 0.05 ) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 10) }

# Profiles }

Placements {

# Refinement regions Refinement "default" { Reference = "default" RefineWindow = cuboid [ ( 0 0 1 ) , ( 94 104 100 )] } Refinement "source" { Reference = "source + drain" RefineWindow = cuboid [ ( 0.54 0.5 4.7 ) , ( 0.972 2 5.005 )] } Refinement "drain" { Reference = "source + drain" RefineWindow = cuboid [ ( 0.54 2.63 4.7 ) , ( 0.972 4.104 5.005 )] } Refinement "channel" { Reference = "channel" RefineWindow = cuboid [ ( 0.54 1.809 4.884 ) , ( 0.972 2.808 5.005 )] }

# Profiles

12.76

Part 12 – MESH Appendix A – Examples

A.2.6 Three-dimensional example

A.2.6.1 Command file for MESHDefinitions {

# Refinement regions Refinement "default" { MaxElementSize = (2 2 1 ) MinElementSize = (0.1 0.1 0.1 ) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 10) } Refinement "source + drain" { MaxElementSize = (0.2 0.2 0.1 ) MinElementSize = (0.025 0.025 0.025 ) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 10) } Refinement "channel" { MaxElementSize = (0.1 0.1 0.02 ) MinElementSize = (0.05 0.05 0.01 ) RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 10) }# Profiles AnalyticalProfile "source + drain" { Species = "ArsenicActiveConcentration" Function = Gauss(PeakPos = 0, PeakVal = 3.8e+20, ValueAtDepth = 1e+20, Depth = 0.1) LateralFunction = Gauss(Factor = 1.8) } AnalyticalProfile "pwell" {

Species = "BoronActiveConcentration"Function = Gauss(PeakPos = 0, PeakVal = 1.5e+17, ValueAtDepth = 3e+16, Depth = 0.5)

LateralFunction = Gauss(Factor = 0) } Constant "substrate" { Species = "BoronActiveConcentration" Value = 2e+15 }}

Placements { # Refinement regions Refinement "channel" { Reference = "channel" RefineWindow = cuboid [ ( 0 2.7 8.9 ) , ( 0.6 4 9 )] } Refinement "source" { Reference = "source + drain" RefineWindow = cuboid [ ( 0 1.5 8.7 ) , ( 0.6 3 9 )] } Refinement "drain" { Reference = "source + drain"

12.77

Part 12 – MESHAppendix A – Examples

RefineWindow = cuboid [ ( 0 3.7 8.7 ) , ( 0.6 5.1 9 )] } Refinement "default" { Reference = "default" RefineWindow = cuboid [ ( 0 0 0 ) , ( 87 105 100 )] }

# Profiles AnalyticalProfile "drain" { Reference = "source + drain" ReferenceElement { Element = polygon [( 0 4 8.95 ) ( 0.35 4 8.95 ) ( 0.35 4.75 8.95 ) ( 0 4.75 8.95 )] } } AnalyticalProfile "source" { Reference = "source + drain" ReferenceElement { Element = polygon [( 0 1.8 8.95 ) ( 0.35 1.8 8.95 ) ( 0.35 2.55 8.95 ) ( 0 2.55 8.95 )] } } AnalyticalProfile "pwell" { Reference = "pwell" ReferenceElement { Element = polygon [( 0 0 8.95 ) ( 2 0 8.95 ) ( 2 7 8.95 ) ( 0 7 8.95 )] } } Constant "substrate" { Reference = "substrate" EvaluateWindow { Element = cuboid [ ( 0 0 1 ) , ( 2 7 9 )] } }}

12.78

Part 12 – MESH Bibliography

Part 12 – MESH

Bibliography[1] P. Conti, M. Tomizawa, and A. Yoshi, “Generation of oriented Three-Dimensional Delaunay Grids Suitable

for the Control Volume Integration Method,” Int. J. Numer. Methods Eng., vol. 37, pp. 3211–3227, 1994.

[2] G. Garretón, L. Villablanca, N. Strecker, and W. Fichtner, “A New Approach for 2D Mesh Generation forComplex Device Structures,” NUPAD V – Technical Digest, Honolulu, USA, June, 1994.

[3] G. Garretón, L. Villablanca, N. Strecker, and W. Fichtner, “Unified Grid Generation and Adaptation forDevice Simulation,” SISDEP VI, Erlangen, Germany, September, 1995.

[4] G. Heiser, Design and Implementation of a Three Dimensional General Purpose Semiconductor DeviceSimulator, Ph.D. thesis, ETH Zürich, Switzerland, 1991.

[5] P. Regli, K. Lamboglia, G. Garretón, M. Neeracher, M. Westermann, and N. Strecker, “Multidimensionalgeometric modeling for 3D TCAD,” Microelectronic Engineering, vol. 34, pp. 101–115, 1996.

[6] L. Villablanca, Mesh Generation Algorithms for Three-Dimensional Semiconductor Process Simulation,Ph.D. thesis, ETH Zürich, Switzerland, 2000.

12.79