当前位置:文档之家› dip_ug

dip_ug

dip_ug
dip_ug

DIP User Guide Version C-2009.06, June 2009

ii DIP User Guide

C-2009.06

Copyright Notice and Proprietary Information

Copyright ? 2009 Synopsys, Inc. All rights reserved. This software and documentation contain confidential and proprietary information that is the property of Synopsys, Inc. The software and documentation are furnished under a license agreement and may be used or copied only in accordance with the terms of the license agreement. No part of the software and documentation may be reproduced, transmitted, or translated, in any form or by any means, electronic, mechanical, manual, optical, or otherwise, without prior written permission of Synopsys, Inc., or as expressly provided by the license agreement.

Right to Copy Documentation

The license agreement with Synopsys permits licensee to make copies of the documentation for its internal use only. Each copy shall include all copyrights, trademarks, service marks, and proprietary rights notices, if any. Licensee must assign sequential numbers to all copies. These copies shall contain the following legend on the cover page:

“This document is duplicated with the permission of Synopsys, Inc., for the exclusive use of __________________________________________ and its employees. This is copy number __________.”Destination Control Statement

All technical data contained in this publication is subject to the export control laws of the United States of America. Disclosure to nationals of other countries contrary to United States law is prohibited. It is the reader’s responsibility to determine the applicable regulations and to comply with them.

Disclaimer

SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MA TERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A P ARTICULAR PURPOSE.

Registered Trademarks (?)

Synopsys, AMPS, Astro, Behavior Extracting Synthesis T echnology, Cadabra, CA TS, Certify, CHIPit, Design Compiler, DesignWare, Formality, HDL Analyst, HSIM, HSPICE, Identify, iN-Phase, Leda, MAST , ModelTools, NanoSim, OpenVera, PathMill, Physical Compiler, PrimeTime, SCOPE, Simply Better Results, SiVL, SNUG, SolvNet, Syndicated, Synplicity, the Synplicity logo, Synplify, Synplify Pro, Synthesis Constraints Optimization Environment, T etraMAX, UMRBus, VCS, Vera, and YIELDirector are registered trademarks of Synopsys, Inc.

Trademarks (?)

AFGen, Apollo, Astro-Rail, Astro-Xtalk, Aurora, AvanWaves, BEST, Columbia, Columbia-CE, Confirma, Cosmos, CosmosLE, CosmosScope, CRITIC, CustomSim, DC Expert, DC Professional, DC Ultra, Design Analyzer, Design Vision, DesignerHDL, DesignPower, DFTMAX, Direct Silicon Access, Discovery, Eclypse, Encore, EPIC, Galaxy, Galaxy Custom Designer, HANEX, HAPS, HapsTrak, HDL Compiler, Hercules, Hierarchical Optimization T echnology, High-performance ASIC Prototyping System, HSIM plus , i-Virtual Stepper, IICE, in-Sync, iN-Tandem, Jupiter, Jupiter-DP , JupiterXT , JupiterXT-ASIC, Liberty, Libra-Passport, Library Compiler, Magellan, Mars, Mars-Rail, Mars-Xtalk, Milkyway, ModelSource, Module Compiler, MultiPoint, Physical Analyst, Planet, Planet-PL, Polaris, Power Compiler, Raphael, Saturn, Scirocco, Scirocco-i, Star-RCXT, Star-SimXT , System Compiler, System Designer, T aurus, TotalRecall, TSUPREM-4, VCS Express, VCSi, VHDL Compiler, VirSim, and VMC are trademarks of Synopsys, Inc.

Service Marks (sm )

MAP-in, SVP Café, and T AP-in are service marks of Synopsys, Inc.

SystemC is a trademark of the Open SystemC Initiative and is used under license.ARM and AMBA are registered trademarks of ARM Limited.Saber is a registered trademark of SabreMark Limited Partnership and is used under license.All other product or company names may be trademarks of their respective owners.

Contents

About This Manual v Audience. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .v

Related Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .v

Typographic Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .v

Customer Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi Accessing SolvNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi

Contacting the Synopsys Technical Support Center . . . . . . . . . . . . . . . . . . . . . . . . . . vi

Contacting Your Local TCAD Support Team Directly. . . . . . . . . . . . . . . . . . . . . . . .vii

Chapter 1 Using DIP1 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

Exchanging Datasets Between Grids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Potential Problems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Importing Datasets from the Incorporation Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Extrapolation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Advanced Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6

Possible Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Linear and Logarithmic Interpolation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7

Constructing Datasets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Example Script for Incorporating 2D Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Compatibility: Active and Chemical Concentrations. . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Reading and Mapping Datasets in.dat Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Chapter 2 DIP Concepts11 Basic Object Structure: Device, Regions, and Profiles. . . . . . . . . . . . . . . . . . . . . . . . . . .11 dip_device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

dip_profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

dip_rect, dip_region. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12

Incorporation Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12

dip_coons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14

dip_glider. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 Opposite Gliders. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

Adjacent Gliders. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 dip_stretcher. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

dip_3Dspecies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 DIP User Guide iii C-2009.06

Contents

Blending Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

Profile Adjustments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

Appendix A Scripting Language23 Writing DIP Command Scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23

Example: NMOS Transistor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24

Interactive Features of dipsh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26

Appendix B Functions and Procedures29 General Functions and Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29

Tcl Procedures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29

Incorporation Device: dip_device. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30

Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33

Incorporation Regions: dip_rect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35

Incorporation Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37

Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 iv DIP User Guide

C-2009.06

DIP User Guide

v C-2009.06About This Manual

This manual describes the data interpolation package (DIP) application that is used to exchange

data between different types of grids and to incorporate 2D data profiles into 3D grids.

The main chapters are:

■Chapter 1 describes the functionality of the DIP application and how it works, and describes how to exchange and import datasets, and outlines the advanced functionality of

DIP.

Chapter 2 describes the internal structure of DIP and the script language.Audience This manual is intended for users of the DIP software package.

Related Publications

For additional information about DIP, see:

■The TCAD Sentaurus release notes, available on SolvNet (see Accessing SolvNet on page vi ).

Documentation on the Web, which is available through SolvNet at https://https://www.doczj.com/doc/267055608.html,/DocsOnWeb .Typographic Conventions Convention Explanation

Blue text

Identifies a cross-reference (only on the screen).Bold text

Identifies a selectable icon, button, menu, or tab. It also indicates the name of a field, window, dialog box, or panel.Courier font

Identifies text that is displayed on the screen or that the user must type. It identifies the names of files, directories, paths, parameters, keywords, and variables.Italicized text

Used for emphasis, the titles of books and journals, and non-English words. It also identifies components of an equation or a formula, a placeholder, or an identifier.NOTE Identifies important information.

About This Manual

Customer Support

vi DIP User Guide C-2009.06

Customer Support

Customer support is available through SolvNet online customer support and through contacting the Synopsys Technical Support Center.

Accessing SolvNet

SolvNet includes an electronic knowledge base of technical articles and answers to frequently

asked questions about Synopsys tools. SolvNet also gives you access to a wide range of

Synopsys online services, which include downloading software, viewing Documentation on

the Web, and entering a call to the Support Center.

To access SolvNet:

1.Go to the SolvNet Web page at https://https://www.doczj.com/doc/267055608.html, .

2.If prompted, enter your user name and password. (If you do not have a Synopsys user name

and password, follow the instructions to register with SolvNet.)If you need help using SolvNet, click Help on the SolvNet menu bar.

Contacting the Synopsys Technical Support Center

If you have problems, questions, or suggestions, you can contact the Synopsys Technical

Support Center in the following ways:

■Open a call to your local support center from the Web by going to https://https://www.doczj.com/doc/267055608.html,/EnterACall (Synopsys user name and password required).

■Send an e-mail message to your local support center:

?

E-mail support_center@https://www.doczj.com/doc/267055608.html, from within North America. ?Find other local support center e-mail addresses at

https://www.doczj.com/doc/267055608.html,/Support/GlobalSupportCenters/Pages/default.aspx .

■Telephone your local support center:?Call (800) 245-8005 from within the continental United States.

?Call (650) 584-4200 from Canada.

?

Find other local support center telephone numbers at

https://www.doczj.com/doc/267055608.html,/Support/GlobalSupportCenters/Pages/default.aspx .

About This Manual

Customer Support

DIP User Guide

vii C-2009.06Contacting Your Local TCAD Support Team Directly

Send an e-mail message to:

support-tcad-us@https://www.doczj.com/doc/267055608.html, from within North America and South America.■

support-tcad-eu@https://www.doczj.com/doc/267055608.html, from within Europe.■support-tcad-ap@https://www.doczj.com/doc/267055608.html, from within Asia Pacific (China, Taiwan, Singapore,Malaysia, India, Australia).

■support-tcad-kr@https://www.doczj.com/doc/267055608.html, from Korea.

■support-tcad-jp@https://www.doczj.com/doc/267055608.html, from Japan.

About This Manual

Customer Support

viii DIP User Guide

C-2009.06

C HAPTER 1Using DIP

This chapter describes the functionality of the DIP application and

how it works, and describes how to exchange and import datasets,

and outlines the advanced functionality of DIP.

Overview

DIP was originally designed to incorporate 2D and 3D doping profiles into one consistent 3D

model. It was subsequently redesigned and extended for use as a general data interpolation

package. DIP exchanges datasets between different grids, even between grids of different

dimension and type. Interpolation is used to transfer datasets from a source grid to destination

grids of equal or lower dimension. Special incorporation techniques are available for building

3D datasets from a set of 2D datasets (cuts).

DIP has an object-oriented scripting interface; it reads commands from a script file. This is best

explained by a simple example. Suppose you want to transfer the dataset named

ArsenicConcentration from grid A to grid B. Both grids are of mixed-element type. The

corresponding command script is:

set A [dip_mesh3D -args NULL A-file.grd A-file.dat]

set B [dip_mesh3D -args NULL B-file.grd 0]

$B importDatasets $A new ArsenicConcentration

$B writeDatasets B-file-after-dip.dat 0

In the first two lines, two grid objects are created and assigned to the variables A and B. In the

next two lines, object-specific methods are invoked for grid B. The use of the different objects

and methods is explained later in this manual.

To run this script, start the DIP interpreter dipsh and type the commands. Alternatively, save

the script in a file script_dip.cmd and run dipsh with the name of the script as the

command-line argument:

dipsh script_dip.cmd

Even though this example appears extremely simple, it shows all the concepts of writing a

script for DIP. Users always either create a new object of a certain type or invoke object-

specific methods for a certain object. When the object structure of DIP and the methods that

are available for each type of object are understood, command scripts can be easily written. The

object-oriented scripting language offers a consistent, easy-to-use interface for standard tasks

and provides enormous flexibility for handling complex applications.

DIP User Guide1 C-2009.06

1: Using DIP

Exchanging Datasets Between Grids

NOTE Though DIP is available as the stand-alone interpreter dipsh, it is also

built into other programs such as Mesh. A command script for DIP is

required regardless of whether the script is used with dipsh or another

program that uses DIP.

The stand-alone interpreter dipsh is helpful for testing scripts in interactive mode. A few

methods have been designed exclusively for interactive use, for example, for writing the

position and size of a grid in a three-dimensional space, or the number of datasets contained in

a profile. Since dipsh uses tool command language (Tcl) scripting, it is possible to use more

sophisticated programming constructs in the script. For more information about Tcl, which is

a freely available, visit https://www.doczj.com/doc/267055608.html,.

Exchanging Datasets Between Grids

While the transfer of datasets to grids of equal or lower dimension is straightforward, the

incorporation of 2D profiles and the construction of 3D profiles based only on 2D cuts are more

complex and require a certain amount of planning and setup by the user. Therefore, a large part

of this manual is dedicated to describing the incorporation techniques in detail.

This section only describes the transfer of datasets to grids of equal or lower dimension. This

type of data transfer is performed by applying standard interpolation techniques.

The profile class hierarchy implements the different grid types and provides a grid-independent

interface for the interpolation of datasets. Figure1 shows the class hierarchy and available grid

types.

dip_mesh2D

dip_profile2D

dip_rec_tensor2D

dip_profile

dip_mesh3D

dip_profile3D

dip_rec_tensor3D

Figure 1Profile classes in DIP

All grid types share a common set of methods that is used in exactly the same way regardless

of the grid type. For a complete description of each method, refer to the appendices. Most of

these methods are convenient functions for interactive use. Only a few methods are necessary

to perform the basic operation of transferring a dataset from one grid to another, and to write

this new dataset to a file.

2DIP User Guide

C-2009.06

1: Using DIP

Exchanging Datasets Between Grids The following example illustrates how two datasets defined on a three-dimensional mixed-

element grid are transferred to a two-dimensional recursive tensor grid:

set src [dip_mesh3D -args NULL src-file.grd src-file.dat]

set dst [dip_rec_tensor2D -args NULL dst-file.grd 0]

$dst importDatasets $src new "BoronConcentration StressYY"

$dst writeDatasets dst-file-after-dip.dat 0

The first command:

set src [dip_mesh3D -args NULL src-file.grd src-file.dat]

reads the grid and data files and creates the mixed-element grid object, dip_mesh3D. The

brackets perform the command substitution (similar to the '' notation in the UNIX C shell).

The constructor takes as arguments a dip_device object that is not necessary and, therefore,

‘0’ in this case, then the names of the grid file and data file. The mixed-element grid is assigned

to the variable src.

A similar command:

set dst [dip_rec_tensor2D -args NULL dst-file.grd 0]

creates the two-dimensional recursive tensor grid and assigns it to the variable dst. The data

file argument is ‘0,’ which means that no data is read.

The following line:

$dst importDatasets $src new "BoronConcentration StressYY"

performs the actual transfer of the datasets BoronConcentration and StressYY from the

source grid src to the destination grid dst. Any number of datasets can be transferred in one

import command. The second argument (new) specifies that a new dataset is to be created in

the destination grid. Alternatively, imported datasets can be added to datasets that are already

available in the destination grid, or they can replace (overwrite) existing datasets. Refer to the

appendices for a complete description of all options.

Finally, the datasets of the destination grid are written to the file dst-file-after-dip.dat

by the command:

$dst writeDatasets dst-file-after-dip.dat 0

The second argument (0) indicates that the file is to be written in ASCII format. A nonzero

value would lead to the file being written in binary format.

DIP User Guide3 C-2009.06

1: Using DIP

Importing Datasets from the Incorporation Device

4DIP User Guide C-2009.06

Potential Problems

■Unexpected results can occur if the destination grid is not entirely contained inside the source grid or the material distribution of the two grids does not match (see Extrapolation

on page 6).

A common problem relates to the position of the grids in 3D space. This position is determined by the coordinates of the grid points and the local coordinate system of the grid.

Ensure that your profiles are located where they should be. An easy way to find out more

about the grid position is the command writeInfo , which is available for all grid types.Importing Datasets from the Incorporation Device

The incorporation device implements the functionality required for building three-dimensional

data based on input given on two-dimensional vertical cut planes. As a typical application, the

incorporation device is used to generate a three-dimensional model of the doping distribution

based on two-dimensional cuts provided by the 2D process simulator. Details of the

incorporation methods are provided later in this manual. This section explains only how the

values computed by the incorporation device are transferred to a given grid.

The incorporation device is actually an object of type dip_device . If a dip_device has been

set up properly, its data can be transferred to a grid in a way that is very similar to incorporating

datasets from another grid:

set dev [dip_device]

...

...

set dst [dip_rec_tensor2D -args NULL dst-file.grd 0]

$dst importDeviceDatasets $dev new "BoronConcentration StressYY"

$dst writeDatasets dst-file-after-dip.dat 0

The first command:

set dev [dip_device]

generates an incorporation device object and assigns it to the variable dev . Additional code,

which is not included in this example, is required to specify the details of the incorporation

process.

The command:

set dst [dip_rec_tensor2D -args NULL dst-file.grd 0]

creates the two-dimensional recursive tensor grid and assigns it to the variable dst . The data

file argument is ‘0,’ which means that no data is read.

1: Using DIP

Importing Datasets from the Incorporation Device

The following line:

$dst importDeviceDatasets $dev new "BoronConcentration StressYY"

performs the actual transfer of the datasets BoronConcentration and StressYY from the

incorporation device dev to the destination grid dst. Any number of datasets can be

transferred in one import command. The second argument (new) specifies that a new dataset is

to be created in the destination grid. Alternatively, imported datasets can be added to datasets

that are already available in the destination grid, or they can replace (overwrite) existing

datasets. Refer to the appendices for a complete description of all options.

Finally, the datasets of the destination grid are written to the file dst-file-after-dip.dat

by the command:

$dst writeDatasets dst-file-after-dip.dat 0

The second argument (0) means that the file is to be written in ASCII format. A nonzero value

would lead to the file being written in binary format.

Alignment

When exchanging data from the incorporation device to a user-specified grid, often, the device

is not correctly positioned along the vertical direction. DIP allows for the position of the device

to be manually changed by using the procedure:

$dev move dx dy dz

This procedure causes a translation of the device.

Another built-in method allows the silicon top of the device to be aligned with the silicon top

of the grid. This method is applied by default in importDeviceDatasets. To switch off this

automatic alignment, use:

$dev noAutoTopSiliconAdjust

Misalignment between grids and the incorporation device is often the cause of unexpected

results. To check the exact location and size of a grid or the device, use:

$dev writeInfo

$grd writeInfo

DIP User Guide5 C-2009.06

1: Using DIP

Extrapolation

6DIP User Guide C-2009.06

Extrapolation

A dataset always has a property called valid regions . This property lists the regions of the grid

where the dataset is defined. This could be all the regions of the grid or only a subset of the

available regions. When transferring a dataset from a source grid to a destination grid, DIP

loops through all the vertices of the destination grid and asks for the value of the dataset at the

corresponding location in the source grid. There is no problem, in the standard case, where a

point lies in one of the valid regions of the dataset in the source grid. H owever, a special

situation arises if the point is not located in one of the valid regions or if the point is outside the

source grid. DIP provides two different options for handling this situation:

■No extrapolation: Values are always zero unless the point is located in one of the valid regions of the dataset.

Extrapolation: The nearest point on the boundary of a valid region is searched and the value at this point is taken.Extrapolation can be switched on or off separately for each profile by using:

$src setExtrapolationOn

or:

$src setExtrapolationOff

By default, extrapolation is switched on for all profiles. The same option is also available for

the incorporation device, dip_device . H owever, in fact, when the extrapolation option is

changed for the incorporation device, the option is changed for all profiles associated with the device.

Advanced Use

In the standard case previously described, the regions used for extrapolation are determined

automatically from the valid regions of the dataset. However, it is also possible to switch off

this automatic behavior by using:

$src noAutoSetExtrapolationRegions

The list of regions to be used for extrapolation can be edited manually by using the procedures:

$src setExtrapolationRegions "list of region names"

$src clearExtrapolationRegions

$src addExtrapolationRegionsByMaterialNames "list of materials"

$src addExtrapolationRegionsByFunctions "list of functions"

1: Using DIP

Linear and Logarithmic Interpolation All of these calls are available for grids and the incorporation device. Again, the incorporation

device does not itself interpret these options, but it passes them to all associated profiles. A

complete description of each of the above procedures is given in the appendices.

Possible Problems

If several datasets are imported in one call to importDatasets or

importDeviceDatasets, and automatic selection of extrapolation regions is switched on,

the list of extrapolation regions will be the union of all valid regions of all imported datasets.

Therefore, the user should only import datasets having the same valid regions in one import

call. Use several import commands if datasets with different valid regions must be imported. Linear and Logarithmic Interpolation

By default, DIP applies a linear interpolation when computing the value of a dataset at an

arbitrary location inside a finite element. To switch to logarithmic interpolation, use: $grd setLogInterpolation

or:

$dev setLogInterpolation

which are available for all grid types and the incorporation device. Linear or logarithmic

interpolation can be selected separately for individual grids. Logarithmic interpolation is used

mostly for doping species.

Constructing Datasets

DIP provides methods for building a three-dimensional dataset from several two-dimensional

profiles (cuts). This is not as straightforward as interpolating between grids of equal dimension;

a certain amount of planning is necessary to set up a command script to do this. The following

sections explain how the incorporation concept works and how the scripts are made for

incorporation applications.

One of the basic incorporation concepts of DIP is to divide the space into smaller regions called

incorporation regions. These regions extend from the bottom to the top of the device. DIP

supports rectangular incorporation regions, implemented with the class dip_rect only.

DIP User Guide7 C-2009.06

1: Using DIP

Constructing Datasets

8DIP User Guide

C-2009.06

Two-dimensional cuts are along the sidewalls of these regions, never through the regions (see

Figure 2). Each incorporation region is treated independently by DIP; completely different

incorporation methods can be applied in each region.

Figure 2Partition of 3D device into four rectangular incorporation regions: 3D view (left )

and top view (right )

A common property of all incorporation methods is that they compute the value at a 3D point

by combining values from the sides of the region according to a rule – the incorporation rule.

The side values are usually obtained at certain projected points on the sides of the incorporation

region.

Example Script for Incorporating 2D Data

The following simple example shows all of the essential elements required for incorporating

2D cuts.

This DIP input script is for a device that is generated by sweeping a single 2D profile in the

direction perpendicular to the profile (see Figure 3 on page 10):

set device [dip_device]

set profile [dip_mesh2D -args $device cut2.grd cut2.dat]

set region [dip_rect -args $device 120.1\

12-3.3\

140.1\

NULL NULL NULL $profile]

dip_coons -args $region Arsenic

dip_coons -args $region Boron

dip_coons -args $region Phosphorus

Region 1Region 2

Region 3Region 4

1: Using DIP

Constructing Datasets At the beginning of the script, the root doping device must be created. The dip_device object

is later required as an argument for other commands:

set device [dip_device]

This command creates an object of type dip_device and stores a reference to it in the variable

device. The next command:

set profile [dip_profile2D -args $device cut2.grd cut2.dat]

creates a dip_mesh2D object, adds it to the device previously created, and initializes the

profile object with the data contained in the files cut2.grd and cut2.dat. A reference to this

profile is assigned to the variable profile.

Next, a rectangular incorporation region is created with the command:

set region[dip_rect -args $device120.1\

12-3.3\

140.1\

NULL NULL NULL $profile]

The arguments in the constructor for the dip_rect specify the device, the x- and y-

coordinates of three corner points of the rectangular region, and the profiles attached to each

of the four sidewalls of the region. In this case, only one profile is available.

In the next step, interpolation rules are defined separately for each species and they are added

to the incorporation region:

dip_coons -args $region Arsenic

dip_coons -args $region Boron

dip_coons -args $region Phosphorus

The arguments specify the region and species to which this rule applies. Different rules can be

used for each species.

This simple example contains all the important parts of a DIP input script for incorporating 2D

cuts. More complex examples usually have several 2D cuts and several incorporation regions,

and they may use other incorporation rules and additional commands to change certain

properties of incorporation rules. Before presenting more sophisticated applications, the next

section presents a more thorough overview of the object structure related to 2D incorporation.

DIP User Guide9 C-2009.06

1: Using DIP

Compatibility: Active and Chemical Concentrations

10DIP User Guide

C-2009.06

Figure 3Three-dimensional device created by sweeping a single profile (color differences are due to different colormaps)Compatibility: Active and Chemical Concentrations

Reading and Mapping Datasets in .dat Files

By default, DIP maps chemical concentrations to active concentrations. Concentrations are

mapped to active by default when reading .dat files, for example, BoronConcentration

becomes BoronActiveConcentration . Mapping does not occur if datasets for both active

and chemical concentrations are in the file (for example, BoronActiveConcentration and

BoronConcentration ).

Mapping can be switched off:

In DIP scripts by using DipSetMapToActiveModeOff .■In Mesh by specifying the command-line option -DopingAsIs . This is propagated if Mesh uses DIP; DipSetMapToActiveModeOff

in a DIP script becomes redundant.

DIP User Guide

11C-2009.06C HAPTER 2DIP Concepts

This chapter describes the internal structure of DIP and the script language.

Basic Object Structure: Device, Regions, and Profiles

The object-oriented structure of DIP is reflected directly in its input script language. To understand the DIP command scripts, it is useful to know the basics about the internal structure of DIP (see Figure 4).

Figure 4Internal object structure of DIP

dip_device

The root object dip_device holds a list of all profiles and incorporation regions (dip_rect ).Its constructor takes no argument. Regions are created only after a dip_device object is available. They are automatically added to the device when they are created. The dip_device object has methods for computing 3D doping values, and for moving, rotating, and scaling the device. A complete list of all methods is in Appendix B on page 29.

dip_profile

The base class dip_profile implements the standard interface to the different grid types.Figure 1 on page 2 illustrates the detailed structure of the profile hierarchy.dip_device dip_profile

dip_rule

dip_rect

dip_coons

dip_glider

dip_3Dspecies

dip_stretcher

2: DIP Concepts

Basic Object Structure: Device, Regions, and Profiles

dip_rect, dip_region

Incorporation regions are used to confine incorporation rules to a certain part of the whole 3D

device. Each region has its own incorporation rules. The shape of an incorporation region is

always a vertical cylinder that extends over the full height of the device. DIP supports regions

of rectangular cross section (dip_rect). The location and size of a dip_rect is specified by

the x-coordinates and y-coordinates of corner 0, corner 1, and corner 3. DIP does not check

whether the three given corner points define a rectangle. It is the responsibility of the user to

select these points correctly.

A 2D profile can be attached to each side of an incorporation region. To compute a 3D doping

value at a certain point r inside the region, DIP computes the projected points in each side of

the region and passes the corresponding side values to the incorporation rule.

If no profile is specified for one or several sides, DIP interpolates the side values from the

available profiles. Instead of interpolating a missing side profile, DIP can use values of

neighboring regions. See Incorporation Regions: dip_rect on page35 for a complete list of all

methods available for dip_rect.

Incorporation Rules

One of the main constraints of DIP is that 2D profiles must always be vertical. Therefore, the

analysis and description of incorporation rules can be performed in the top view of the device,

that is, in the projection to the (x, y) plane. The formalism for 3D doping construction is

described in terms of positions and distances in this plane.

The influence of an incorporation rule is always limited to the region to which it belongs (see

dip_rect, dip_region). When DIP is asked for the doping at a certain 3D point of the device, it

looks up the region containing that point and evaluates the incorporation rules of this region.

From the point of view of an incorporation rule, the doping values must be given on all sides

of its region. Some rules may also be able to consider predescribed 1D and 2D doping profiles

inside a region, but the minimum that a rule expects to obtain from the region is the values on

all of its sides. In the DIP object hierarchy, the region provides the doping values on all sides.

If numeric data is not available for a side, the region interpolates the side values based on

available numeric data from other sides, or it asks the adjacent region for the values at this side.

12DIP User Guide

C-2009.06

相关主题
文本预览
相关文档 最新文档