ise integrated systems engineering release 9.0 part 11 · ise integrated systems engineering...

93
ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW

Upload: others

Post on 08-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

ISE Integrated Systems EngineeringRelease 9.0

Part 11MDRAW

Page 2: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW Contents

MDRAW

1 – Introduction......................................................................................................... 11.11.1 About this manual ....................................................................................................................11.11.2 Scope of the manual................................................................................................................11.11.3 Terms and conventions ...........................................................................................................11.1

2 – Getting started .................................................................................................... 11.32.1 About MDRAW ........................................................................................................................11.32.2 MDRAW GUI ...........................................................................................................................11.32.3 Environment area ....................................................................................................................11.32.4 Menu bar and tool area............................................................................................................11.42.5 Contacts area ..........................................................................................................................11.42.6 Preferences area .....................................................................................................................11.4

3 – Boundary editor .................................................................................................. 11.53.1 Overview..................................................................................................................................11.53.2 Starting to edit the boundary....................................................................................................11.53.3 Creating a new device .............................................................................................................11.5

3.3.1 Opening an existing device ........................................................................................11.63.3.2 Saving the boundary description ................................................................................11.7

3.4 Editing the device ....................................................................................................................11.83.4.1 Selecting points ..........................................................................................................11.83.4.2 Moving points .............................................................................................................11.93.4.3 Adding new points ....................................................................................................11.103.4.4 Deleting parts of a device.........................................................................................11.103.4.5 Selecting the material for a layer..............................................................................11.113.4.6 Changing contact or region names ..........................................................................11.12

3.5 Tools for simplifying complex boundaries..............................................................................11.123.5.1 Deleting short edges ................................................................................................11.133.5.2 Deleting nearly collinear points ................................................................................11.133.5.3 Breaking nearly horizontal or vertical lines...............................................................11.143.5.4 Aligning groups of points ..........................................................................................11.15

3.6 Defining contacts ...................................................................................................................11.163.7 Defining new layers ...............................................................................................................11.17

3.7.1 Adding a new layer...................................................................................................11.173.7.2 Splitting a layer.........................................................................................................11.193.7.3 Defining holes or rectangular layers in a device.......................................................11.20

3.8 Merging different results ........................................................................................................11.213.8.1 Merging two different results ....................................................................................11.21

3.9 Extracting a subdevice...........................................................................................................11.233.10 Improving accuracy..............................................................................................................11.23

3.10.1 Specifying exact coordinates..................................................................................11.233.10.2 Constraining angles................................................................................................11.243.10.3 Defining a grid ........................................................................................................11.24

3.11 Modifying the view ...............................................................................................................11.253.11.1 Zooming .................................................................................................................11.253.11.2 Changing the size of a grid cell ..............................................................................11.253.11.3 Displaying the device using different x-y scaling....................................................11.26

3.12 Reverting changes...............................................................................................................11.263.12.1 Undoing and redoing changes ...............................................................................11.26

11.iii

Page 3: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAWContents

4 – Doping and refinement editor .......................................................................... 11.274.1 Overview ............................................................................................................................... 11.274.2 Defining doping and external functions................................................................................. 11.27

4.2.1 Defining a Gaussian doping profile.......................................................................... 11.284.2.2 Defining an error function profile ............................................................................. 11.294.2.3 Defining a constant profile ....................................................................................... 11.304.2.4 Including an external 1D doping profile ................................................................... 11.314.2.5 Including an external data profile............................................................................. 11.32

4.3 Defining lifetimes................................................................................................................... 11.334.4 Defining refinement criteria ................................................................................................... 11.33

4.4.1 Modifying the default refinement area ..................................................................... 11.344.4.2 Adding new refinement areas.................................................................................. 11.35

4.5 Defining multibox refinement criteria..................................................................................... 11.354.6 Modifying doping profiles ...................................................................................................... 11.36

4.6.1 Editing profiles and refinement objects.................................................................... 11.364.6.2 Moving profiles and refinement objects ................................................................... 11.364.6.3 Deleting profiles and refinement objects ................................................................. 11.364.6.4 Moving profiles and refinement objects ................................................................... 11.364.6.5 Reverting profiles and refinement objects ............................................................... 11.37

4.7 Using command files............................................................................................................. 11.374.7.1 Loading a command file .......................................................................................... 11.374.7.2 Adding contents to a command file ......................................................................... 11.384.7.3 Saving a command file ............................................................................................ 11.38

4.8 Creating the final mesh ......................................................................................................... 11.384.8.1 Building the mesh .................................................................................................... 11.384.8.2 Saving the mesh...................................................................................................... 11.40

4.9 Displaying information about generated mesh...................................................................... 11.404.9.1 Displaying the functions defined on mesh ............................................................... 11.404.9.2 Displaying basic mesh parameters.......................................................................... 11.414.9.3 Sampling the data.................................................................................................... 11.42

4.10 MDRAW and MESH............................................................................................................ 11.424.10.1 Remarks ................................................................................................................ 11.42

5 – Boundary-conforming meshes ........................................................................ 11.435.1 Overview ............................................................................................................................... 11.435.2 NOFFSET: Normal offsetting of boundary (interactive and batch) ....................................... 11.43

5.2.1 Algorithms................................................................................................................ 11.445.2.2 Graphical interface .................................................................................................. 11.465.2.3 Command file syntax for NOFFSET ........................................................................ 11.495.2.4 Example: Meshing using the NOFFSET mesher..................................................... 11.51

6 – Technical aspects ............................................................................................. 11.536.1 The datexcodes file............................................................................................................... 11.536.2 Valid layer descriptions ......................................................................................................... 11.536.3 Mesh refinement algorithm ................................................................................................... 11.54

6.3.1 Constructing an initial grid ....................................................................................... 11.546.3.2 Adequate adaptation to user input........................................................................... 11.546.3.3 Template management............................................................................................ 11.55

6.4 XWindows compatibility ........................................................................................................ 11.566.5 PostScript output................................................................................................................... 11.566.6 External doping file formats .................................................................................................. 11.56

11.iv

Page 4: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW Contents

6.7 Generating output files...........................................................................................................11.576.8 Command-line options for MDRAW ......................................................................................11.57

7 – Doping profile description ............................................................................... 11.597.1 Overview................................................................................................................................11.597.2 General concepts...................................................................................................................11.59

7.2.1 Local coordinate systems, valid domains, and implantation surfaces......................11.597.2.2 General implantation models....................................................................................11.607.2.3 Other parameters of interest ....................................................................................11.62

7.3 Available models along primary diffusion direction................................................................11.637.3.1 Gaussian functions...................................................................................................11.637.3.2 Error functions ..........................................................................................................11.647.3.3 Constant functions....................................................................................................11.657.3.4 External 1D profile....................................................................................................11.65

7.4 Lateral functions ....................................................................................................................11.667.4.1 Lateral or decay Gaussian function..........................................................................11.667.4.2 Lateral error function ................................................................................................11.677.4.3 No lateral function ....................................................................................................11.67

7.5 Special cases.........................................................................................................................11.677.5.1 Lifetime profiles for electrons and holes...................................................................11.67

8 – Tcl scripting interface....................................................................................... 11.698.1 Overview................................................................................................................................11.698.2 Execution ...............................................................................................................................11.698.3 Scripting language syntax......................................................................................................11.698.4 Data types..............................................................................................................................11.698.5 MDRAW API functions...........................................................................................................11.70

8.5.1 File management......................................................................................................11.708.5.2 Object creation .........................................................................................................11.718.5.3 Object elimination.....................................................................................................11.718.5.4 Point selection ..........................................................................................................11.728.5.5 Boundary modification..............................................................................................11.728.5.6 Handling contacts.....................................................................................................11.738.5.7 Boundary simplification ............................................................................................11.738.5.8 Data and refinement functions .................................................................................11.748.5.9 Defining meshing options .........................................................................................11.748.5.10 NOFFSET...............................................................................................................11.758.5.11 Doping and refinement functions............................................................................11.758.5.12 Examples of using API functions............................................................................11.76

8.6 Examples: Tcl script...............................................................................................................11.838.6.1 Creating rectangles ..................................................................................................11.838.6.2 Stretching a device...................................................................................................11.848.6.3 Creating a 3D extruded MOSFET design.................................................................11.86

Bibliography............................................................................................................ 11.87

Index of Tcl scripting interface.............................................................................. 11.89

11.v

Page 5: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 1 – Introduction

Part 11 – MDRAW

1 – Introduction

1.1 About this manualThis manual describes the MDRAW application, which offers flexible 2D device boundary editing, anddoping and refinement specifications. MDRAW communicates with the other ISE TCAD tools using theDF–ISE data format. The 2D meshing engines are integrated in MDRAW and are available without using fileinput and output. MDRAW offers a scripting language that follows the Tcl syntax and allows the user togenerate devices without any GUI interaction.

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

Chapter 2 describes the MDRAW application and the various features of the GUI.

Chapter 3 describes how to start the boundary editor and provides step-by-step examples of how to utilizeits functionality.

Chapter 4 describes how to work with profile and refinement projects, and command files.

Chapter 5 explains MESH generation schemes and outlines various types of parameters.

Chapter 6 describes important technical information about MDRAW.

Chapter 7 describes general doping profile concepts, primary diffusion, error functions, and lateralfunctions.

Chapter 8 describes the scripting interface of MDRAW.

1.3 Terms and conventionsTable 11.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.

Press This action relates to pushing a key or combination of keys on a keyboard.

Right-click Using the mouse, press and release the right mouse button.

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

11.1

Page 6: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW1 – Introduction

Table 11.2 Typographic conventions

Convention Definition or type of information

File > New Denotes a menu command, for example, from the File menu, select New.

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.

11.2

Page 7: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 2 – Getting started

Part 11 – MDRAW

2 – Getting started

2.1 About MDRAWMDRAW is part of the ISE TCAD environment and includes a:

Boundary editor

Doping and refinement editor

Scripting engine that follows the Tcl language syntax

Meshing engine

Each of these is used to create boundary, doping and refinement information, and meshes adequate for devicesimulation.

The meshing part of MDRAW is a GUI-driven front end to MESH (also incorporating NOFFSET). Thesemeshing tools can also be called from the command line. The MESH manual provides detailed descriptionsof the meshing engines and command-line options.

The MDRAW components are used to generate and modify TCAD models to meet specific simulationrequirements.

MDRAW contains two separate environments: a boundary editor, and a doping and refinement editor. Bothuse the same graphical user interface (GUI) components. The GUI automatically reflects the selectedenvironment.

2.2 MDRAW GUIThe MDRAW boundary editor GUI window comprises a menu bar, tool area, contacts area, preferences area,message box, pointer location indicator, and drawing area. These elements are arranged in a user-friendlymanner to ensure you become familiar quickly with MDRAW.

2.3 Environment areaUsing this box, the user can select the MDRAW environment. By selecting one of the two options (Boundaryor Doping), MDRAW updates the menu bar, toolbox, and settings box according to the selected environment.

11.3

Page 8: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW2 – Getting started

Figure 11.1 Boundary editor environment

2.4 Menu bar and tool areaThe menu bar provides easy access to the MDRAW commands. These commands instruct MDRAW toperform a specific action such as create a new device, edit a device, or incorporate some doping definitions.

The tool area groups frequently used commands, most of which work directly in the drawing area and can beapplied by clicking.

2.5 Contacts areaThe Contacts group box has elements used to manipulate contacts. Some elements can also be found in themenu bar.

2.6 Preferences areaThe Preferences group box contains several controls that allow the user to change environmental settings,such as displaying rulers or doping information.

Menu Bar

Tool Area

Drawing Area

Preferences Area

Environment Area

Message Box

Contacts Area

11.4

Page 9: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 3 – Boundary editor

Part 11 – MDRAW

3 – Boundary editor

3.1 OverviewThe boundary editor is used to create, modify, and visualize a device structure. It provides algorithms topreserve the topology correctness (conformity) of the device structure and to simplify complex structuresautomatically. The boundary editor environment is chosen by selecting the Boundary option button in theEnvironment area.

3.2 Starting to edit the boundaryThere are two options to start editing a device structure in MDRAW:

Start from scratch and create a new device.This is a useful alternative if you want to obtain a fast prototype or to avoid the process simulation step.

Edit an existing device. If the device structure originates from a process simulator such as DIOS, it is necessary to simplify thegeometry in order to avoid unnecessary points and features in the final device mesh.

3.3 Creating a new deviceThe only tool that allows for the creation of a new device structure from scratch is Add Rectangle, whichcreates a rectangular layer made of a specific material. To create a more complex layer structure, you canmodify this rectangular layer and later add new layers around it, or subdivide it (see Section 3.7 onpage 11.17).

To create a rectangular layer:

1. From the Tool area, select Add Rectangle.

2. Select the required material from the Materials menu.

Figure 11.2 Materials menu

11.5

Page 10: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW3 – Boundary editor

3. Press and hold the mouse button, and drag the pointer to draw a rectangle covering the area of the required rectangle. Release the mouse button and you will see a rectangular layer of the material selected.

Figure 11.3 Initial rectangular layer

3.3.1 Opening an existing device

MDRAW can open boundary files stored in the DF–ISE boundary format. MDRAW supports both the oldformat (.bound extension) and new format (.bnd extension) files. Furthermore, MDRAW can open both a.bound file and an old .rand file; however, it saves both files in the DF–ISE boundary format (.bnd).

To open a boundary file:

1. File > Open.The Open dialog box is displayed.

Figure 11.4 Open dialog box

2. Browse through the directory list and file list, and select the required file, or enter the file name in the text box.

3. Click OK.

11.6

Page 11: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 3 – Boundary editor

If the file has the correct format, it is read and displayed in the drawing area. (Recognized formats are DF–ISE,BOUNDARY 1.0, BOUNDARY 2.0, BOUNDARY 2.1, and BOUND.) If the format is incorrect, an errormessage is displayed.

NOTE The input points are rounded using the default value 10–5. For modifications, see Section 6.8 onpage 11.57.

3.3.2 Saving the boundary description

When a device structure is opened in the boundary editor, MDRAW displays it on the screen. Any changesmade to the device are saved in the memory of the computer only. For this reason, you should save yourdocument periodically.

NOTE The first time you save a device structure, you must specify a file name. After that, each time yousave the device structure, MDRAW replaces the version on disk with the current version of yourdevice on screen.

To save the boundary structure:

1. File > Save.If this is the first time you have saved the device structure, MDRAW displays a File Save dialog box.

2. Browse through the directory list and select the directory where you want to save the device.

3. Enter the device name in the text box.

4. Click OK.

Figure 11.5 File Save dialog box

Use the Save As option to store backup copies or to rename the device structure in order to create new devices.

11.7

Page 12: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW3 – Boundary editor

To rename the boundary structure or to save it in another directory:

1. File > Save As.A File Selection dialog box is displayed.

2. From the directory list, select the directory where you want to save the device.

3. Enter the device name in the text box.

4. Click OK to save the current device.

Files stored using the DFISETOOLS boundary format are sometimes difficult to modify manually (using atext editor). For this reason, MDRAW still supports the old boundary format output.

NOTE Manual editing of the output boundary file must be performed with caution. The user must do thisonly if the boundary conformity is maintained.

To store a boundary description in the .bound format:

1. File > Export.A File Selection dialog box is displayed.

2. From the directory list, select the directory where you want to save the device.

3. Enter the name of the device in the text box.

4. Click OK.

3.4 Editing the deviceWhen the device is open, you can edit the boundary: move points, add or delete points, change the materialtype in some regions, eliminate regions, or define new contacts.

3.4.1 Selecting points

Point selection can help you to automate many tasks such as moving, deleting, or smoothing groups of points.

To select a group of points:

1. From the Tool area, select Selection.

2. Press and hold the mouse button, and drag the pointer drawing a frame that encloses the points to be selected. Each point in the device becomes a white small rectangle.

11.8

Page 13: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 3 – Boundary editor

Figure 11.6 Point selection

To add points to the selection:

1. From the Tool area, select Selection.

2. Press and hold the left mouse button and the Shift key. Drag the pointer drawing a frame that encloses the points you want to add to the selection.

To select all the points:

Edit > Select All.Every point in the device now becomes a white rectangle.

3.4.2 Moving points

Moving points using the GUI can be an easy way to reshape a device, for example, to enlarge the bulk of somedevice or to fix some possible mistakes. MDRAW provides two ways to move points: to move a single pointor a group of points.

To move a single point:

1. From the Tool area, select Move Point.

2. Press and hold down the left mouse button, drag the pointer until it reaches its final location.Shortcut: Press and hold the middle mouse button, and move the point.

Figure 11.7 Moving a single point

11.9

Page 14: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW3 – Boundary editor

Another way to a move a single point:

1. From the Tool area, select Information.

2. Click the point to be moved.The Coordinates dialog box appears.

3. Enter the coordinates of the new point.

4. Click OK.

Figure 11.8 Coordinates dialog box

To move a group of points:

1. Select a group of points.To add the points to the previous selection, press and hold the Shift key before selecting the points.

2. Press and hold the left mouse button, and drag any of the selected points to their final locations.

3.4.3 Adding new points

To add new points to the device:

1. From the Tool area, select Add Point.

2. Click the place where you want to add the point. The new point is inserted on the closest edge.

3.4.4 Deleting parts of a device

The Delete tool in the Tool area allows you to delete regions, interfaces, points, or groups of points dependingon the selected entity on the screen.

To delete regions:

1. From the Tool area, select Delete.

2. Click the region to be deleted.

To delete interfaces:

1. From the Tool area, select Delete.

2. Click the interface to be deleted.

NOTE The interface is deleted only if it is interfacing two regions of the same material.

11.10

Page 15: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 3 – Boundary editor

To delete a single point:

1. From the Tool area, select Delete.

2. Click the point to be deleted.

To delete groups of points:

1. From the Tool area, select Delete.

2. Press and hold the left mouse button, and drag the pointer drawing a frame that encloses the points to be deleted.

Figure 11.9 Deleting a group of points

Alternatively:

1. Select the points to be deleted.

2. Edit > Clear.

NOTE The above operations are not performed unless the resulting structure is topologically correct.

3.4.5 Selecting the material for a layer

MDRAW can use a variety of materials. The internal definitions of these materials are defined in thedatexcodes.txt file (see Chapter 6 on page 11.53).

11.11

Page 16: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW3 – Boundary editor

To change the material type in a layer:

1. From the Tool area, select Change Material.

2. Select a material from the Material menu.

3. Click inside the layer.

Figure 11.10 Changing the material type of a layer into SiO2

3.4.6 Changing contact or region names

To change the name of a contact or region:

1. From the Tool area, select Information.

2. Click the contact or region to be renamed.A dialog box is displayed.

3. Enter the new name.

Figure 11.11 Information dialog boxes for regions and contacts

3.5 Tools for simplifying complex boundariesGeometric models coming from process simulation may contain an excessive number of points. These pointscan be in places where they can cause problems during mesh generation (see Chapter 6 on page 11.53) andcan lead to an excessive number of points in the final mesh.

To avoid these problems, MDRAW provides some tools for simplifying the geometry.

11.12

Page 17: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 3 – Boundary editor

3.5.1 Deleting short edges

To delete edges shorter than a certain length:

1. Select the points defining the edges to be smoothed.

2. Smooth > Delete Short Edges.A dialog box is displayed (see Figure 11.12).

Figure 11.12 Delete short edges dialog box

3. Enter the minimum edge length for the selected points.

4. Click OK.The program deletes all selected edges whose length is smaller than the value indicated (see Figure 11.13).

Figure 11.13 Interface metal-oxide before (left) and after (right) smoothing

3.5.2 Deleting nearly collinear points

Points that are nearly collinear can result in an excessive refinement since they define angles very close to180° (see Chapter 6 on page 11.53).

To delete these points:

1. Select the points to be smoothed.

2. Smooth > Delete Nearly-Collinear Points.A dialog box is displayed (see Figure 11.14).

Figure 11.14 Delete nearly collinear points dialog box

11.13

Page 18: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW3 – Boundary editor

3. Enter the minimum distance between a point and a line defined by its neighbors.

4. Click OK.All selected points whose distance to the line, defined by its neighbors, is smaller than the value you indicated are deleted (see Figure 11.15).

Figure 11.15 Metal-oxide interface before (left) and after (right) deleting nearly collinear points

3.5.3 Breaking nearly horizontal or vertical lines

Lines that are nearly horizontal or vertical may cause an excessive mesh refinement (see Chapter 6 onpage 11.53).

To delete these points:

1. Select the points defining the lines to be broken.

2. Smooth > Break Nearly-Horizontal/Vertical Lines.A dialog box is displayed (see Figure 11.16).

Figure 11.16 Break nearly vertical/horizontal lines dialog box

3. Enter the minimum angle (in degrees) between any selected line and the horizontal or vertical axis.

NOTE When breaking nearly horizontal or vertical lines for the first time, it is recommended that you setthe minimum angle between the selected lines to 5°.

4. Click OK.The program breaks all selected lines whose angle with respect to the horizontal/vertical axis is smaller than the value you indicate (see Figure 11.17 on page 11.15).

11.14

Page 19: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 3 – Boundary editor

Figure 11.17 Metal-oxide interface before (left) and after (right) breaking nearly vertical/horizontal lines

3.5.4 Aligning groups of points

As in the previous cases, lines that are nearly horizontal or vertical may cause difficulties with the meshgenerator. Another way to improve these lines is to align them to a certain point.

To align a group of points to a certain point:

1. Select the points to be aligned.

2. Smooth > Align Points Horizontally or Align Points Vertically.A message is displayed in the message box.

Figure 11.18 Message instructing user to select a coordinate

3. Click the point where the points are to be aligned.

If you click an existing point, MDRAW takes the coordinate from this point. However, if you clickanywhere else, MDRAW approximates the coordinate to the screen pixel clicked, resulting in a loss ofprecision.

Figure 11.19 Metal-oxide interface before (left) and after (right) vertically aligning points

11.15

Page 20: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW3 – Boundary editor

NOTE To select the coordinate more precisely, see Section 3.10 on page 11.23.

3.6 Defining contactsContacts are defined in MDRAW as a collection of edges. Contact edges are displayed in red. Differentcontact sets can be defined, and these contact sets (containing a selection of edges) can be contiguous or canoverlap each other.

Overlapping contacts can be useful for defining contacts, which must share the same position but have, in fact,a different use in the device simulator (for example, electrical and thermal contacts). Since contacts mayoverlap, many of the contact-related operations described here only affect a contact called the active contact.This active contact is highlighted using a thicker red line than for the nonactive contacts.

To set the active contact:

From the Active Contact menu, select one item.

If the selected contact contains edges, a thick red line appears in parts of the device.

To add a new contact:

1. From the Contacts area, select Add Contact.

2. Enter the name of the new contact.

3. Click OK.

To delete a contact:

1. From the Contacts area, select Delete Contact.

2. Select a contact name from the list.

3. Click OK.

To add single edge to an already defined contact:

1. From the Tool area, select Set/Unset Contact.

2. Click an edge.The edge is highlighted and added to the active contact.

NOTE If you click a region, the edges defining it are added to the active contact. If any of these edgesalready belong to the active contact, they are removed from the active contact.

To rename a contact:

1. From the Contacts area, select Information.

2. Click a contact.

3. Enter the new contact name.

11.16

Page 21: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 3 – Boundary editor

To rename the active contact:

Enter the new name in the text area of the active Contact menu.

3.7 Defining new layersDefining new layers in an existing device is easy with MDRAW. There are three ways to add new layers: adda layer around the device, cut a layer by splitting it into two new layers, or define a hole or rectangular layerin an existing layer.

3.7.1 Adding a new layer

To add a complex layer around the device:

1. From the Material menu, select a material.

2. From the Tool area, select Multiline.

3. Click the point where the new layer should begin, or click any place outside the device.

4. Continue clicking outside the device to define the rest of the points.

5. Right-click to complete the multiline.If the initial or final point does not coincide with any existing point, it is inserted on the closest edge.

Figure 11.20 Specifying an external complex layer

11.17

Page 22: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW3 – Boundary editor

Figure 11.21 Final external complex layer

NOTE The line must be non-self-intersecting and must not intersect with any of the layers of the device;otherwise, a message is displayed stopping the action when the line is completed.

To add a simple (rectangular) layer around the device:

1. From the Material menu, select a material.

2. From the Tool area, select Add Rectangle.

3. Press and hold the left mouse button, and drag the cursor until one (or more) corners of the rectangle touches a point in the device.

4. Release the mouse button.The rectangle is drawn.

Figure 11.22 Adding a simple layer

11.18

Page 23: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 3 – Boundary editor

NOTE If you do not want a corner of the rectangle to touch any points in the device, use the ExactCoordinates option. If you draw a rectangle that is not connected to the device, you can merge itto the device, see Section 3.10 on page 11.23.

3.7.2 Splitting a layer

To divide one layer into two layers of the same material:

1. From the Tool area, select Multiline.

2. Click the point where the new layer should begin, or click inside any layer in the device.

3. Continue clicking inside the layer to define the rest of the cutting points.

Figure 11.23 Splitting an oxide layer in two

4. Right-click to finish the multiline.If the initial or final point does not coincide with any existing point, a point is inserted on the closest edge (see Figure 11.24).

NOTE The line must be non-self-intersecting and must not intersect any other layer in the device;otherwise, a message is displayed stopping the action when you finish the line.

Figure 11.24 Oxide layer divided in two using the Multiline tool

11.19

Page 24: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW3 – Boundary editor

3.7.3 Defining holes or rectangular layers in a device

To define rectangular layers in the device:

1. From the Material menu, select a material.

2. From the Tool area, select Add Rectangle.

3. Press and hold the left mouse button, and drag the pointer inside a layer, drawing a rectangle to the specification of your choice.

4. Release the mouse button.A rectangular layer is drawn in the device.

Figure 11.25 Specifying a rectangular layer inside device

NOTE MDRAW handles only single-connected polygons. Each time an internal rectangular layer isdefined, MDRAW inserts a line from one of the rectangle's corners to the closest edge in the layerwhere the rectangular layer is defined (see Chapter 6 on page 11.53).

To define holes in the device:

1. From the Tool area, select Add Rectangle.

2. Press and hold the left mouse button, and drag the pointer inside a layer, drawing a rectangle to the specification of your choice.

3. Release the mouse button.A rectangular layer is drawn inside the device.

Figure 11.26 Rectangular layer in oxide

11.20

Page 25: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 3 – Boundary editor

4. From the Tool area, select Delete.

5. Click the rectangular layer.The rectangular layer is deleted and a hole is created.

3.8 Merging different resultsProcess simulations can be very time-consuming. Some devices have a certain symmetry. Others can bedivided and simulated in several computers and later joined without loss of quality.

3.8.1 Merging two different results

In this example, two parts of a device are merged into one single device.

To merge the two parts:

1. Load the first part of the device.

2. File > Include File.A File Selection Box is displayed asking for the file to include.

3. Select the file from the directory and file lists, or enter the file name in the text box.A message is displayed in the message box (see Figure 11.27) instructing user to click where the second part of the device is to be inserted.

Figure 11.27 Inserting the second half of the device

4. Click a place outside the first part of the device (already loaded part).Ideally, this place should be close to the face where you want to join to the second part of the device.

Figure 11.28 Status after loading the second part

11.21

Page 26: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW3 – Boundary editor

5. Optionally, you can mirror the second part of the device:

a Select the second part.

b Edit > Reflect X or Reflect Y.

6. Straighten both faces that will be in contact:

a Smooth > Align Points Horizontally or Align Points Vertically.

7. Select the second part of the device.

8. Press and hold the mouse button, and drag any point of the second part, (now selected) to a point on the first part.

9. Release the mouse button.Both parts of the device have merged into one single device. You can now delete the interface edges.

Figure 11.29 Moving the second half to merge it with the first one

NOTE In some cases, you may not want to use any predefined points from the first part. If you do not,select the Exact Coordinates option in the Preferences box (see Section 3.10 on page 11.23).

Figure 11.30 Final device after merging the two parts and deleting material interfaces

11.22

Page 27: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 3 – Boundary editor

3.9 Extracting a subdeviceTo extract a subregion (called subdevice) from a given device:

1. From the Tool area, select 2DCut.

2. Press and hold the left mouse button, and drag the pointer drawing a frame that encloses the subdevice.A File Selection dialog box is displayed.

3. Save the subfile under a chosen file name.

4. From the directory list, select the directory to save the subdevice.

5. Specify the file format for the subdevice.

6. Click OK.

The extracted subdevice is saved in the DF–ISE boundary format.

3.10 Improving accuracyTo edit a device structure, accurate specifications must be used. The coordinate system in MDRAW is givenin microns; however, the coordinate system on the screen is given in pixels. A problem arises when theprogram has to map pixel coordinates to microns. To overcome this problem, MDRAW has implementedseveral strategies.

3.10.1 Specifying exact coordinates

When you define a point in the GUI editor, you may want to specify exact coordinates. MDRAW provides asimple way to give the exact value of each coordinate you specify.

To specify coordinates more exactly:

1. Select Exact Coordinates from the Preferences dialog box.

2. After selecting the Exact Coordinates option, when you click to specify a point, all tools display a dialog box asking for a coordinate value.Another dialog box appears when you specify rectangles (such as Cut 2D, Add Rectangle, Select, and Delete tools).

Figure 11.31 Exact coordinates dialog boxes

11.23

Page 28: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW3 – Boundary editor

3.10.2 Constraining angles

MDRAW can help to draw squares, move points, and draw lines at specific angles.

Usually, MDRAW allows you to draw a line at any angle. When you constrain the Multiline tool, you canobtain lines of 0, 45, or 90 degrees along the x and y axes only. You can also move points or groups of pointsconstraining the displacement to 0, 45, or 90 degrees with respect to the starting point. You can also constrainrectangles to be drawn as squares.

To constrain a tool as you use it:

Press and hold the Shift key as you drag to draw, move, or reshape an object.

3.10.3 Defining a grid

MDRAW provides a grid to specify coordinates discretely. The grid is activated when you select Show Grid.When it is active, every point you move is placed on the closest point on the grid. There is also an optionallowing you to snap every point to the closest point on the grid.

To activate grid snapping:

Select Show Grid from the Preferences dialog box.

To snap a point to the closest neighboring grid point:

1. Activate grid snapping.

2. Select the tool Move Point.

3. Click the point.

To snap a group of points to their closest neighboring points:

1. Activate grid snapping.

2. Select a group of points.

3. Edit > Snap To Grid.

NOTE If the resulting device is topologically incorrect after performing the snap, an error message isdisplayed and the operation is suspended. In this case, the device is not changed (see Chapter 6 onpage 11.53).

11.24

Page 29: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 3 – Boundary editor

3.11 Modifying the view

3.11.1 Zooming

To zoom into a section of your device:

1. From the Tool area, select Zoom.

2. Press and hold the mouse button, and drag the pointer drawing a frame enclosing the area you want to zoom in on.

3. Release the mouse button.The view of the selected device is enlarged. The rulers and scroll bars are updated to reflect the current status of the viewed device section. The width and height of the grid cells are recalculated to display a 100 by 100 cell grid, unless you specified the option Keep Grid Size on the option box.

Shortcut: If you press and hold the right mouse button using any tool, you can zoom in on any part of yourdevice.

To keep the size of the grid cells when you zoom in:

Select Keep Grid Size from the option box.

To zoom out:

View > Zoom Out.

To reset the zooms:

View > Zoom Reset.

NOTE Be careful when zooming out when the Keep Grid Size option is selected. If the grid size is toosmall and you zoom out or reset the view, the result may be a black screen. To solve this problem,change the size of the grid cell manually.

3.11.2 Changing the size of a grid cell

In MDRAW, the rulers depend on the grid. If you change the size of the grid cells, this is reflectedautomatically on the rulers (even when the grid is not active).

To change the grid cell aspect ratio and, consequently, the x-y scaling:

1. View > Change Grid Spacing.The Grid Size dialog box is displayed.

2. Enter the width and the height of a grid cell.

3. Click OK.

11.25

Page 30: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW3 – Boundary editor

3.11.3 Displaying the device using different x-y scaling

In some cases, the device you are editing may be narrow or flat, and no detail is displayed. This occurs becausethe x and y axes have the same scaling. Consequently, you have to scale the x and y axes in a different way.

Figure 11.32 Device before (left) and after (right) selecting different x-y axes scaling

To scale the device with different x-y scales:

1. Select Equal Scales from the Preferences dialog box.

2. View > Zoom Reset.

3.12 Reverting changesUsing the MDRAW device boundary editor, you can undo any of the changes made. MDRAW provides amultiple-level undo system that allows you to go back as far as you want until the time you started theprogram. This enables recovery from practically any mistake that may have been made.

3.12.1 Undoing and redoing changes

To undo a change:

Edit > Undo.

To redo a change:

Edit > Redo.

11.26

Page 31: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 4 – Doping and refinement editor

Part 11 – MDRAW

4 – Doping and refinement editor

4.1 OverviewThe main purpose of the doping editor is to create, modify, and visualize the doping of a device. It also enablesthe user to specify extra refinement information that affects the meshing engines by specifying the local meshsize (minimal and maximal allowable sizes of the elements).

Figure 11.33 Doping editor

The features of the MDRAW doping editor include tools to create doping descriptions, to describe refinementconditions, and to build a mesh that meets all the requirements needed for device simulation. To select thedoping editor environment, from the Environment area, select Doping.

4.2 Defining doping and external functionsDoping profiles can be defined in two ways in MDRAW:

Define an analytic doping profile

Include external data from a process or a device simulator

An analytic profile in MDRAW can be either a Gaussian doping profile, an error function doping profile, aconstant doping profile, or lifetime profiles. Additionally, you can define a doping profile starting from a 1Dexternally defined doping profile function.

11.27

Page 32: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW4 – Doping and refinement editor

The following subsections explain how to obtain an analytic profile function, and it is assumed that the useralready knows the meaning of the parameters to tune up. If you are not familiar with the terminology, refer tothe command file description in MESH, Chapter 5 on page 12.25.

Additionally, external data coming from either a 2D process or device simulator can be included as a referencemesh, which is called a subMesh. The mesh generator interpolates data from the subMesh in order to performmesh refinement.

4.2.1 Defining a Gaussian doping profile

To define a Gaussian doping profile:

1. From the Tool area, select Add Analytical Profile.

Figure 11.34 Analytical Profiles dialog box

2. Press and hold the mouse button, and drag the pointer until the line defines the baseline for the Gaussian Doping Profile.The Analytical Profiles dialog box is displayed.

3. Enter the name of the profile.

4. Correct possible imprecisions in the baseline coordinates.

5. Select the species from the Species box.

Figure 11.35 Species box

NOTE All species are treated as Active (Substitutional). Earlier versions, while not being explicit aboutthis fact, also treat species as active.

11.28

Page 33: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 4 – Doping and refinement editor

6. Set the Lateral Diffusion function and enter its Lateral Factor value.

Figure 11.36 Lateral Diffusion group box

7. Select the Concentration type: Peak Concentration or Dose.

8. Enter the Concentration value.

9. Enter the Peak Position value; this value represents the distance from the doping peak to the baseline.

10. Specify whether you want to specify the concentration's Standard Deviation, the concentration at the Junction, or the Diffusion Length.

11. If you specified Standard Deviation or Diffusion Length, enter its value.

12. If you specified Junction, enter the value at the junction and the depth or distance from the junction to the peak position.

Figure 11.37 Concentration type function box

13. Click OK.

4.2.2 Defining an error function profile

To define an error function profile:

1. From the Tool area, select Add Analytical Profile.

2. Press and hold the left mouse button, and drag the pointer until the line defines the baseline for the Error Function profile.The Analytical Profiles dialog box is displayed.

3. Select Error Function from the Profile Type box.

Figure 11.38 Error function profile set-up dialog box

11.29

Page 34: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW4 – Doping and refinement editor

4. Enter the profile name.

5. Correct possible imprecisions in the baseline coordinates.

6. Select some of the species from the Species box.

7. Set the Lateral Diffusion function and enter its Lateral Factor value.

8. Specify the Concentration type: Max. Concentration or Dose Concentration.

9. Enter the Concentration value.

10. Enter the Inflection Position.This value represents the distance from the inflection point to the baseline.

11. Specify whether you want to specify the concentration's Standard Deviation or the concentration at the Junction.

12. If you specified Standard Deviation, enter its value.

13. If you specified Junction, enter the value at the junction and the depth or distance from the junction to the peak position.

14. Click OK.

4.2.3 Defining a constant profile

To define a constant doping profile:

1. From the Tool area, select Add Constant Profile.

2. Press and hold the left mouse button, and drag the pointer until the line defines the baseline for the Constant Doping Profile.The Constant Profiles dialog box is displayed.

Figure 11.39 Constant Profiles dialog box

3. Enter the profile name.

4. Correct possible imprecisions in the baseline coordinates.

5. Select some species from the Species box.

6. Enter the Concentration value.

11.30

Page 35: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 4 – Doping and refinement editor

7. Enter the Decay value. This value represents the distance from the baseline to the end of the constant profile.

8. Toggle Replace if the computed value must be replaced by the current value.

9. Click OK.

4.2.4 Including an external 1D doping profile

To define a doping profile from a 1D external doping profile:

1. From the Tool area, select Add Analytical Profile.

2. Press and hold the mouse button, and drag the pointer until the line defines the baseline for the 1D Doping Profile.The Analytical Profiles dialog box is displayed.

3. Select 1D Profile from the Profile Type.

4. Enter the name of the profile.

5. Correct possible imprecisions in the baseline coordinates.

6. Click the File Name button or enter the file name in the text box.A File Selection Box is displayed.

7. Select the file from the directory list and the file list, or enter the file name in the text box.

8. Click OK.

Figure 11.40 1D profile set-up dialog box

9. Enter the data range you want in the From and To boxes.

10. Select the units of the data stored in the 1D file from the Units box.

11. Set the Lateral Diffusion function and enter its Lateral Factor value.

12. Toggle the Options:

a Replace: Replace the thus far computed value with the current value.

b Not evaluate baseline: Ignore values along the line of definition.

13. Click OK.

11.31

Page 36: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW4 – Doping and refinement editor

4.2.5 Including an external data profile

To include an external data profile (subMesh):

1. From the Tool area, select Add SubMesh.

2. Press and hold the mouse button, and drag the pointer until the encloses the area where you want to define the profile.The External data profile set-up dialog box is displayed.

Figure 11.41 External data profile set-up dialog box

3. Click the Geometry File button or enter the file name in the text box.A File Selection Box is displayed.

4. From the directory list and the file list, select the .grd file, or enter the file name in the text box.

5. Click OK.

6. Click the Add Data File button.A Data File Selection Box is displayed.

7. From the directory list and the file list, select the .dat file, or enter the file name in the text box.

8. Select the loading mode in the mode option box.In the Write mode, MDRAW writes the data read from the subMesh to either the final mesh or an external file. For the external file you must specify one output name. The datasets stored in the external file are the same found in the input data file but estimated to fit the final mesh.In the Read Only mode, the file is only used as a reference. None of the datasets contained in the file are written to the final mesh.In the Overwrite mode, MDRAW writes an output file with the same name as the input data file name. The datasets on this output file are the estimated values from the input data file.In the Increment mode, MDRAW writes an output file with the same name as the input data file name but adds or increments an index in the file name. As in the previous cases, the contents saved on this file are the estimated values from the input file.

9. Click OK.

11.32

Page 37: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 4 – Doping and refinement editor

10. Correct possible imprecisions in the window section.MDRAW uses the window section to select which elements are loaded by the program. This is useful when you want to select only parts of the external file. Specifying a smaller window uses less memory as you are not loading redundant elements.

11. Set the window attachment.When you have defined the window specify whether you want to attach some of the window borders to some of the device's bounding box borders. Specifying Attach Left instructs MDRAW to stick the left side of the resulting window to the left side of the device's bounding box. Additionally, you can specify the distance from the window side to the respective device bounding box side.

12. Specify if you want to mirror the resulting window.

13. Specify if you want to rotate the resulting window.

14. Click OK.The external data file is loaded.

To display the external files:

Select Show SubMeshes from the Preferences box.

4.3 Defining lifetimesTo describe a lifetime, MDRAW uses the same model as for an analytic doping profile.

To define an electron or hole lifetime profile:

1. Follow the steps indicated in Section 4.2 on page 11.27.

2. Select eLifetime or hLifetime from the Species box.

4.4 Defining refinement criteriaTo perform mesh refinement, MDRAW uses a set of user-defined parameters. These parameters specify therefinement and the acceptable size of the final mesh elements. The refinement parameters are grouped intorefinement areas. These areas are rectangles that define constraints for the final mesh elements. Eachrefinement area has a refinement function. This function takes the values in the doping profiles or externaldata files, and tells MDRAW to refine some of the mesh elements if they do not meet a certain criterion.

Depending on the refinement criterion, an element is refined if the gradient, or the difference of the data insidethe element, is greater than a certain value.

When you create a device, MDRAW assigns a default refinement area to the whole device. If you needspecific refinement requirements for some region inside the device, you can add further refinement areas. Anyrefinement area can be edited or deleted with the exception of the default area, which you can edit but notdelete.

NOTE The values considered by the refinement function are calculated by first applying an interpolationfunction defined in the datexcodes.txt file.

11.33

Page 38: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW4 – Doping and refinement editor

4.4.1 Modifying the default refinement area

To modify the default refinement area:

1. From the Tool area, select Information.

2. Click any place not containing a refinement area.The Refinement Dimensions dialog box is displayed.

Figure 11.42 Refinement Dimensions dialog box

3. Enter the Max. Element Width value.

4. Enter the Max. Element Height value.

5. Enter the Min. Element Width value.

6. Enter the Min. Element Height value.

7. Modify the refinement functions.

8. Click OK.

To add refinement functions in the Refinement Dimensions dialog box:

1. Click Add.

Figure 11.43 Refinement Function dialog box

NOTE If you have not defined any doping profile, an error dialog box stops the action.

11.34

Page 39: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 4 – Doping and refinement editor

Figure 11.44 Sample of an error dialog box

2. Select the refinement criteria.Select whether you want MDRAW to refine taking the difference of the values between any two points or the gradient defined between any two points.

3. Select the function where you want to consider the Value Difference or Gradient.

4. Enter the maximum allowed value.

5. Click OK.

To delete refinement functions in the Refinement Dimensions dialog box:

1. Select the refinement function to be deleted.

2. Click Delete.

To edit refinement functions in the Refinement Dimensions dialog box:

1. Select the refinement function to be edited.

2. Click Edit.

3. Proceed to add refinement functions.

4.4.2 Adding new refinement areas

To add a refinement area:

1. From the Tool area, select Add Refinement.

2. Press and hold the left mouse button, and drag the pointer until the rectangle encloses the area where you want to define the refinement area.The Refinement dialog box is displayed.

3. Proceed as in Section 4.4.1 on page 11.34.

4. Click OK.A white rectangle now represents a refinement area.

4.5 Defining multibox refinement criteriaThe multibox refinement criteria is a feature, which is described in the MESH manual. Since the Add Multiboxcommand is new, the old cmd file syntax does not support the multibox feature. A description of the new cmdfile syntax of this feature can be found in the MESH manual.

The use of the multibox refinement criteria allows the user to request a graded mesh. The behavior of themultibox is basically similar to the behavior of the normal Refinement window, except that a refinement

11.35

Page 40: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW4 – Doping and refinement editor

function cannot be added as an additional refinement criterion to the multibox. In addition to specifying themaximal and minimal element sizes in both directions, the multibox defines a grading rate in each coordinatedirection. The created mesh is graded, starting from the minimal element size using the grading factors untilthe maximal element size is not reached (or the boundary or the refinement window). By using the multiboxrefinement criteria, the number of elements created by a mesh can be reduced considerably.

4.6 Modifying doping profilesWhen you define objects in the doping editor, you can start experimenting with them, tuning differentparameters until you obtain the results you require in your final mesh.

Objects in this editor are handled in the same way. You can edit, move, or delete any object using the sametool.

4.6.1 Editing profiles and refinement objects

To edit any object defined in the Doping editor:

1. From the Tool area, select Information.

2. Click the object you want to edit.

Another way to edit any object defined in the Doping editor:

1. From the Tool area, select Select.

2. Double-click the object to be edited.

4.6.2 Moving profiles and refinement objects

To move any object defined in the Doping editor manually:

1. From the Tool area, select Select.

2. Press and hold the left mouse button, and drag the object to its final location.When you release the mouse button the object is moved and placed at the top of the objects of its class.

4.6.3 Deleting profiles and refinement objects

To delete any object defined in the Doping editor:

1. From the Tool area, select Delete.

2. Click the objects to be deleted.

4.6.4 Moving profiles and refinement objects

In analytic doping profiles, sometimes you may have problems in obtaining information about a specificprofile since it can be hidden by another profile. On the other hand, the order on the definition of refinement

11.36

Page 41: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 4 – Doping and refinement editor

areas or external doping profiles can affect your result (see Chapter 6 on page 11.53). To solve this problem,you can send objects behind others or bring some objects to the front.

To bring an object to the front of other objects of the same class:

1. From the Tool area, select Selection.

2. Select the object to be sent to the front.

3. Arrange > Bring To Front.

To send an object behind other objects of the same class:

1. From the Tool area, select Selection.

2. Select the object to be sent to the back.

3. Arrange > Send To Back.

4.6.5 Reverting profiles and refinement objects

To undo the last change performed to any object in the Doping editor, Edit > Undo.

Another way to access hidden analytic doping profiles is:

1. View > List Analytical Profiles.The List Analytical Profiles dialog box is displayed.

2. Select one profile by clicking the list.

3. Click Edit to modify the profile or Select to select the corresponding arrow on the drawing window.

4.7 Using command filesThe defined doping profiles and refinement criteria can be saved for later use. The command (.cmd) file typestores all the information that was defined using the Doping editor. You can save it any time during a sessionand retrieve it later. You can merge the contents of a command file with the current settings defined in thedoping editor. A complete description of the command file can be found in MESH, Chapter 5 on page 12.25.

4.7.1 Loading a command file

Every time MDRAW is started, it checks for the existence of a command file. If the command file exists, it isloaded automatically and a message window is displayed. To disable this behavior, use the command-lineoption -noloadCmd.

To load a command file manually:

1. File > Open Command File.

2. From the directory list and the file list, select the command file, or enter the file name in the text box.

3. Click OK.The command file is loaded and its contents is displayed.

11.37

Page 42: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW4 – Doping and refinement editor

4.7.2 Adding contents to a command file

To add the contents of a command file to the current doping editor definition:

1. File > Include Command File.

2. From the directory list and the file list, select the .cmd file, or enter the file name in the text box.

3. Click OK.The command file is loaded and its contents is displayed.

4.7.3 Saving a command file

To write the doping and refinement description:

File > Save Command File.

To write the doping and refinement description to a file:

1. File > Save Command File As.

2. From the directory list, select the directory to store the data, and enter the file name in the text box.

3. Click OK.

4.8 Creating the final meshWhen the refinement conditions are set, building the mesh is straightforward. By clicking the Build Meshbutton, MDRAW starts constructing the mesh that best meets the specified requirements. If the meshingprocess takes too long, you can stop it and check the current meshing status. If some of the refinementconditions are wrong or the boundary description contains some problematic area, you can fix the problemand restart the meshing process.

4.8.1 Building the mesh

When MDRAW starts building a mesh, it takes into account whether you want to consider the device structureonly, external data only, or the internally defined analytic doping profiles only. If you have NOT set anyrefinement parameters for the structure, a warning is displayed.

Figure 11.45 Refinement warning

This gives you an opportunity to either go back and click Add Refinement (see Section 4.4 on page 11.33)to set up mesh sizes of your choice or to continue to generate a very coarse initial grid.

11.38

Page 43: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 4 – Doping and refinement editor

NOTE The coarse grid may yield unacceptable answers from the simulation as the resolution may beimproper.

The default behavior for MDRAW is to load a command file automatically with the same base name as thedevice you are editing at start-up time and to consider both internally defined analytic doping profiles andexternally defined data.

To build the default mesh:

Mesh > Build Mesh or click the Build Mesh button.

The Build Mesh button and the corresponding option in the Mesh menu become Stop Refinement.

Figure 11.46 Final mesh

To build the mesh considering only the device structure:

1. Mesh > Setup.

2. Deselect the options subMesh and Analytical Profiles.

3. Click OK.

4. Mesh > Build Mesh or click the Build Mesh button.

Figure 11.47 Mesh Setup dialog box

11.39

Page 44: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW4 – Doping and refinement editor

To stop the refinement:

Mesh > Stop Refinement or click the Stop Refinement button.

The Stop Refinement button and the corresponding option in the Mesh menu become Continue.

To rebuild the mesh:

Mesh > Build Mesh or click the Build Mesh button.

You can also build your mesh in steps. There are three steps in this process: initial mesh, user mesh, and finalmesh. The initial mesh algorithm approximates the initial boundary description to a set of rectangles. The usermesh procedure refines these rectangles to fit user-specified requirements. The final mesh procedure tries tocomplete the mesh so that it meets the device simulation requirements (see Section 6.3 on page 11.54).

To build the initial mesh: Mesh > Build Initial Mesh.

To build the user mesh: Mesh > Build User Mesh.

To build the final mesh: Mesh > Build Final Mesh.

4.8.2 Saving the mesh

To save the mesh: File > Save Mesh.

To save the mesh using a given file name:

1. File > Save Mesh As.

2. Browse through the directory list and select the directory where you want to store the data, and enter a file name in the text box.

3. Click OK.

4.9 Displaying information about generated meshWhen the mesh is built, both qualitative and quantitative information can be obtained about the mesh, suchas graphical information about the data distribution of every function for the final mesh. Alternatively, youcan obtain either the geometry of the final mesh or the data stored at each point.

4.9.1 Displaying the functions defined on mesh

When you build a mesh, MDRAW selects a function from the dataset, usually the first one you defined, anddisplays it.

To display another function:

1. Select Show Functions from the Preferences box.This option is selected by default when you start MDRAW.

2. Select the desired function from the Functions menu.

11.40

Page 45: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 4 – Doping and refinement editor

Figure 11.48 Display of grid only on the Mesh Editor

Drawing functions is sometimes slow, and you do not always want to display them.

To display only the grid, without drawing any function:

Deselect Show Functions from the Preferences box.

4.9.2 Displaying basic mesh parameters

To obtain geometric information about the mesh:

1. File > Show Info.The Information dialog box is displayed (see Figure 11.49).

2. Click OK.

Figure 11.49 Information dialog box

11.41

Page 46: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW4 – Doping and refinement editor

4.9.3 Sampling the data

MDRAW draws the functions using a rainbow color set. This set assigns red to the highest data values andblue to display the lowest values. For an overview of how the values are distributed, MDRAW can display acolor palette, which shows a sampling of values from the displayed data.

To show the palette:

Select Show Palette from the Preferences box.

Alternatively, you may want to know the value at a specific location.

To obtain the value at a specific point:

1. From the Tool area, select Sample.

2. Click a point on the device.The clicked coordinate and the value at this point are displayed in the message box.

4.10 MDRAW and MESHThe user can run MDRAW without the GUI, therefore, MDRAW does not have to be in batch mode. Thismode is equivalent to running MESH with the option -s. To run in batch mode, the -M option must be used asfollows:

mdraw -M filename

NOTE The other command-line options must be MESH options rather than MDRAW command-lineoptions.

MESH reads the command file filename.cmd. The geometry description is read from the file filename.bnd, andthe corresponding file formats supported are bound file format and DF–ISE file format.

The output files filename_mdr.grd and filename_mdr.dat are written in the standard DF–ISE format (seeUtilities, Chapter 2 on page 6.3).

4.10.1 RemarksDelaunay meshes By default, MDRAW creates meshes that do not contain obtuse angles and, therefore,

are suitable for the box method. MDRAW is capable of generating meshes meetingthe Delaunay criterion (that is, the circumcircle of each element has no mesh points inits interior) but containing obtuse angles; this is the default mesh type of MESH. Theconditions for Delaunay meshes are less restrictive than previous ones, therefore, thenumber of elements and points can be reduced. The nondefault Delaunay feature canbe obtained through the following online options:

-delaunayAll Generates Delaunay meshes in the entire device.

-delaunayInsulator Generates Delaunay meshes only for layers defined as insulator in the datexcodes file(see Section 6.1 on page 11.53).

11.42

Page 47: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 5 – Boundary-conforming meshes

Part 11 – MDRAW

5 – Boundary-conforming meshes

5.1 OverviewMDRAW supports two different mesh generators for two-dimensional, nonaxis-aligned (curved) geometriesor non-Manhattan device structures. MESH is a quadtree-based meshing engine, with an additionaldelaunization module (it can also generate meshes that contain only non-obtuse angles). The other meshingengine is NOFFSET, a boundary-conforming mesher, that tries to fit mesh elements that follow the boundaryin a natural way. Both meshing engines can be used either interactively or in batch mode. This chapterdescribes NOFFSET in more detail.

Figure 11.50 Comparison of NOFFSET meshes for a MOSFET structure with nonplanar (curved) material boundaries

Figure 11.50 shows the mesh generated by the default mesher (a) and the mesh generated by NOFFSET (b).

5.2 NOFFSET: Normal offsetting of boundary (interactive and batch)

The so-called normal offsetting (NOFFSET) method for meshing combines the ideas of the advancing frontmethod [1] for meshing with other methods to create mixed-element meshes [2][3]. The conventionalgenerator MESH coexists with NOFFSET, and they do not interfere with each other. This implies that somesettings in the command file and GUI affect only one meshing engine and are ignored by the other. However,the definitions of analytical profiles and submeshes are used by all generators.

In the case of NOFFSET, they are used for defining interpolation doping on the final mesh and evaluatingisolines.In the doping mode of the GUI, Mesh > Setup opens the dialog box shown in Figure 11.51 onpage 11.44, which allows the selection of the generation method used in this MDRAW session.

The batch mode is switched to NOFFSET by the command-line option:

mdraw -M -noffset

In any case, the default generator is conventional MESH.

(a) (b)

11.43

Page 48: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW5 – Boundary-conforming meshes

Figure 11.51 Mesh Setup dialog box for NOFFSET

5.2.1 Algorithms

This section provides a short introduction to NOFFSET. It uses a modified advancing front approach – thenormal offsetting procedure. The main difference to conventional advancing front methods is that bypreference, quadrilaterals are created rather than triangles. The aim is to create boundary parallel layers. Thisgenerator differs largely from MESH, the default engine inside MDRAW; therefore, the results and handlingdiffer. This description focuses on the parameters and switches by which the user influences the meshgeneration. It is organized in three main steps: boundary mesh, normal offsetting, and postprocessing.

5.2.1.1 Boundary mesh

The basic procedure is the fragmentation of long edges along the boundary into pieces of roughly the lengthgiven by the input parameter Boundary Element Size. This length can be specified by the user for each individualmaterial interface (see Section 5.2.1.2). In addition to this basic procedure, two more algorithms are called.

First, Balancing is an algorithm that ensures a balanced boundary grid, where neighboring edges do not differin length by more than a factor of two. The second algorithm is Refine-on-Curvature, a method by whichregions of high curvature are discretized to finer levels. Therefore, the normal offsetting process producesmeshes that are locally conforming and Delaunay. However, this process cannot detect global non-Delaunaycases, so the ISE delaunization procedure is used as a postprocessing step.

5.2.1.2 Normal offsetting

The central part of this mesh generator is the layering of each region with quadrilaterals. For each boundarysegment, a quadrilateral of a user-defined height (initial distance) is added, and an image of the boundary iscreated. In the same manner, a second layer can be added; however, the marching distance is increased by thecoarsening factor. By this construction, a front advances into the interior of the region. This front stops ifeither the maximum number of layers is reached or the front collides with other parts of the front. At this stage,a polygon is formed of the region interior that is not yet filled with mesh elements. This polygon is furthertreated by the postprocessor. The quadrilaterals are then subdivided by the number of times indicated by theparameter subdivide. The idea is that a fine mesh and a coarse normal offsetting mesh can exist near each otherwithout a transition zone of bad quality elements.

After the construction of each layer, the elements are checked for quality and validity. One test can beinfluenced by the user: mesh lines starting at interfaces can be terminated to ensure the transition to a coarserbulk mesh. However, in some cases, a strict warped tensor grid is required close to an interface; the integer

11.44

Page 49: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 5 – Boundary-conforming meshes

parameter (Terminate Lines) controls the number of the layer at which this algorithm starts. During the normaloffsetting process, the maximum edge length is guaranteed, that is, the marching distance is not increasedbeyond this value, mesh lines are not terminated if this results in longer edges in the front, and green pointsare added to parallel edges.

The two groups of parameters differing in the scope of definition are per interface and per region. Theinterface parameters are described in Figure 11.52. As mentioned previously, the quadrilateral generation ismainly controlled by the initial distance, coarsening factor, and the number of subdivisions. These parameterscan be specified for each interface separately; here, ‘interface’ refers to a material interface constituted by allboundary segments between any two regions. Since an interface has two material sides, the parameters canhave different values on each side. If no values are specified for a particular interface, the globally defined (ordefault) values are used. The outer surface of the device is referred to as an interface to a region calledExterior. Electric contacts are also used to describe interfaces. Those values are then used instead of the valuesdefined for the Exterior interface.

The other parameters that can be specified per region are Maximum Edge Length, Maximum Number of Layers, andTerminate Lines.

Figure 11.52 Parameters for normal offsetting at an interface between two regions

5.2.1.3 Isoline incorporation

The mesh generator can also extract isolines from a reference mesh and incorporate them into the inputboundary description. This means that a front of the normal offsetting algorithm is also started from an isolinein the same manner as from a material interface. Before inserting the line into the boundary description, it issmoothed so that the discretization of the original submesh grid is no longer visible. If no reference mesh isavailable, an octree grid is created on the fly, on which the analytic doping information is calculated.

11.45

Page 50: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW5 – Boundary-conforming meshes

5.2.1.4 Postprocessing

Four main algorithms are employed in the postprocessing step: triangulation and delaunization:

1. Triangulation is performed on the remaining polygon after generating the necessary number of layers. Quadrilaterals that are not rectangular are also divided into triangles. The user decides whether the triangulation of the remaining polygon obeys the Maximum Edge Length parameter valid in this region. In that case, inserted edges are subdivided if they are longer than twice the Maximum Edge Length parameter valid for this region. The used triangulation algorithm is ‘intelligent’ in that it constructs a good quality triangulation: the inserted edges by preference (almost) bisect the largest angle in a polygon.

2. If the parameter usebox is set, the refinement boxes defined in MESH-style are visited and edges that are too long are destroyed. The refinement is incremental and isotropic. In the same manner, large angles can be suppressed (maxangle).

NOTE Specifying angles smaller than 100 degrees can result in infinite loops.

3. In the final delaunization step, the mesh is transformed to conform to the Delaunay condition, by swapping edge and, if necessary, inserting points. Again, to preserve the normal offsetting construct, the edges to be inserted parallel to an interface are not swapped.

5.2.2 Graphical interface

The graphical interface helps the user to change the parameters that govern this mesh generator. The accessis two-fold: a global context, where algorithmic switches and default parameters can be set or modified, anda local context, where parameters can be specified per interface and per region.

5.2.2.1 Configuring NOFFSET

This dialog box is accessed by using the Mesh menu. Here, global parameters and switches for normaloffsetting generation are set (see Figure 11.53 on page 11.47). The material is grouped into three categoriesfollowing the main steps in the generation process: Boundary, NOffset, and Postprocessing. The parameterschanged here affect only those regions and interfaces where no other specifications have been set in thecommand file or in this MDRAW session. However, if the Force all button is activated, the specifications areoverwritten when committing the changes (by clicking the OK or Apply button).

Boundary The Boundary Element Size is used as a characteristic length when the boundary ispartitioned.

NOffset This list of parameters is further subdivided into two groups with regard to the areawhere they take effect: the interior of the regions or interfaces. The values for MaximumNumber of Layers, Terminate Lines, and Maximum Edge Length are defined in regions;Initial Distance and Coarsening Factor are interface parameters.

Postprocessing step If Use Refinement Boxes is selected, NOFFSET respects the MESH refinementboxes. The maxangle (100…180 degrees) and maxconnect (> 10) values are used toimprove mesh quality.

11.46

Page 51: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 5 – Boundary-conforming meshes

Figure 11.53 Dialog box to set global parameters for NOFFSET

5.2.2.2 Interface parameters

Using the Edit Interface tool, each interface can be selected and the related parameters changed in a dialogbox. Here, an interface is defined as the set of edges between two neighboring regions (this means thatparameters for all these edges are affected by this dialog box and not just for the edge selected).

The parameters that can be modified on a per-interface basis are Initial Distance and Coarsening Factor forthe normal offsetting, and the Boundary Length parameters. Since the interface has two sides, there are twocolumns for the respective parameters, one for each side. In the top line, the names of the regions/contactsindicate which column refers to which side of the interface. The second line refers to the respective materialsof each region.

If one of the neighbors of the selected edge is the exterior of the device or a contact, only one set of parametersmakes sense and, therefore, only one column is active. A pair of buttons allows the user to decide whether thisdefinition is valid only for the two particular regions, or for all interfaces which share the same pair ofmaterials.

The parameters set globally in the Configure NOffset dialog box, can be copied to this interface by clickingthe Get Default button.

11.47

Page 52: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW5 – Boundary-conforming meshes

Figure 11.54 Dialog box to set parameters at interfaces

5.2.2.3 Region parameters

This dialog box works similarly to that for Interface Parameters, except that the parameters of the normaloffsetting that are modified have meanings for an entire region. It is activated by clicking inside a region withthe Information tool.

The relevant parameters are Maximum Number of Layers, Terminate Lines, and Maximum Edge Length. Additionally,the material name is displayed next to the region name, and the user can select if the parameters apply onlyto this region or all regions of this material.

Figure 11.55 Dialog box to set parameters for a region

5.2.2.4 List of modified interfaces

The dialog boxes for local specifications can be accessed in another way. From View > List Of ModifiedInterfaces, a dialog box is displayed showing the list of edited regions or interfaces. The regions are referredto by their names, whereas the interfaces are identified by a pair of names. Selecting one line and clicking theEdit button displays the relevant dialog box described previously.

11.48

Page 53: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 5 – Boundary-conforming meshes

Figure 11.56 List of modified interfaces and regions

5.2.3 Command file syntax for NOFFSET

The parameter sets in the GUI are fully represented in the command file. The syntax used for MESH has beenextended by the block:

Offsetting {...

}

that holds all the information required for normal offsetting. The other blocks regarding definition andplacement of analytical profiles and submeshes are used to compute interpolated doping concentrations on thefinal mesh only.

NOTE Refinement sections are ignored if the switch usebox is not set.

Some algorithms (see Table 11.3) can be switched by using the syntax keyword = 0 or 1.

The parameters for the boundary grid and normal offsetting are enclosed in blocks with the keywords boundaryand noffset. These sections have two types: without arguments (they define the global parameters) and withparameters (they modify the parameters for local specification). Since arguments act as the region names(keyword region) or material names (keyword material), the blocks specifying interfaces take two names asarguments, and the blocks specifying regions take only one. The names must be enclosed in quotationmarks (" ").

Table 11.3 Algorithmic switches

Keyword Action Default

maxangle Suppresses large angles 175

maxconnect Suppresses highly connected points very large

usebox Applies MESH refinement boxes 0 (off)

11.49

Page 54: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW5 – Boundary-conforming meshes

The different cases handled are demonstrated in these examples:

To define global parameters for the boundary mesh and normal offsetting, use the sections:

noffset {...

}boundary {

...}

This section defines those parameters for the normal offsetting that are defined per region (here, "A"):

noffset region "A"{...

}

Another group of parameters for normal offsetting is defined per interface; here, for the mesh in region"A" at the interface to region "B":

noffset region "A" "B"{...

}

NOTE This definition is not symmetric in the name of the region.

However, the corresponding block for the boundary grid is symmetric:

boundary region "B" "A"{...

}

The interfaces and regions can also be accessed by their material specification. Here, the keywordmaterial is used and valid material names from the DATEX code database are needed, for example:

noffset material "Silicon" "SiO2" {...

}

The input file cannot have a reference to nonexisting region names (in the device) or nonexisting materials(the allowable material types are defined in the DATEX file). Some possible statements are valid in the syntax,but have no effect, for example, materials that are not present in the device and interface statements for regionsthat do not touch.

The isoline extraction section is implemented only in the command file. The syntax is:

isoline "NAME" {...

}

5.2.3.1 Boundary grid parameters

Table 11.4 on page 11.51 presents the parameters available in a Boundary block.

NOTE Some parameters are only effective for sections mentioned in the column validity.

11.50

Page 55: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 5 – Boundary-conforming meshes

5.2.3.2 Normal offsetting parameters

Table 11.5 presents the parameters for normal offsetting. If Initial Distance (hloc) is zero, the normaloffsetting does not start from this interface. To switch off the normal offsetting for an entire region, usemaxlevel=0. In this case, only the region is triangulated.

5.2.3.3 Isoline extraction parameters

Table 11.6 presents the parameters for the isoline extraction section. The default values are useful to extracta pn-junction in silicon.

5.2.4 Example: Meshing using the NOFFSET mesher

This example is academic, but it demonstrates the ways in which this generator can be manipulated. Thefollowing command file (which is not supplied as a part of the Examples Library) was used:

Title "example for noffset manual"

Offsetting {

#global settings:

Table 11.4 Parameters and switches in Boundary block

Keyword Meaning Validity Default

hglob Boundary length global /interface 1.0

Table 11.5 Parameters for normal offsetting

Keyword Meaning Validity Default

hloc Initial distance global/interface 0.2

factor Coarsening factor global/interface 1.3

maxlevel Maximum number of layers global/region 200

terminateline Thin out mesh lines global/region 0 (never)

maxedgelength Maximum edge length global/region MAXFLOAT

subdivide Subdivides elements global/interface 0

Table 11.6 Parameters for isoline extraction

Keyword Meaning Default

length Edge length of isoline very large

material Material from which the isoline is obtained Silicon

region Region from which the isoline is obtained -1

species Species containing the values to extract DopingConcentration

submesh Reference mesh No submesh

value Isoline value 0.0

11.51

Page 56: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW5 – Boundary-conforming meshes

boundary {hglob= 1

}noffset {

hloc= 0.2factor= 1.3terminateline= 1maxedgelength= 2

}

#per interface:noffset region "Ox" "Si" {

hloc= 0}noffset region "Si" "Exterior" {

hloc= 2factor= 1

}boundary region "Si" "Exterior" {

hglob= 2}noffset region "Si" "Ox" {

hloc= 0}}

Here, the default parameters for interfaces (Initial Distance = 0.2 and Coarsening Factor = 1.3) are only validat the surface of Ox, because all other interfaces have a specification. However, the values for Maximum Edge

Length (2.0) and the terminate line (1) have global meaning.

NOTE To suppress all normal offsetting from the interface, two noffset sections (for both sides) arerequired, where hloc is set to zero.

The boundary length (2.0) for the surface of Si differs from the global value (1.0).

Figure 11.57 Normal offsetting grid

A more realistic example and associated command files can be found in the Examples Library under Tools/Mdraw/igbt-trench, which also compares the NOFFSET-generated mesh with the mesh that is generated byusing the standard meshing engine.

11.52

Page 57: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 6 – Technical aspects

Part 11 – MDRAW

6 – Technical aspects

6.1 The datexcodes fileThe datexcodes file contains information about the materials and functions used by the ISE TCAD programs.This file is used by programs such as DESSIS and is loaded at run-time every time these applications arestarted.

The location of the datexcodes file is set by your system manager during the installation of the ISE TCADsoftware. To modify information stored in the datexcodes file, you can use your own file. To change its defaultlocation, set the environment variable DATEX to point to your own datexcodes file:

>> setenv DATEX /home/john/lib/datexcodes.txt

6.2 Valid layer descriptionsThe set of polygons that the boundary editor in MDRAW can handle as a valid layer description is a subsetof the polygons a standard drawing program can handle. The restrictions to the polygons are:

Only simple polygons are allowed.

A polygon is simple if there is no pair of nonconsecutive edges sharing a point. A single-connectedpolygon is described using a single closed line. To describe a hole in a polygon, it is necessary to connectthe hole with a double line to the polygon.

Figure 11.58 Simple and nonsimple polygons

Figure 11.59 Single-connected and nonsingle-connected polygons

No polygon can overlap another one.

Using simple polygons, the algorithms in MDRAW are simpler, faster, and more reliable than usingnonsimple polygons.

Single-connected Nonsingle-connected

11.53

Page 58: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW6 – Technical aspects

6.3 Mesh refinement algorithmThe mesh refinement algorithm in MDRAW uses a rectangular grid generation approach. In this approach,the elements to refine are always rectangles. MDRAW starts the mesh refinement from a rectangle enclosingthe device. It proceeds to divide this rectangle into subrectangles until it reaches to the desired resolution. Themesh refinement algorithm is described here.

6.3.1 Constructing an initial grid

The basic structure can be represented as a binary tree and can fit any complex geometry. The initial grid isbuilt through a binary and recursive division of the device bounding box.

The cut points are defined by some heuristics. The division stops when each boundary edge is contained in anelemental box as a diagonal or in one side of this box, except under problematic conditions (see Figure 11.60).

Figure 11.60 Two edges in an elemental box (a) and possible cut points (b)

Various strategies can be applied to construct the initial grid. We use a set of heuristics to select the point forbinary division. These heuristics are:

Isolate complicated boundariesTypically, complex geometries are not silicon layers, but layers on top of the device (oxide, polysilicon,and so on).

Consider the aspect ratio of the elementsThe aim is to avoid generating bad elements. If there are many orientations available to perform therefinement, select the one giving the best aspect ratio.

Consider existing cut pointsConsider as cut points: intersections with the boundary (points a in Figure 11.60 (b)), points inserted byneighboring (points b), and midpoints of the box sides (points c). The best point is the one that producesthe best aspect ratio for the generated rectangles and cuts a minimum number of oblique boundary edges.

6.3.2 Adequate adaptation to user input

MDRAW handles n-connected elements. This means that each element can have more than one neighboringelement in the course of the refinement. The nonvertex points along the perimeter of the n-connected elementsare called green points. Every n-connected rectangle is solved in the last step of the refinement.

In the adaptation step, a rectangle is refined if it fulfills certain user-defined criteria. The user can set themaximum and minimum size of the rectangles by defining refinement areas (see Chapter 4 on page 11.27).

11.54

Page 59: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 6 – Technical aspects

MDRAW provides a set of default refinement parameters for the entire device. These parameters can beinspected and changed using the doping editor available in MDRAW.

Since two or more refinement areas may overlap the rectangle that is to be refined, MDRAW must apply somecriteria in order to obtain the corresponding values from the overlapping refinement zones.

In case of overlapping refinement zones, the criteria to apply are:

1. For the minimum element width, minimum element height, maximum element width, and maximum element height criteria, MDRAW takes the minimum value defined in the overlapping refinement areas.

2. For the doping distribution, MDRAW takes the criteria from the last refinement area containing doping criteria defined by the user.

During the adaptation, a rectangle is refined into two equally sized and shaped rectangles unless it has somegreen point along the perimeter. If the rectangle has a green point, it is cut at the point that results in the bestaspect ratio for the two new rectangles.

6.3.3 Template management

The final step is the handling of the green points along the perimeter of the n-connected elements. For thispurpose, we use several templates that match a triangulation of the n-connected rectangle (see Figure 11.61).While these templates may generate new green points in a neighboring element, the overall number of greenpoints is reduced, in general. By inserting fewer points, the overall number of unhandled green pointsdecreases.

This algorithm is especially useful in the solution of problematic cases in the boundary, for example, in Figure 11.61 (d), since the newly inserted point avoids excessive refinement.

An algorithm detects sections of the rectangle to refine that lie outside the device external boundaries. If wedetect that a certain rectangle has a section outside the boundary, then the refinement can be much simpler byrelaxing the obtuse angle condition in zones lying outside the device (see Figure 11.62). Additionally, we canavoid the propagation of new points. In Figure 11.61, the ‘new green point’ is inserted in (d) only.

Figure 11.61 Different templates

If no template can be found that can triangulate the rectangle without generating obtuse angles, the elementis divided by cutting in the green point that allows the best aspect ratios to be obtained for the new elements.

Figure 11.62 Templates able to solve boundary problems

11.55

Page 60: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW6 – Technical aspects

This algorithm has advantages since we can obtain meshes that are free of obtuse angles, even for verycomplex devices. The only problem arises when the device has a nearly vertical or nearly horizontal edge.Since the rectangles used are axis oriented, MDRAW can produce an excessive refinement around nearlyvertical or horizontal edges. In a few cases, it is unable to produce any reasonable mesh and continues refiningwithout stopping. To avoid this problem, we recommend the use of the smoothing functions of the BoundaryEditor.

6.4 XWindows compatibilityMDRAW uses XWindows 11 Release 6 and Motif® version 1.2.4 (depending on the architecture) toimplement its GUI. It should run under any platform using an X11 server release 6 or later.

It is probable that MDRAW will run on a machine using an X11 server release 4 or earlier. However,compatibility problems have been detected on SPARC machines running Sun OS4 and the xnews XServerusing OPEN LOOK. The problem causes the XServer to crash immediately after starting MDRAW. If thisoccurs, order the patch 100444-66 or higher from Sun Microsystems.

For this reason, ISE recommends the use of the latest X11 server release available for your machine. MDRAWshould be able to run on any XWindows display, including black and white displays. On black and whiteXWindows displays, MDRAW emulates colors using a set of patterns to show the doping functions.

On color windows, it uses the colors available on the screen. It does not create a private set of colors. For thisreason, do not use MDRAW with another application using a large set of shared colors. Otherwise, MDRAWis unable to display all the colors it needs.

6.5 PostScript outputMDRAW can generate PostScript outputs of the drawing window. The generated PostScript file should becompatible with any PostScript printer.

To generate PostScript output:

1. File > Print.

2. Browse through the directory list and select the directory where you want to store the PostScript file, and type a file name in the text box.

3. Click OK.A PostScript file with the contents of the drawing window is saved. For black and white displays, MDRAW replaces every texture with an RGB color.

6.6 External doping file formatsMDRAW accepts several file formats as input to specify doping profiles. In 1D analytical doping profiles, thevalid format is a modified XGRAPH file. Files containing 2D doping information must use the DATEX dataexchange format (see DATEX documentation). To include a SUPREM-IV data file as an external dopingprofile, use the program interfise with the -tma2ise option. Interfise -tma2ise converts SUPREM-IV files tothe DATEX format.

11.56

Page 61: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 6 – Technical aspects

6.7 Generating output filesMDRAW usually generates a file containing geometric information and a file containing doping data, calledfile_mdr.grd and file_mdr.dat, respectively. MDRAW can also write some other files coming from an externaldoping definition. The contents of these files are extrapolated data from the external doping data file (seeSection 4.2.5 on page 11.32).

6.8 Command-line options for MDRAW

-largeFont string Set the large font of the application to string.

-mediumFont string Set the medium font of the application to string.

-smallFont string Set the small font of the application to string.

-bg color Set the background color of the application.

-fg color Set the default foreground color of the application.

-help Show this message.

-L Enable the log file execution mode.

-logFile FileName Record MDRAW actions in a temporary log file named FileName.

-M Enable MESH execution mode. MESH is executed in batch mode. The option ‘non-obtuse angle’ is the default. For valid MESH command-line options, refer to the MESH manual or type mdraw -M -h.

-noloadCmd Do not load the .cmd file at start-up time.

-lineWidth width Set the main window line width.

-exactCoord Enable the ‘exact coordinates’ mode.

-noequalScale Disable the ‘equal scales’ mode.

-displayPalette Display the palette in the mesh mode.

-hideRulers Hide the rulers.

-withoutProfiles Disable the use of profiles.

-triangulate Triangulate the final mesh.

-numDecimals value Round coordinate values while reading or writing the boundary file. Default is 5.

-delaunayMesh Generate conforming Delaunay meshes.

-shrink Equivalent to option -S in MESH.

-rounding-off Disable rounding of boundary points for mesh generation. Option not available in GUI.

-extract Extract boundary description of regions selected in the command file.

-noffset Use boundary-conforming mesh generator, NOffset.

-AllActive Convert total concentrations to active (default).

11.57

Page 62: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW6 – Technical aspects

-AllTotal Convert total concentrations to active.

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

-discontinuousData Write discontinuous datasets.

-v Print the version number.

11.58

Page 63: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 7 – Doping profile description

Part 11 – MDRAW

7 – Doping profile description

7.1 OverviewMDRAW implements a complete set of analytical models to describe a wide range of different situations.Analytical profiles are implemented to provide a flexible tool to simulate process simulation results with easeand within a reasonable time.

Due to the wide spectrum of functions to be considered, this chapter is organized as follows:

Section 7.2 introduces the general concepts.

Section 7.3 on page 11.63 describes the profile functions along the primary direction.

Section 7.4 on page 11.66 describes the profile functions along the lateral diffusion direction.

Section 7.5 on page 11.67 describes the lifetimes as special cases.

7.2 General conceptsIn general terms, diffusion and ion implantations can be represented by a set of 1D and 2D analytical models.

To describe each of the analytical models, we define two main directions: the primary direction, which isperpendicular to the reference region, and the lateral direction, which is parallel to the region.

A proper combination of the primary and lateral functions defines the concentration.

7.2.1 Local coordinate systems, valid domains, and implantation surfaces

The valid domain for the analytical models depends on the reference region. This reference region is definedusing a dimension-dependent geometric element along the lateral direction. By combining the implantationregion and primary direction, it is possible to define a local coordinate system for each analytical function.

7.2.1.1 Local coordinate system for 1D doping profiles

One-dimensional profiles require the definition of only the primary function. The primary direction is definedusing a 1D vector. This vector defines the reference region of the profile (in this case, a point), and the primarydirection (see Figure 11.63).

Figure 11.63 Primary direction in 1D

Reference Point

Valid Domain and Direction

11.59

Page 64: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW7 – Doping profile description

7.2.1.2 Local coordinate system for 2D doping profiles

In 2D profiles, the reference region is defined using baseline. The primary direction is the vector normal tothis baseline and the lateral direction goes along this baseline. Figure 11.64 shows a general scheme of thelocal system and valid domain. The valid domain for both primary and lateral functions is defined bysweeping the primary direction vector along the lateral direction.

Figure 11.64 Primary and lateral directions in 2D

7.2.2 General implantation models

In general terms, impurity concentrations can be expressed as:

[Eq. 11.1]

where:

f( ) represents the lateral diffusion function in the local coordinate system.

g( ) represents the primary diffusion function in the local coordinate system.

The most important functions to be used as diffusion models are Gaussian and error functions.

Each model can be defined by a minimal set of parameters. This section presents a basic formulation of everymodel, using this minimal set of parameters. The next sections show how to obtain this minimal set fromdifferent inputs or initial conditions.

Reference Line orBaseline

Lateral Direction

Lateral Direction

Lateral DomainPrimary Domain

y

x

doping ∆P ∆I,( ) f ∆I( ) g⋅ ∆P( )=

∆I

∆P

11.60

Page 65: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 7 – Doping profile description

7.2.2.1 General Gaussian function

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

1. Peak Concentration ( ) in cm–3.

2. Peak position ( ) in µm.

3. Diffusion Length (diffLengthy) or Standard Deviation ( ), both in µm.

Using these parameters, impurity concentrations are defined as:

[Eq. 11.2]

Figure 11.65 shows this model schematically.

Figure 11.65 General shape of Gaussian functions

7.2.2.2 General error function

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

1. Maximum Concentration ( ) in cm–3.

2. Inflection position ( ) in µm.

3. Standard deviation ( ) in µm.

[Eq. 11.3]

Cpeak

ypeak

stdDevy

g y( ) Cpeak12---–

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

2⋅

exp⋅=

0 2 4 6 10

2

4

6

8

10

Concentration(y)

[cm-3]

y value

[um]

yPeak

Cpeak

Cpeak * exp(-1)

diffLength

8

Cmax

yin

stdDevy

g y( )Cmax

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

yin y–stdDevy--------------------+

⋅=

11.61

Page 66: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW7 – Doping profile description

This function is symmetric with respect to the inflection point. Figure 11.66 shows this feature.

Figure 11.66 General shape of error functions

7.2.3 Other parameters of interest

There are some special parameters to be considered in order to have flexible models. These parameters arenot included in the standard formulation but, applying some definitions, the basic set can be obtained fromthem.

7.2.3.1 Dose

From the process simulation point of view, implantation functions are determined giving the doseconcentration. Therefore, a flexible model should allow doping profile representations given a Dose.

The peak concentration value can be obtained from the Dose (see Section 7.3 on page 11.63).

The general definition of Dose is:

[Eq. 11.4]

For Gaussian functions, the Dose is represented as:

[Eq. 11.5]

[Eq. 11.6]

For error functions, the Dose is defined as:

[Eq. 11.7]

0 2 4 6 8 10

2

4

6

8

10

Concentration(y)

[cm-3]

y value

[um]

Cmax

Cmax/2

yIn

Dose g y( ) yd0

∫=

Dose Cpeak12---–

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

2⋅

exp⋅ yd0

∫=

DoseCpeak π stdDevy⋅ ⋅

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

ypeak

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

⋅=

DoseCmax

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

yin y–stdDevy--------------------+

⋅ yd0

∫=

11.62

Page 67: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 7 – Doping profile description

[Eq. 11.8]

NOTE Dose is given in atoms per cm–2.

7.2.3.2 Values at the junction

Junction, Concentration, and Depth are known parameters to define either Gaussian or error functions. Acomplete description of these parameters and how they can replace the standard deviation in the basicformulation is provided in Section 7.3.

7.2.3.3 Diffusion length

For Gaussian functions, the Diffusion Length represents the distance between the peak position and a placewhere the concentration decays in a factor of exp(-1) (36%) with respect to the peak concentration (seeFigure 11.65 on page 11.61).

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

[Eq. 11.9]

7.3 Available models along primary diffusion directionThere are four available models in MDRAW to apply along the primary diffusion direction: Gaussianfunction, error function, constant function, and external 1D doping profile.

7.3.1 Gaussian functions

The basic set for Gaussian functions is formed by Cpeak, ypeak, and stdDevy. According to the input givenby the user, the basic set of parameters can be fulfilled in six different ways. The difference lies in theparameters given to calculate Cpeak and stdDevy. The cases are as follows.

Peak Concentration and Standard Deviation are given

The basic set is complete, and there are no basic parameters to compute.

Peak Concentration and Diffusion Length are given

Standard Deviation is computed from the Diffusion Length using:

[Eq. 11.10]

DoseCmax stdDevy⋅

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

yinstdDevy-------------------- 1 erf

yinstdDevy-------------------- + 1

π-------

yinstdDevy--------------------

2–exp⋅+⋅

⋅=

diffLengthy 2 stdDevy⋅=

stdDevydiffLengthy

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

11.63

Page 68: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW7 – Doping profile description

Dose and Standard Deviation are given

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

[Eq. 11.11]

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

Dose and Diffusion Length are given

Given Dose and Diffusion Length, the Standard Deviation is computed from [Eq. 11.10] and the PeakConcentration is computed from [Eq. 11.11].

Peak Concentration and Values at the Junction are given

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

[Eq. 11.12]

NOTE Cpeak must be greater than CatDepth.

Dose and Values at the Junction are given

As a first step, Standard Deviation is computed from:

[Eq. 11.13]

As a second step, and given stdDevy from the previous equation, Peak Concentration is computed as in C.

NOTE The previous equation is an implicit equation.

7.3.2 Error functions

For error functions, there are the same four cases to set up the basic set of parameters. For error functions, theset comprises Cmax, yjn, and stdDevy.

Maximum Concentration and Standard Deviation are given

The basic set is complete; there are no parameters to compute.

CpeakDose factor⋅

2 π⋅ stdDevy 1 erfypeak

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

⋅ ⋅

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

stdDevyydepth ypeak–

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

ydepth 2 π⋅ stdDevy⋅ ⋅Dose

----------------------------------------------------------- 12---

ydepth ypeak–stdDevy

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

⋅– exp=

11.64

Page 69: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 7 – Doping profile description

Dose and Standard Deviation are given

Maximum Concentration is computed from Dose using:

[Eq. 11.14]

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

Maximum Concentration and Values at the Junction are given

Standard Deviation can be computed as follows:

[Eq. 11.15]

NOTE The previous equation is an implicit equation.

Dose and Values at the Junction

Maximum Concentration and Standard Deviation are computed using the following implicit equations. Thoseequations are the result of the following equations:

[Eq. 11.16]

[Eq. 11.17]

NOTE The previous equations are implicit equations.

7.3.3 Constant functions

Constant functions are useful to define substrate doping. Mathematically:

[Eq. 11.18]

7.3.4 External 1D profile

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

Cmax2 Dose⋅stdDevy-------------------- factor

yinstdDevy-------------------- 1 erf

yinstdDevy-------------------- + 1

π-------

yinstdDevy--------------------

2–exp⋅+⋅

1–

⋅ ⋅=

erfyin ydepth–

stdDevy--------------------------- 2 CatDepth⋅

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

Dose factor 1 erfyin ydepth–

stdDevy---------------------------+

⋅ ⋅ CatDepth stdDevy

yinstdDevy-------------------- 1 erf

yinstdDevy-------------------- + 1

π-------

yinstdDevy--------------------

2–exp⋅+⋅

⋅ ⋅=

Cmax2 Dose⋅stdDevy-------------------- factor

yinstdDevy-------------------- 1 erf

yinstdDevy-------------------- +⋅ 1

π-------

yinstdDevy--------------------

2–exp⋅+

1–

=

g y( ) Constant=

11.65

Page 70: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW7 – Doping profile description

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 6 on page 11.53). Thesefunctions define linear, arsinh, or logarithmic interpolations to apply between two given values.

Let h = function to interpolate. The criterion to evaluate any point in an external 1D profile is:

[Eq. 11.19]

7.4 Lateral functionsThe lateral functions are defined as the decay along the lateral diffusion direction. They depend on thedistance from the valid primary domain of the point to evaluate. For 2D, this distance is calculated using thebaseline as reference.

The three available models to apply are:

Gaussian function

Error function

No function

7.4.1 Lateral or decay Gaussian function

The equation applied is:

[Eq. 11.20]

where:

[Eq. 11.21]

[Eq. 11.22]

NOTE When using this function, the decay begins outside the primary domain, that is, the overlap betweenprimary and lateral domains is zero. Figure 11.67 shows this effect.

Figure 11.67 Using Gaussian function as lateral diffusion

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+< <

=

f x( ) 12---

xclosestP x–stdDevx

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

⋅– exp=

stdDevx lateralFactor stdDevy⋅=

lateralDiffLength stdDevx 2⋅=

baseline (window mask)

11.66

Page 71: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 7 – Doping profile description

7.4.2 Lateral error function

The equation applied is:

[Eq. 11.23]

NOTE For this model, the overlap of primary and lateral domains is not zero. The lateral diffusion startsinside the primary domain.

Figure 11.68 Using error function as lateral diffusion

7.4.3 No lateral function

This property is valid when lateralFactor is equal to zero. For this case, the value of the lateral function isgiven by the expression:

[Eq. 11.24]

For this case, the lateral domain is null.

7.5 Special cases

7.5.1 Lifetime profiles for electrons and holes

In general, lifetime profiles can also be defined using the equations presented in previous sections. However,for primary diffusion functions, [Eq. 11.2] and [Eq. 11.3] cannot be applied directly. [Eq. 11.25], [Eq. 11.26],and [Eq. 11.27] show the correct expressions to use.

For Gaussian functions:

[Eq. 11.25]

f x( ) 12--- 1 erf

xclosestP x–stdDevx

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

baseline (window mask)

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

=

g y( ) 1Lifepeak-------------------- 1

2---–

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

2⋅

exp⋅=

11.67

Page 72: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW7 – Doping profile description

For error functions:

[Eq. 11.26]

For constant functions:

[Eq. 11.27]

g y( ) 12 Lifemax⋅-------------------------- 1 erf

yin y–stdDevy--------------------+

⋅=

g y( ) 1Lifeconst---------------------=

11.68

Page 73: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 8 – Tcl scripting interface

Part 11 – MDRAW

8 – Tcl scripting interface

8.1 OverviewThis chapter describes the scripting interface of MDRAW. The MDRAW API functions available for scriptingpurposes reproduce most of the functionality of the device and doping editor of MDRAW. Using thesefunctions, new devices can be created from scratch, regions can be added or removed, and devices can besimplified automatically. Additionally, support for doping and refinement inclusion has been added to help tocreate applications using a single Tcl script [4].

8.2 ExecutionThe Tcl scripting interface can be invoked using the option -L and the script name mdraw -L tcl_script_name.

8.3 Scripting language syntaxThe syntax of the MDRAW scripting follows the Tcl language syntax. (Actually, the MDRAW API functionsare provided as an extension to the Tcl language.) A good starting point is to first create or edit a device usingthe MDRAW GUI, and then save the log file for scripting purposes.

Tcl allows the use of variables as parameters and it also allows the use of control flows and procedures. In thisway, parametric scripts can be written to create boundary files for optimization purposes.

8.4 Data typesThe following data types can be used as arguments for the MDRAW API functions:

String A sequence of characters enclosed in quotation marks (for example, "f1.bnd")

Int An integer number

Float A double precision number

Point A pair of float numbers separated by spaces

PointList A group of point types separated by spaces

FileFormat Either BOUND_FORMAT or DFISE_FORMAT

Bool 0 or 1

Mat/reg $MATERIAL or $REGION

11.69

Page 74: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW8 – Tcl scripting interface

8.5 MDRAW API functions

8.5.1 File management

IncludeBndFile String fileName Point point

Inserts the file specified by fileName at the given point. The function will do nothing if the includeddevice section overlaps the current device.

IncludeCmdFile String fileName

Adds the contents of the file specified by fileName to the current data and refinement functions.

NewBndFile

Creates an empty device.

OpenBndFile String fileName

Opens the boundary file fileName containing the device description.

OpenCmdFile String fileName

Loads the command file specified by fileName.

Save2DCut String fileName Point p1 Point p2 FileFormat format

Saves the device section specified by the points p1 and p2 in a file specified by fileName and the formatparameter.

Save3DCut String fileName Point p1 Point p2 Float z1 Float z2 FileFormat format

The rectangular device section specified by p1 and p2 is extruded from z1 to z2 and saved under fileNameusing the specified format.

SaveBndFile

Saves the current device structure. Nothing is done if a name is already defined (for example, by thefunction OpenBndFile).

SaveBndFileAs String fileName FileFormat format

Saves the device structure into the file specified by fileName using the format specified by format.

SaveCmdFileAs String baseName

Saves a command file baseName.cmd.

11.70

Page 75: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 8 – Tcl scripting interface

8.5.2 Object creation

AddClosedMultiline PointList polygon String newMaterial

Adds a closed multiline specified by polygon. The multiline may cut several regions of the device at thesame time. If some section of the multiline is outside the device, a new material specified by newMaterialis added.

AddMultiline PointList polygon String newMaterial

Adds a multiline specified by polygon. The multiline may cut several regions of the device at the sametime. If some section of the multiline is outside the device, a new material specified by newMaterial isadded.

AddPoint Point point

Adds a point at the nearest edges found in the device.

AddRectangularRegion Point p1 Point p2 String material

Adds a rectangular region specified by p1 and p2. The material of the new region is specified by material.The region is added only if the resulting structure does not contain overlapping edges.

AddTriangularRegion Point p1 Point p2 Point p3 String material

Adds a triangular region specified by the three vertices p1, p2, and p3. The material of the new region isspecified by material. The region is added only if the resulting structure does not contain overlappingedges.

AddPolygonalRegion Point p1 …

Adds a polygon to the device.

HorizontalCut Float y

Inserts a horizontal line across the device at the coordinate specified by y.

VerticalCut Float x

Inserts a vertical line across the device at the coordinate specified by x.

8.5.3 Object elimination

DeleteRegion String regionName

Removes the region specified by regionName.

DeleteLine Point point

Deletes the closest line to point. The line is removed only if the two materials sharing the line are thesame.

DeletePoint Point point

Removes the point from the device structure. The point is removed only if the resulting structure does notcontain overlapping edges.

11.71

Page 76: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW8 – Tcl scripting interface

DeletePoints Point p1 Point p2

Removes the points enclosed by the rectangle defined by p1 and p2 from the device structure. The pointsare removed only if the resulting structure does not contain overlapping edges.

DeleteSelectedPoints

Removes the selected points from the device structure. The points are removed only if the resultingstructure does not contain overlapping edges.

8.5.4 Point selectionSelectAll

Selects all points.

SelectPoints Point p1 Point p2

Selects the points enclosed by the rectangle defined by p1 and p2.

8.5.5 Boundary modification

ChangeMaterial String regionName String newMaterial

Sets the material of region regionName to newMaterial. The material names can be found in the filedatexcodes.txt.

MovePoint Point src Point dest

Moves the point at src to the location defined by dest. The point is moved only if the resulting structuredoes not contain overlapping edges.

MoveSelectedPoints Point shiftVector

Moves the selected points in the direction specified by shiftVector. The points are moved only if theresulting structure does not contain overlapping edges.

Redo

Reverts the last undo operation.

ReflectX

Reflects the selected points around the vertical coordinate axis. The action is performed only if theresulting structure does not contain overlapping edges.

ReflectY

Reflects the selected points around the horizontal coordinate axis. The action is performed only if theresulting structure does not contain overlapping edges.

SnapToGrid Float gridSizeX Float gridSizeY

Snaps the device points to an imaginary background grid of size gridSizeX and gridSizeY.

11.72

Page 77: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 8 – Tcl scripting interface

SetRegionName String oldName String newName

Changes the name of region oldName to newName.

SetRegionNameByPoint Point point String Name

Changes the name of the region that contains point to Name.

Undo

Reverts the result of the last successful function call.

8.5.6 Handling contacts

AddContact String contactName

Adds an empty contact of name contactName.

MakeContact String regionName

Adds to the active region the border of the specified region. The region is removed.

SetActiveContact String contactName

Sets the active contact to contactName.

SwitchContactEdge Point point

Adds to (removes from) the active contact the closest edge to point.

SwitchContactRegion Point point

Adds to the active contact the border of the region containing point.

8.5.7 Boundary simplification

BreakSmallAngles Float minAngle

Breaks all nearly horizontal/vertical lines that define an angle smaller than minAngle. The action isperformed only if the resulting structure does not contain overlapping edges.

HorizontalAlignment Float coord

Aligns the selected points along a horizontal line specified by the coordinate coord. The action isperformed only if the resulting structure does not contain overlapping edges.

RemoveDeviatedPoints Float minDeviation

From the selected set of points, this function takes the ones shared by two edges. Then, it computes thedistance from each point to the line defined by the neighboring points. If the distance is smaller thatminDeviation, the point is eliminated. The action is performed only if the resulting structure does notcontain overlapping edges.

11.73

Page 78: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW8 – Tcl scripting interface

RemoveShortEdges Float shortestEdge

Removes all edges shorter than the specified value. The action is performed only if the resulting structuredoes not contain overlapping edges.

VerticalAlignment Float coord

Aligns the selected points along a vertical line specified by the coordinate coord. The action is performedonly if the resulting structure does not contain overlapping edges.

8.5.8 Data and refinement functions

AddSubMesh String name String gridName String dataName

Reads the mesh files specified by gridName and dataName. The profile name is created.

BuildMesh

Builds a mesh based on the current device description.

RemoveData

Removes all data description from the memory.

SaveMesh String baseName

Saves the mesh under baseName_mdr.grd and baseName_mdr.dat.

SetSubMeshWindow String name Point p1 Point p2 Float decayValue

Assigns an evaluation window to the subMesh name.

ShiftSubMesh String name Point shiftVector

The subMesh name is shifted in the amount specified by shiftVector.

StretchRefinement Float cutPoint Float extension

Extends the refinement descriptions at cutPoint in the amount specified by extension. The extension valuemust be positive.

8.5.9 Defining meshing options

MeshingAlgorithm Int method Bool profile Bool simplex

MeshingAlgorithm allows changes to the meshing parameters. The functions follow the behavior of theMesh Setup window of MDRAW. method can be set as MESHISE or NOFFSET (1, 2). profile defines whetherto include doping; it can be set to NOPROFILE or WITHPROFILE (0 or 1). simplex defines whether to triangulatethe mesh or allow quadrilateral elements in the final mesh; it can be set to DONOTTRIANGULATE or TRIANGULATE(0 or 1).

11.74

Page 79: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 8 – Tcl scripting interface

8.5.10 NOFFSET

NoffsetConfigBoundary Bool boundary Float hglob

Sets the global parameters for NOFFSET boundary meshing. If ‘boundary’ is nonzero, the boundary ismeshed with the mesh size of ‘hglob.’

NoffsetConfigRegion Int maxlayers Int terminateline Float maxedglength

Sets the global parameters valid for regions. maxlayers is the maximum number of layers allowed andmaxedglength is the longest edge length allowed in all algorithms. The parameter terminateline controlsthe local warped tensor grid at interfaces.

NoffsetConfigInterface Float hloc Float factor Int subdivide

Sets normal offsetting parameters valid for interfaces.

NoffsetConfigPostProcess Bool usebox Float maxangle Float maxconnect

Sets parameters for postprocessing algorithms. MESH refinement boxes are used if ‘usebox’ is set. Themaximum angle (> 100o) and maximum number of edges incident to one point are enforced by furtherrefinement.

NoffsetBoundary Mat/reg Material String name1 String name2 Float hglob

Sets local parameter for boundary grid at interface name1–name2. The switch ‘Material’ defines whetherregion names or material names are used in the argument list.

NoffsetRegion Mat/reg Material String name1 Float maxedglength Int maxlevel Int terminateline

Sets local parameters for normal offsetting valid in a region ‘name1.’ The switch ‘Material’ defineswhether region names or material names are used in the argument list.

NoffsetInterface Mat/reg Material String name1 String name2 Float hloc Float factor Int subdivide

Sets local parameters for normal offsetting valid at interface name1-name2. The switch ‘Material’ defineswhether region names or material names are used in the argument list.

NoffsetAddIsoline String name String material Float value String species String submesh-source Float length

Adds isoline with ‘name’ name in material ‘material.’ The ‘value’ of the dataset ‘species’ is computedwith the resolution ‘length.’ If submesh-source is not empty, the respective submesh is used to computethe isoline. Otherwise, an auxiliary mesh is created automatically.

8.5.11 Doping and refinement functions

AddConstantProfile String profile_name Float concentration String species Point p1 Point p2 Floatdecay_factor String option

Adds a constant profile doping to the current model.

Add1DAnalyticalProfile String profile_name Point p1 Point p2 String 1d_profile_name Float scale Floatfrom_x Float to_x String lateral_diffusion Float lateral_factor String option_1 String option_2 Stringoption_3

Adds a 1D analytical profile, defined by an XGRAPH file, to the current model.

11.75

Page 80: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW8 – Tcl scripting interface

Add2DAnalyticalProfile String profile_name String function_type String species Point p1 Point p2 Stringlateral_diffusion Float lateral_factor String Concentration1 Float c11 Float c12 String Concentration2 Floatc21 Float c22 String option_1 String option_2 String option_3

Adds a 2D analytical profile to the current model.

Add2DMultibox String multibox_name Point p1 Point p2 Float max_width Float max_height Float min_widthFloat min_height Float ratio_width Float ratio_height

Adds a 2D multibox to the current model.

Add2DRefinementBox String refinementbox_name Point p1 Point p2 Float max_width Float max_heigh Floatmin_width Float min_height Int n String reftype_i String species_i Float refvalue_i

Adds a refinement box, named refinementbox_name to the device. The refinement box is defined by itscorner points p1 and p2. The minimum and maximum element sizes are defined by max_width,max_height, min_width, and min_height in the x and y directions, respectively.

The refinement box can include additional refinement functions. The variable species can be any of thestandard species. The refinement can be based on either value difference or gradient (reftype), the variablerefValue contains the actual value on which the refinement is based.

AddSubMesh String submesh_name String geometry_file_name n String data_file_name String datafileflagPoint p1 Point p2 Float decay_factor Float shift_x Float shift_y String reflect_x String reflect_y Float rotateString replace

Adds a subMesh to the current model.

8.5.12 Examples of using API functions

AddConstantProfile profile_name concentration species x0 y0 x1 y1 decay_factor option_1profile_name = char* // name of the constant profileconcentration = double // Concentration value of the constant functionspecies = char* // name of the speciesx0 = double // x_miny0 = double // y_minx1 = double // x_maxy1 = double // y_max

Where (x_min, y_min) and (x_max and y_max) are the diagonal vertices of therectangle where the constant profile is defined.

decay_factor = double // decay error function valueoption_1 = char* // replace?profile_name = { Any valid string. }species = { "BoronActiveConcentration", "ArsenicActiveConcentration", ... }

Can be any species that is defined in the DF-ISE dataset files.x0, y0, x1, y1 = defines the baseline of the 2D doping profile.decay_factor = valueoption_1 = {"FALSE", "TRUE"}

"FALSE" is the default mdraw setting (Replace button is turned off)"TRUE" Replace button is turned on(Same as the Replace string on the cmd file)

11.76

Page 81: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 8 – Tcl scripting interface

Example using AddConstantProfile-cmd file:

Definitions {# Refinement regions# Profiles Constant "Profile_1" {

Species = "BoronActiveConcentration"Value = 1e+18

}}Placements {

# Refinement regions# ProfilesConstant "Profile_1" {

Reference = "Profile_1"EvaluateWindow {

Element = rectangle [( -10 0 ) , ( -10 0 )]DecayLength = 1.5

}}

}

-Tcl script function:AddConstantProfile "Profile_1" 1e+18 "BoronActiveConcentration" -10 0 -10 0 1.5 "FALSE"

Add1DAnalyticalProfile "profile_name" x0 y0 x1 y1 "1d_profile_name" scale from_x to_x "lateral_diffusion" "lateral_factor" "option_1" "option_2" "option_3"profile_name = char* // name of the analytical profilex0 = double // baseline x_miny0 = double // baseline y_minx1 = double // baseline x_maxy1 = double // baseline y_max1d_profile_name = char* // filename of the included 1D analytical profile

(using full path and file extension)scale = double // scaling factor for the 1D profilefrom_x = double // included profile range startto_x = double // included profile range endlateral_diffusion = char* // name of the lateral diffusion profilelateral_factor = double // lateral factoroption_1 = char* // evaluate both sides of baseline ?option_2 = char* // replace ?option_3 = char* // not evaluate baseline ?profile_name = { Any valid string. }x0, y0, x1, y1 = defines the baseline of the 2D doping profile.1d_profile_name = name of the included 1D external profile, using full path

and extension.The curve is a file in the xgraph format

scale = scaling factor for the curve (multiple by 0.001 for Nanometers)from_x = starting coordinate from the file (in the file coordinate system)to_x = ending coordinate from the file (in the file coordinate system)lateral_diffusion = { "Gauss", "Erf" }lateral_factor= valueoption_1 = {"TRUE", "Positive", "Negative"}

"TRUE" is the same as the default mdraw setting"Positive" -> Direction = positive in the cmd file"Negative" -> Direction = negative in the cmd file

option_2 = {"FALSE", "TRUE"}"FALSE" is the default mdraw setting (Replace button is turned off)"TRUE" Replace button is turned on -> Same as the Replace string onthe cmd file

11.77

Page 82: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW8 – Tcl scripting interface

option_3 = {"FALSE", "TRUE"}"FALSE" is the default mdraw setting(Not Evaluate Baseline button is turned off)"TRUE" Not Evaluate Baseline button is turned on(Same as the notevalline string on the cmd file.)

Example using Add1DAnalyticalProfilecmd file:

Definitions {# ProfilesAnalyticalProfile "Profile_1" {

Function = subMesh1D(datafile = "ex_1d.dat", Scale = 1, Range = line [( 0 0 ) , ( 3 0 )] )LateralFunction = Erf(Factor = 0.8)

}}Placements {

# Profiles AnalyticalProfile "Profile_1" {

Reference = "Profile_1"ReferenceElement {

Element = line [( -10 -10 ) , ( 0 0 )]}

}}

Tcl script function:Add1DAnalyticalProfile "Profile_1" -10 0 -10 0 "ex_1d.dat" 1.0 0.0 3.0 Gauss 0.8 "TRUE" "FALSE" "FALSE"

Add2DAnalyticalProfile "profile_name" "function_type" "species" x0 y0 x1 y1 "lateral_diffusion" "lateral_factor" "Concentration1" c11 c12 "Concentration2" c21 c22 "option_1" "option_2" "option_3"profile_name = char* // name of the analytical profilefunction_type = char* // name of the primary functionspecies = char* // name of the speciesx0 = double // baseline x_miny0 = double // baseline y_minx1 = double // baseline x_maxy1 = double // baseline y_maxlateral_diffusion = char* // name of the lateral diffusion profilelateral_factor = double // lateral factorConcentration1 = char* // concentration type1c11 = double // value associated with Concentration1c12 = double // value associated with Concentration1Concentration2 = char* // concentration type2c21 = double // value associated with Concentration2c22 = double // value associated with Concentration2option_1 = char* // evaluate both sides of baseline ?option_2 = char* // replace ?option_3 = char* // not evaluate baseline ?profile_name = { Any valid string. }function_type = { "Gauss", "Erf" }species = { "BoronActiveConcentration", "ArsenicActiveConcentration", ... }

Can be any species that is defined in the DF-ISE dataset files.x0, y0, x1, y1 = defines the baseline of the 2D doping profile.lateral_diffusion = { "Gauss", "Erf" }lateral_factor = valueConcentration1 = { "Peak", "Dose" }if function_type = "Gauss"

{ "MaxConc", "Dose" }if function_type = "Erf"c11 = Peak Value (PeakVal)if Concentration1 = "Peak"

and function_type = "Gauss"= Dose (Dose)if Concentration1 = "Dose"

11.78

Page 83: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 8 – Tcl scripting interface

and function_type = "Gauss"= MaxValue (MaxVal)if Concentration1 = "MaxConc"

and function_type = "Erf"= Dose (Dose)if Concentration1 = "Dose"

and function_type = "Erf"c12 = Peak Position (PeakPos)if function_type = "Gauss"

= Inflection Position (SymPos)if function_type = "Erf"Concentration2 = { "StdDev", "Junction",

"DiffLength" }if function_type = "Gauss"{ "Junction", "DiffLength" }if function_type = "Erf"

c21 = Standard Deviation (StdDev)if Concentration2 = "StdDev"and function_type = "Gauss"

c22 = 0 if Concentration2 = "StdDev"and function_type = "Gauss"

c21 = Junction value (ValueAtDepth)if Concentration2 = "Junction"c22 = Junction depth (Depth)if Concentration2 = "Junction"c21 = Diffusion Length (Length)if Concentration2 = "DiffLength"c22 = 0 if Concentration2 = "DiffLength"option_1 = {"TRUE", "Positive", "Negative"}

"TRUE" is the same as the default mdraw setting"Positive" -> Direction = positive in the cmd file"Negative" -> Direction = negative in the cmd file

option_2 = {"FALSE", "TRUE"}"FALSE" is the default mdraw setting (Replace button is turned off)"TRUE" Replace button is turned on(Same as the Replace string on the cmd file.)

option_3 = {"FALSE", "TRUE"}"FALSE" is the default mdraw setting(Not Evaluate Baseline button is turned off)"TRUE" Not Evaluate Baseline button is turned on(Same as the notevalline string on the cmd file.)

Example 1 using Add2DAnalyticalProfilecmd file:

Definitions {# Refinement regions# ProfilesAnalyticalProfile "Profile_1" {

Species = "BoronActiveConcentration"Function = Gauss(PeakPos = 0, PeakVal = 1e+18, ValueAtDepth = 1e+15, Depth = 0.3)LateralFunction = Erf(Factor = 0.8)

}}Placements {

# Refinement regions# ProfilesAnalyticalProfile "Profile_1" {

Reference = "Profile_1"ReferenceElement {

Element = line [( -1 -1 ) , ( 1 1 )]}

}}

Tcl script function:Add2DAnalyticalProfile "Profile_1" "Gauss" "BoronActiveConcentration" -1 -1 1 1 Erf 0.8 "Peak" 1e+18 0 "Junction" 1e+15 0.3 "TRUE" "FALSE" "FALSE"

11.79

Page 84: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW8 – Tcl scripting interface

Example 2 using Add2DAnalyticalProfilecmd file:

Definitions {# Refinement regions # ProfilesAnalyticalProfile "Profile_2" {

Species = "PhosphorusActiveConcentration"Function = Erf(SymPos = 0, Dose = 1e+18, Length = 1e+15)LateralFunction = Gauss(Factor = 0.8)

}}Placements {

# Refinement regions# ProfilesAnalyticalProfile "Profile_2" {

Reference = "Profile_2"ReferenceElement {

Element = line [( -1 -1 ) , ( 1 1 )]Direction = positive

}Replacenotevalline

}}

Tcl script function:Add2DAnalyticalProfile "Profile_1" "Erf" "PhosphorusActiveConcentration" -1 -1 1 1 Gauss 0.8 "Dose" 1e+18 0 "DiffLength" 1e+15 0 "positive" "TRUE" "TRUE"

Add2DMultibox "multibox_name" x0 y0 x1 y1 max_width max_height min_width min_height ratio_width ratio_heightmultibox_name = char* // name of the multiboxx0 = double // x_min y0 = double // y_minx1 = double // x_maxy1 = double // y_max

= x0, y0, x1, y1 defines the multibox windowmax_width = double // Max. Element Widthmax_height = double // Max. Element Heightmin_width = double // Min. Element Widthmin_height = double // Min. Element Heightratio_width = double // Ratio Widthratio_height = double // Ratio Height

Add2DRefinementBox "refinementbox_name" x0 y0 x1 y1 max_width max_height min_width min_height n "reftype_i" "species_i" refvalue_irefinementbox_name= char*// name of the multiboxx0 = double // x_miny0 = double // y_minx1 = double // x_maxy1 = double // y_max

= x0, y0, x1, y1 defines the refinementbox windowmax_width = double // Max. Element Widthmax_height = double // Max. Element Heightmin_width = double // Min. Element Widthmin_height = double // Min. Element Heightn = int // number of refinement criteria

(variable number of arguments ( i = 1, ..., n )reftype_i = char* // Refinement is based on reftypespecies_i = char* // name of the speciesrefvalue_i = double // refinement criteria

11.80

Page 85: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 8 – Tcl scripting interface

refinementbox_name = { Any valid string. }x0, y0, x1, y1 = defines the refinement box windowmax_width, max_height, min_width, min_height= defines the maximum and minimum element sizes allowedn = number of refinement criteriareftype = { "TransDiff" "Gradient"} // Value Difference or Gradient species = { "BoronActiveConcentration", "ArsenicActiveConcentration", ... }

Can be any species that is defined in the DF-ISE dataset files.refvalue = refinement function value

Example using Add2DRefinementBoxcmd file:

Definitions {# Refinement regionsRefinement "RefBox_1" {

MaxElementSize = ( 0.5 0.5 )MinElementSize = ( 0.1 0.1 )RefineFunction = MaxTransDiff(Variable = "DopingConcentration", Value = 0.1)RefineFunction = MaxGradient(Variable = "ArsenicActiveConcentration", Value = 0.5)RefineFunction = MaxGradient(Variable = "BoronActiveConcentration", Value = 1)

}}Placements {

# Refinement regionsRefinement "RefBox_1" {

Reference = "RefBox_1"RefineWindow = rectangle [( -10.0 -10.0 ) , ( 0.0 0.0 )]

}}

Tcl script function:Add2DRefinementBox "RefBox_1" -10.0 -10.0 0.0 0.0 0.5 0.5 0.1 0.1 3 "TransDiff" "DopingConcentration 0.1 "TransDiff" "ArsenicActiveConcentration 0.5 "Gradient" "BoronActiveConcentration" 1

AddSubMesh "submesh_name" "geometry_file_name" n "data_file_name" "datafileflag" x0 y0 x1 y1 decay_factor shift_x shift_y "reflect_x" "reflect_y" rotate "replace"submesh_name = char* // name of the profile (submesh)geometry_file_name = char* // name of the geometry filen = int // number of data files included data_file_name_i = char* // name of the data file(s)datafileflag_i = char* // name of the data file(s)

i = 1, ..., nx0 = doubley0 = doublex1 = doubley1 = doubledecay_factor = doubleshift_x = double shift_y = doublereflect_x = char*reflect_y = char*rotate = doublereplace = char*submesh_name = char* // name of the profile (submesh)Definitions { # Refinement regions # Profiles SubMesh "SubMeshName"

11.81

Page 86: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW8 – Tcl scripting interface

geometry_file_name = char* // name of the geometry file{ "Full path and extension" }

Geofile = "/home/ise/sm1.grd" // cmd filen = int // number of data files includeddata_file_name = char* // name of the data file (mdraw allows more then one name)

{ "Full path and extension" }Datafile = "/home/ise/sm1.dat" // write file cmd syntaxDatafile = "/home/ise/sm1.dat", ‘w’= "filename" // write with filename givenDatafile = "/home/ise/sm1.dat", ‘i’ // incrementDatafile = "/home/ise/sm1.dat", ‘o’ // overwriteDatafile = "/home/ise/sm1.dat", ‘r’ // read onlydatafileflag = char*// see the manual

{ "w", "i", "o", "r" } for write, increment, overwrite and read onlyx0. y0, x1, y1 = evaluation window decay_factor = doubleshift_x = double

0 if no Shift Vector is to be prescribedshift_y = double

0 if no Shift Vector is to be prescribedShiftVector = ( 1 1 ) // can be missing from the cmd file, if not selectedreflect_x = { "FALSE", "TRUE" }reflect_y = { "FALSE", "TRUE" }rotate = 0 or value if the submesh is rotatedreplace = { "FALSE", "TRUE" }

Example using AddSubMeshcmd file:

Definitions {# Refinement regions# ProfilesSubMesh "SubMesh_1" {

Geofile = "/home/ise/sm1.grd"Datafile = "/home/ise/sm1a.dat", 'i'Datafile = "/home/ise/sm1b.dat", 'w'

}}Placements {

# Refinement regions# ProfilesSubMesh "SubMesh_1" {

Reference = "SubMesh_1"ShiftVector = ( 1 2 )Reflect = XReflect = YRotation {

axis = Z, angle = 45}ReplaceEvaluateWindow {

Element = rectangle [( 1 1 ) , ( 2 2 )]DecayLength = 0.5

}}

}

Tcl script function:AddSubMesh "Profile_1" "/home/ise/sm1.grd" 2 "/home/ise/sm1a.dat" "i" "/home/ise/sm1b.dat" 'w' 1 1 2 2 0.5 1 2 "TRUE" "TRUE" 45 "TRUE"

11.82

Page 87: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 8 – Tcl scripting interface

8.6 Examples: Tcl scriptThe following examples illustrate the use of the MDRAW script API functions with Tcl.

8.6.1 Creating rectangles

The following simple script creates ten rectangles on top of each other.

// -> Example 1

NewBndFile

set NAME_OUT ex1.bnd

set i 1set x1 0set y1 -1000set x2 2000set y2 0

set d [ expr {$y1} ]

while {$i < 10} {AddRectangularRegion $x1 $y1 $x2 $y2 Silicon incr i +1set d [ expr { $d/2 } ]set y2 [ expr { $y1 } ]set y1 [ expr { $y1+$d } ]set x2 [ expr { $x2/2 } ]

}

SaveBndFileAs $NAME_OUT $DFISE_FORMAT

// <- Example 1

Figure 11.69 Tcl scripting example

11.83

Page 88: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW8 – Tcl scripting interface

8.6.2 Stretching a device

This example shows how to stretch a device using the scripting language. It creates an extended device, byreading the input boundary called BASENAME, cuts it at CUT_X, and extends it by SHIFT_X. Currently, the boundingbox of the device must be specified. There will be additional function support for calculating the boundingbox in the future.

// -> Example 2

########################################## Input parameters#########################################

# Input bnd file base nameset BASENAME "mdr"

# The cut point and the displacement (must be positive)set CUT_X 0.49set SHIFT_X 1.0

# The bounding box of the device

set DEV_TOP -1.0set DEV_BOTTOM 2.0set DEV_LEFT -0.1set DEV_RIGHT 1.0

########################################## Don’t change below this line !!!########################################set BND_NAME [ expr { "${BASENAME}.bnd" } ]set CMD_NAME [ expr { "${BASENAME}.cmd" } ]set NAME_OUT [ expr { "${BASENAME}_ext" } ]

set WIN1_LEFT $DEV_LEFT set WIN1_RIGHT [ expr { $CUT_X + 0.5*$SHIFT_X } ]set WIN1_TOP [ expr { $DEV_TOP } ]set WIN1_BOTTOM [ expr { $DEV_BOTTOM } ]

set WIN2_LEFT [ expr { $WIN1_RIGHT +1e-4 } ]set WIN2_RIGHT [ expr { $DEV_RIGHT + $SHIFT_X } ]set WIN2_TOP [ expr { $DEV_TOP } ]set WIN2_BOTTOM [ expr { $DEV_BOTTOM } ]

# Read the boundary descriptionOpenBndFile "$BND_NAME"

# Remove the right, and left-hand side of the device, generate a mesh and save it.Save2DCut "right.bnd" $CUT_X $DEV_TOP $DEV_RIGHT $DEV_BOTTOM $DFISE_FORMATSave2DCut "left.bnd" $DEV_LEFT $DEV_TOP $CUT_X $DEV_BOTTOM $DFISE_FORMAT

NewBndFileOpenBndFile "left.bnd"OpenCmdFile "$CMD_NAME" BuildMeshSaveMesh "left"

NewBndFileOpenBndFile "right.bnd"OpenCmdFile "$CMD_NAME" BuildMeshSaveMesh "right"

11.84

Page 89: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW 8 – Tcl scripting interface

NewBndFileOpenBndFile "$BND_NAME"OpenCmdFile "$CMD_NAME"

# Stretch the boundary and the refinement specs.SelectPoints $CUT_X $DEV_TOP $DEV_RIGHT $DEV_BOTTOM MoveSelectedPoints $SHIFT_X 0

StretchRefinement $CUT_X $SHIFT_X

# Remove the data definition and ...RemoveData

# include the previously saved results as subMeshesAddSubMesh "left_side" "left_mdr.grd" "left_mdr.dat”SetSubMeshWindow "left_side" $WIN1_LEFT $WIN1_TOP $WIN1_RIGHT $WIN1_BOTTOM 0.0

AddSubMesh "right_side" "right_mdr.grd" "right_mdr.dat" ShiftSubMesh "right_side" $SHIFT_X 0 SetSubMeshWindow "right_side" $WIN2_LEFT $WIN2_TOP $WIN2_RIGHT $WIN2_BOTTOM 0.0

#Build the extended mesh and save it.BuildMesh SaveMesh "$NAME_OUT" SaveBndFileAs "$NAME_OUT" $DFISE_FORMATexec rm left.bndexec rm left_mdr.grdexec rm left_mdr.dat

exec rm right.bndexec rm right_mdr.grdexec rm right_mdr.dat

exec rm dev_ext2.tcl_mdr.log

// <- Example 2

Figure 11.70 Tcl scripting example of device Extension: original device (left) and extended device (right)

11.85

Page 90: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW8 – Tcl scripting interface

8.6.3 Creating a 3D extruded MOSFET design

This is a more complex, stand-alone example, creating a three-dimensional extruded MOSFET design. Modelgeometry and other input parameters regarding doping and refinement are specified in an input file. Refer tothe Index of Tcl scripting interface on page 11.89, which lists the geometry and other input parametersregarding doping and refinement.

11.86

Page 91: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAW Bibliography

Part 11 – MDRAW

Bibliography[1] P. L. George and E. Sveno, “The Advancing Front mesh generation method revisited,” International Journal

for Numerical Methods in Engineering, vol. 37, pp. 3605–3619, 1994.

[2] B. P. Johnston and J. M. Sullivan, “Fully Automatic two dimensional mesh generation using normaloffsetting,” International Journal for Numerical Methods in Engineering, vol. 33, pp. 425–442, 1992.

[3] D. R. White and P. Kinney, Redesign of the Paving Algorithm: Robustness Enhancements through Elementby Element Meshing, Albuquerque, New Mexico: Sandia National Laboratories.

[4] B. B. Welch, Practical Programming in Tcl & Tk, New Jersey: Prentice Hall, 3rd ed., 2000.

11.87

Page 92: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Index of Tcl scripting interfacePart 11 – MDRAW

Part 11 – MDRAW

Index of Tcl scripting interface

A

Add1DAnalyticalProfile ..... 11.75, 11.77Add2DAnalyticalProfile ..... 11.76, 11.78Add2DMultibox ................. 11.76, 11.80Add2DRefinementBox ...... 11.76, 11.80AddClosedMultiline ........... 11.71AddConstantProfile ........... 11.75, 11.76AddContact ....................... 11.73AddMultiline ...................... 11.71AddPoint ........................... 11.71AddPolygonalRegion ........ 11.71AddRectangularRegion ..... 11.71AddSubMesh .................... 11.74, 11.76, 11.81AddTriangularRegion ........ 11.71

B

BreakSmallAngles ............ 11.73BuildMesh ......................... 11.74

C

ChangeMaterial ................ 11.72

D

DeleteLine ........................ 11.71DeletePoint ....................... 11.71DeletePoints ..................... 11.72DeleteRegion .................... 11.71DeleteSelectedPoints ....... 11.72

H

HorizontalAlignment .......... 11.73HorizontalCut .................... 11.71

I

IncludeBndFile .................. 11.70IncludeCmdFile ................. 11.70

M

MakeContact ..................... 11.73MeshingAlgorithm ............. 11.74MovePoint ......................... 11.72MoveSelectedPoints ......... 11.72

N

NewBndFile ....................... 11.70NoffsetAddIsoline .............. 11.75NoffsetBoundary ............... 11.75NoffsetConfigBoundary ..... 11.75NoffsetConfigInterface ...... 11.75NoffsetConfigRegion ......... 11.75NoffsetInterface ................. 11.75NoffsetRegion ................... 11.75

O

OpenBndFile ..................... 11.70OpenCmdFile .................... 11.70

R

Redo ................................. 11.72ReflectX ............................ 11.72ReflectY ............................ 11.72RemoveData ..................... 11.74RemoveDeviatedPoints .... 11.73RemoveShortEdges .......... 11.74

S

Save2DCut ........................ 11.70Save3DCut ........................ 11.70SaveBndFile ...................... 11.70SaveBndFileAs ................. 11.70SaveCmdFileAs ................ 11.70SaveMesh ......................... 11.74SelectAll ............................ 11.72SelectPoints ...................... 11.72SetActiveContact .............. 11.73SetRegionName ................ 11.73SetRegionNameByPoint ... 11.73

11.89

Page 93: ISE Integrated Systems Engineering Release 9.0 Part 11 · ISE Integrated Systems Engineering Release 9.0 Part 11 MDRAW. Part 11 – MDRAW Contents ... The 2D meshing engines are inte

Part 11 – MDRAWIndex of Tcl scripting interface

SetSubMeshWindow ........ 11.74ShiftSubMesh ................... 11.74SnapToGrid ...................... 11.72StretchRefinement ............ 11.74SwitchContactEdge .......... 11.73SwitchContactRegion ....... 11.73

U

Undo ................................. 11.73

V

VerticalAlignment .............. 11.74VerticalCut ........................ 11.71

11.90