Utilities Ug
Utilities Ug
SystemC is a trademark of the Open SystemC Initiative and is used under license.
ARM and AMBA are registered trademarks of ARM Limited.
All other product or company names may be trademarks of their respective owners.
Utilities, Y-2006.06
ii
UTILITIES CONTENTS
Utilities
About this manual ............................................................................................................................... vii
Audience ............................................................................................................................................................ vii
Related publications........................................................................................................................................... vii
Typographic conventions .................................................................................................................................. viii
Customer support.............................................................................................................................................. viii
Chapter 3 DFISETOOLS...................................................................................................................... 29
Overview ............................................................................................................................................................29
DFISETOOLS file...............................................................................................................................................30
Example: Obtaining a summary of a layout file ............................................................................................31
Cutting a 3D device with a plane........................................................................................................................31
Example 1: Cutting a plane through a 3D boundary ....................................................................................32
Example 2: Cutting a plane through a 3D grid .............................................................................................32
Sampling a device with a line segment ..............................................................................................................33
Example 1: Cutting a line through a 3D grid.................................................................................................33
Example 2: Cutting a line through a 2D grid.................................................................................................34
Mirroring a device through a plane.....................................................................................................................34
Example 1: Mirroring a layout.......................................................................................................................35
Example 2: Mirroring a 1D grid.....................................................................................................................35
Example 3: Mirroring a 2D boundary............................................................................................................36
Example 4: Mirroring a 2D grid.....................................................................................................................36
Example 5: Mirroring a 3D boundary............................................................................................................37
Example 6: Mirroring a 3D grid.....................................................................................................................37
iii
CONTENTS UTILITIES
Extending 2D geometry......................................................................................................................................38
Example: Extending a 2D grid......................................................................................................................38
Setting transformation on a geometry or tensor.................................................................................................39
Example: Setting a transformation of a 2D grid............................................................................................39
Applying transformation on a geometry or tensor ..............................................................................................39
Tessellating a geometry .....................................................................................................................................39
Example 1: Tessellating a 2D boundary.......................................................................................................40
Example 2: Tessellating a 3D boundary.......................................................................................................40
Using DFISETOOLS with a Tcl script ................................................................................................................41
Compressing and uncompressing datasets .......................................................................................................43
iv
UTILITIES CONTENTS
v
CONTENTS UTILITIES
vi
UTILITIES ABOUT THIS MANUAL
This manual describes the DF–ISE format and a number of utility programs. The main chapters are:
Chapter 1 provides some background information about DF–ISE and describes the organization of
DF–ISE files, the cell structure, and various tensor grids.
Chapter 2 describes the file datexcodes.txt.
Chapter 3 presents the DFISETOOLS file and provides examples of how to use the DF–ISE
functionality.
Chapter 4 describes the postprocessing tool and provides instructions for its use.
Chapter 5 describes the SUPREM-4 utility functionality.
Chapter 6 describes the Dios to Sentaurus Process converter.
Chapter 7 describes the Measure tool, which extracts values from protocols.
Chapter 8 describes the Sentaurus spice2sdevice converter.
Audience
This manual is intended for users of Synopsys TCAD software.
Related publications
For additional information about Utilities, see:
Documentation on the Web, which is available through SolvNet at
https://solvnet.synopsys.com/DocsOnWeb.
Synopsys Online Documentation (SOLD), which is included with the software for CD users or is
available to download through the Synopsys Electronic Software Transfer (EST) system.
vii
ABOUT THIS MANUAL UTILITIES
Typographic conventions
Convention Explanation
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.
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 including software downloads, documentation on the Web, and “Enter a Call to the Support
Center.”
To access SolvNet:
1. Go to the SolvNet Web page at http://solvnet.synopsys.com.
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 in the top-right menu bar or in the footer.
viii
UTILITIES ABOUT THIS MANUAL
ix
ABOUT THIS MANUAL UTILITIES
x
UTILITIES CHAPTER 1 DF–ISE
DF–ISE
Utilities
CHAPTER 1
This chapter provides some background information about DF–ISE and describes the organization of
DF–ISE files, the cell structure, and various tensor grids.
About DF–ISE
A unique file format is used to store all information about the current status of a device. If new data items
must be exchanged between simulators, using keywords and grouping data into data records allow for
the extension of the file format without changing the tools.
DF–ISE tools use a common file that contains information about materials and functions that is shared
by different simulation tools. Generic properties (for example, materials insulator, semiconductor, and
metal) can be used to enable treatment of new materials or functions.
The detailed structures of the DF–ISE data sections are described in the following chapters. DF–ISE data
blocks contain a representation of the device geometry (that is, a representation of the regions of the
device or a spatial tessellation of the regions) or data values, defined on that tessellation.
User-defined keywords and data items can be added freely after the Data section. The Synopsys tools
ignore these data records (other tools may not). A library provides basic reading and writing. The
description of the library functions with the exact calling sequences is described in the include files of
this library.
DF–ISE files
DF–ISE files are organized in sections. An overview of the top-level sections of a DF–ISE file is
presented:
DF–ISE This section identifies DF–ISE files. No comments or other sections precede
this identifier. The DF–ISE section has no arguments and no body; therefore, it
does not enclose any other section.
1
CHAPTER 1 DF–ISE UTILITIES
text | binary One of these keywords follows DF–ISE and indicates whether the remainder of
the file is readable or in binary format. Only integer and floating-point values
can be stored in binary format.
Info This section provides additional information about the stored data.
Data This section is linked to a preceding Info section. Its content depends on the type
entry of the information section. The data section types supported by the format
are:
layout Layout geometry used for patterning operations. layout file names
should have the extension .lyt.
cell Cell structures, mainly used for 3D solid modeling. cell file names
should have the extension .cel.
recursive-tensor
Recursive tensor product grids used for compact storage of some
devices. recursive-tensor file names should have the extension .ten.
2
UTILITIES CHAPTER 1 DF–ISE
DF–ISE syntax
A formal definition of the DF–ISE syntax is:
file := DF–ISE text | binary <new_line> blocks
A DF–ISE file comprises a sequence of blocks, which can contain further blocks. A block always has
the following structure: block_name (argument){body}.
Both the argument and the body of a block are optional. The body of a block is either a sequence of
blocks or a sequence of data values. Finally, a data value is an integer, a floating-point value, a keyword,
a string delimited by quotation marks, or an array of data values. Comments start with # and end at the
end of line.
Blocks without body and data values are separated by space characters or new lines. The order of the
blocks in a file is given by the DF–ISE format.
When storing a binary DF–ISE file, an application can mix readable integer and floating values with
compressed values. An application that reads a binary DF–ISE file must be able to determine whether the
next value in the file is readable or in binary format. The DF–ISE library contains all the functions
needed for reading and writing values.
NOTE The precision of readable floating-point values depends on the application that writes the file.
3
CHAPTER 1 DF–ISE UTILITIES
X_REF
The layout data for patterning operations on the rear side of the wafer must be defined with the same
coordinate system used for the front side. This means that users who edit mask layers are always looking
at the front side of the wafer (see Figure 2).
Front side
"L" mask
L
"T" mask
T
3D simulation
domain Simulation domain bounding box
Rear side
Figure 2 Editing layout data for front and rear sides
Coordinate transformation
A coordinate transformation can be specified in recursive-tensor, boundary, and grid files. A
transformation is used to map 1D, 2D, or 3D devices to their real place in the 3D wafer. An application
that reads devices only must apply the coordinate transformation to the vertices of the device, except if
the application uses the original 3D wafer coordinate system internally.
4
UTILITIES CHAPTER 1 DF–ISE
Nothing is assumed regarding the ‘up’ direction of the global 3D coordinate system. However, the
orientation proposed in Reference coordinate system on page 4 should be used whenever possible.
The transformation from user coordinates to the global reference coordinate system is performed as
follows:
⎛ ⎞ ⎛ ⎞ ⎛
⎜ x ref ⎟ xx xy xz ⎜ x user ⎟ ⎜ dx ⎞⎟
⎜ y ⎟ = ⎜ ⎟ +⎜
⎜ ref ⎟ yx yy yz × ⎜ y user ⎟ ⎜ dy ⎟⎟
(1)
⎜ z ⎟ zx zy zz ⎜ z user ⎟ ⎝ dz ⎠
⎝ ref ⎠ ⎝ ⎠
The translation vector and transformation matrix are given in the CoordSystem block in this way:
translate = [<dx> <dy> <dz>]
transform = [<xx> <xy> <xz> <yx> <yy> <yz> <zx> <zy> <zz>]
Location codes
Location codes identify the position of vertices, edges, or faces. For example, a location code tells
whether a face is external (or visible), or a face is on an interface between two regions, or a face is fully
inside a 3D region. Location codes must be stored in boundary and grid files.
One-dimensional geometries
For one-dimensional geometries, a location code is defined for vertices. If a vertex is shared by more
than one segment belonging to different regions, it obtains the location code f (internal interface). If the
vertex is defined only in one segment of one region, it has the location code e (external interface), and
if more than one segment of the same region share the vertex, it has the location code i (internal). For
vertices shared only by points or segments that do not belong to any region, the location code is u
(undefined).
Two-dimensional geometries
For two-dimensional geometries, the location code is defined for edges. If an edge is contained only in
one 2D element (triangle, rectangle, polygon) which belongs to a region, the edge is called ‘external
interface.’ If it is shared by more than one 2D element that belongs to different regions, it is called
‘internal interface.’ If more than one 2D elements that belong to a region share the edge, this edge is
called ‘internal’ and, if there are only elements not belonging to any region and line segments sharing
the edge, the location code of the edge is ‘undefined.’
5
CHAPTER 1 DF–ISE UTILITIES
Three-dimensional geometries
For three-dimensional geometries, the location code is defined for faces. If a face belongs to exactly one
3D element included in a region, the face is called ‘external interface.’ If the face is shared by two 3D
elements belonging to different regions, it is called ‘internal interface.’ If the face is shared by two 3D
elements all belonging to the same region, the face is called ‘internal.’ If the face is shared by 3D
elements that do not belong to any region or by 2D elements, the location code is ‘undefined.’
Properties
Properties identify and characterize datasets. A global file dfise.pro that contains a list of properties is
provided in the Synopsys TCAD distribution. A tool that needs the information contained in this file
must read it during startup. layout, cell, recursive-tensor, boundary, grid, dataset, and xyplot files
reference the properties defined in the property database. Multiple properties for one region or one
dataset are allowed. In this case, the material or function name is a list of property names concatenated
with &. For example, an interface region can have the material Silicon&Oxide. This combined material
name is identical to Oxide&Silicon, but should not be confused with SiliconOxide. The attributes of
combined properties are not defined. An application can select any of the entries for setting colors,
interpolation, and so on. Binary compression is not allowed for this file.
Two main property types are defined: Material is used to define region properties and Function defines
the property of any dataset. cell and layout files do not distinguish between Material and Function
properties. Therefore, a property name must be unique within the complete property file.
formula Only valid for Function. It is used to compute datasets that have this property
from other datasets. A mathematical expression using property names must be
provided here. Variable or property names must be enclosed in angle brackets.
unit Only valid for Function. This is a quoted string that defines the unit of a dataset.
interpol Only valid for Function. Interpolation function (linear, log, arsinh).
DF–ISE text
Info {
version = 1.0
type = property
}
Data {
Material (SiliconOxide) {
6
UTILITIES CHAPTER 1 DF–ISE
symbol = "SiO2"
color = brown
}
...
Function (eDensity) {
symbol = "n"
unit = "1/cm^3"
interpol = arsinh
color = red
style = dashed
}
Function (TotalDopingConcentration) {
symbol = "N-tot"
unit = "1/cm^3"
interpol = arsinh
color = red
style = dashed
formula = "<BoronConcentration> + ..."
}
...
}
Layout
The layout file type stores the starting geometry (layout files) and the photolithography data (mask files)
required by all patterning operations of the process flow.
NOTE Simulation domains (a point for 1D, a line for 2D, and a polygon for 3D) can also be stored
in DF–ISE layout files. They have Sim1D, Sim2D, and Sim3D as predefined property names. The
property list is also used to find the color of the layers in the material blocks of the property
database.
A polygon entry of the Polygons block can have one or two vertices when it is used to define a 1D or 2D
simulation domain. The order of appearance of Region blocks must correspond to the regions entry list
of the Info block. The file structure is:
DF–ISE text | binary
Info {
version = 1.0
type = layout
nb_vertices = <int>
nb_polygons = <int>
nb_regions = <int>
regions = ["<region1>" "<region2>" ...]
materials = [<material1> <material2> ...]
}
Data {
Vertices (<nb_vertices>) {
<x0> <y0>
<x1> <y1>
7
CHAPTER 1 DF–ISE UTILITIES
...
}
Polygons (<nb_polygons>) {
<nb_vertices> <vertex> <vertex> ...
<nb_vertices> <vertex> <vertex> ...
...
}
Region ("<material1>") {
material = <material1>
Elements (<nb_elts>) {<elt0> <elt1> ...}
}
...
}
Cell
The ‘cell’ data structure uses a regular subdivision of the simulation domain into blocks of equal size
(cubes). Each block can be refined into groups of cells by splitting it along the x-axis, y-axis, or z-axis
(see Figure 3). The construction of general, not axis-aligned structures is achieved by defining a material
density value for each cell. Storing material densities is optional. By default, the maximal density value
1.0 is assumed. An unrefined block always has a material density of 1.0.
Z
1D Block
Cells
Base grid
X
Figure 3 Cell data structure
Geometry and datasets are stored in the same file and use the same format. Region identifiers and
material densities are considered as normal datasets. However, they have the reserved property names
regions and densities.
NOTE The refinement of the different datasets does not have to be identical, except for the material
density refinement, which must always match the region data. A property entry can either be
an entry of the material list or an entry of the function list in the property database.
8
UTILITIES CHAPTER 1 DF–ISE
The Info block defines the size of the simulation domain and refinement information. block_size is the
size in micrometers of the initial cubes building the simulation domain. The size of the simulation
domain is given by multiplying block_size by nb_xblocks, nb_yblocks, or nb_zblocks. When a block (cube)
is refined, nb_xsplits, nb_ysplits, and nb_zsplits define the number of cells for the given axis.
The numbering of blocks and cells always starts at the lowest coordinate. Indices are incremented by
traversing the structure first along the x-axis, then along the y-axis, and finally along the z-axis. In
practice, traversing the data structure is performed in this way:
for (bz = 0; bz < nb_zblocks; bz++) {
for (by = 0; by < nb_yblocks; by++) {
for (bx = 0; bx < nb_xblocks; bx++) {
if (block[bx][by][bz] is refined)
{
for (cz = 0; cz < nb_zsplits; cz++) {
for (cy = 0; cy < nb_ysplits; cy++) {
for (cx = 0; cx < nb_xsplits; cx++) {
...
}
}
}
}
}
}
}
The order of appearance of Dataset blocks must correspond to the datasets entry list of the Info block.
The structure of the file is:
DF–ISE text | binary
Info {
version = 1.0
type = cell
dimension = 1 | 2 | 3
block_size = <double>
nb_xblocks = <int>
nb_yblocks = <int>
nb_zblocks = <int>
nb_xsplits = <int>
nb_ysplits = <int>
nb_zsplits = <int>
nb_datasets = <int>
datasets = [ "<dataset1>" "<dataset2>" ... ]
properties = [ <property1> <property2> ... ]
}
Data {
Dataset ("<dataset1>") {
property = <property1>
Blocks (<nb_blocks>) {
<ref_flag> <value> ...
<ref_flag> <value> ...
...
}
}
9
CHAPTER 1 DF–ISE UTILITIES
Dataset ("<dataset2>") {
...
}
...
<ref_flag> is:
0: no refinement, only one data values follows
1: refinement along x, nb_xsplits data values follow
2: refinement along y, nb_ysplits data values follow
4: refinement along z, nb_zsplits data values follow
3: refinement along x and y, nb_xsplits * nb_ysplits values follow
...
7: refinement along x, y, and z, nb_xsplits * nb_ysplits
* nb_zsplits data values follow
}
Recursive tensor
A recursive grid is a generalization of a tensor grid. In addition to a base grid that is a tensor grid, it
allows recursive subdivision of elements. Vertices, edges, faces, and elements are defined implicitly
through the grid and its traversal rules. The tensor base grid can be:
Uniform Rectilinear grid with constant spacing in x-direction, y-direction and z-direction
(the spacing for each direction is given separately).
Rectilinear Rectilinear grid with nonconstant spacing between coordinate planes.
Warped Grid with tensor mesh topology and explicit coordinates for each vertex.
The numbering of vertices, edges, faces, and elements starts with index 0 at the lowest coordinates and
goes first through the x-axis, y-axis, and then z-axis. The entries nb_x, nb_y, and nb_z in the Info block
represent the number of vertices of the base grid in each of the dimensions. Vertices, edges, faces, and
elements are implicitly numbered as follows:
There are a total of ( nb_x ) ( nb_y ) ( nb_z ) nodes. Node ( i, j, k ) has the number
i + j ( nb_x ) + k ( nb_x ) ( nb_y ) , where 0 ≤ i < nb_x, 0 ≤ j < nb_y, 0 ≤ k < nb_z .
There are a total of
( nb_x – 1 ) ( nb_y ) ( nb_z ) + ( nb_x ) ( nb_y – 1 ) ( nb_z ) + ( nb_x ) ( nb_y ) ( nb_z – 1 ) edges. The
edges are numbered or traversed in the following way: First, the vertices are traversed in the order
given below and, for each vertex, first the edge pointing along the positive x-axis is taken, then the
one pointing along the positive y-axis, and finally the one pointing along the positive z-axis. At the
boundary of the simulation domain, the edge index is not incremented when no edge exists in the
given direction.
There are a total of (nb_x)(nb_y–1)(nb_z–1)+(nb_x–1)(nb_y)(nb_z–1)+(nb_x–1)(nb_y–1)(nb_z)
faces. The face numbering is analogous to the edge numbering. At each vertex, the three faces
orthogonal to the x, y, and z axes are taken.
10
UTILITIES CHAPTER 1 DF–ISE
There are, in principle, a total of ( nb_x – 1 ) ( nb_y – 1 ) ( nb_z – 1 ) elements. However, additional
dummy elements are added at the upper bounds of the coordinate ranges, so that total number of
elements is ( nb_x ) ( nb_y ) ( nb_z ) . Element ( i, j, k ) has, therefore, the number
i + j ( nb_x ) + k ( nb_x ) ( nb_y ) , where 0 ≤ i < nb_x, 0 ≤ j < nb_y, 0 ≤ k < nb_z .
The contents of the BaseGrid block depend on the tensor grid subtype as follows:
For uniform grids, it contains the spacings Δx , Δy , and Δz in the directions of the coordinate
planes. Vertex number 0 is implicitly at (0,0,0); the CoordSystem block can be used for further
moving.
For rectilinear grids, it contains the spacings Δx1, …, Δxnb_x–1, Δy1, …, Δynb_y–1, Δz1, …, Δznb_z–1, that
is, there are nb_x–1 entries for the x-direction, nb_y–1 entries for the y-direction, and nb_z–1 entries
for the z-direction. Vertex number 0 is implicitly at (0,0,0); the CoordSystem block can be used for
further moving.
For warped grids, it contains the coordinates of the grid vertices x0, y0, z0, x1, y1, z1, …, xnb_v , ynb_v ,
and znb_v where the numbering is the natural cell numbering, that is, varying fastest along the x-axis.
The CellTree block is used only if the mesh is recursively refined; if it is missing, the data structure is an
ordinary tensor mesh. Otherwise, for each macroelement including the dummy elements, the recursive
grid structure is indicated as:
<min_lev> <max_lev> <nb_el> <sub_el0> <sub_el1> ... <sub_el_nb_el>
min_lev and max_lev are the minimum and maximum refinement levels in the macroelement. A value of
0 means that the macroelement is unrefined. The number of elements nb_el gives the number of elements
in the macroelement that result in the final mesh. A value of 0 indicates that the macroelement is a
dummy element or is deleted from the mesh; a value of 1 means that it is unrefined.
If the minimum and maximum refinement levels of a macroelement are equal, the mesh can be
constructed implicitly and the mesh description within the macroelement is complete. If the refinement
levels are not equal, they are followed by a list of the subelements sub_el within the macroelement. A
simple numbering scheme is used to indicate the subelements. The numbering proceeds looping through
each parent element at a level. Figure 4 shows an example of a 2D scheme.
Level 0 Level 1 Level 2
6 7 10 11
2 3
8 9 12 13
1
14 15 18 19
4 5
16 17 20 21
The coordinates of the joints (vertices) of the refined grid are determined uniquely by the base grid and
the cell tree.
11
CHAPTER 1 DF–ISE UTILITIES
Regions are used to denote materials and boundary conditions. Regions can reference vertices, edges,
faces, and elements of the base grid (not the refined grid) through their implicitly defined number (see
above). The order of appearance of Region blocks must correspond to the regions entry list of the Info
block. The material entry can be empty.
For data on the recursive grids, the DF–ISE data file format is used.
Info {
version = 1.0
type = recursive-tensor
subtype = uniform | rectilinear | warped
dimension = 1 | 2 | 3
extents = <int> | <int> <int> | <int int> <int>
nb_regions = <int>
regions = ["<region1>" "<region2>" ...]
materials = [<material1> <material2> ...]
}
Data {
CoordSystem {
translate = [<dx> <dy> <dz>]
transform = [<xx> <xy> <xz> <yx> <yy> <yz> <zx> <zy> <zz>]
}
BaseGrid (<nb_entries>) {
<e0> <e1> <e2>
}
CellTree (<nb_macro_elements>) {
<min_lev> <max_lev> <nb_el> <sub_el0> <sub_el1> ... <sub_el_nb_el>
...
...
}
Region ("<region1>") {
material = <material1>
Edges (<nb_edge>) {<edge0> <edge1> ...}
Faces (<nb_face>) {<face0> <face1> ...}
}
Region ("<region2") {
material = <material2>
Vertices (<nb_vert>) {<vert0> <vert1> ...}
}
Region ("<region3>") {
material = <material3>
Faces (<nb_fac>) {<fac0> <fac1> ...}
}
Region ("<region4 >") {
material = <material4>
Elements (<nb_elts>) {<elt0> <elt1> ...}
}
}
12
UTILITIES CHAPTER 1 DF–ISE
Variable tensor
A variable tensor grid is a generalization of a recursive tensor grid. The recursive subdivisions allowed
are not restricted to powers of two, and the addition of a property tree allows for property changes within
a cell of the tensor grid. In addition to a base grid that is a tensor grid, the variable tensor grids allow
recursive subdivision of elements.
Vertices, edges, faces, and elements are defined implicitly through the grid and its traversal rules. The
tensor base grid can be:
Uniform Rectilinear grid with constant spacing in x-direction, y-direction, and z-
direction (the spacing for each direction is given separately).
Rectilinear Rectilinear grid with nonconstant spacing between coordinate planes.
Warped Grid with tensor mesh topology and explicit coordinates for each vertex.
The numbering of vertices, edges, faces and elements starts with index 0 at the lowest coordinates and
goes first through the x-axis, y-axis, and then z-axis. The entries nb_x, nb_y, and nb_z in the Info block
represent the number of vertices of the base grid in each of the dimensions. Vertices, edges, faces, and
elements are implicitly numbered as follows:
There are a total of ( nb_x ) ( nb_y ) ( nb_z ) nodes. Node ( i, j, k ) has the number
i + j ( nb_x ) + k ( nb_x ) ( nb_y ) , where 0 ≤ i < nb_x, 0 ≤ j < nb_y, 0 ≤ k < nb_z .
There are a total of
( nb_x – 1 ) ( nb_y ) ( nb_z ) + ( nb_x ) ( nb_y – 1 ) ( nb_z ) + ( nb_x ) ( nb_y ) ( nb_z – 1 ) edges. The
edges are numbered or traversed in the following way: first the vertices are traversed in the order
given below and, for each vertex, first the edge pointing along the positive x-axis is taken, then the
one pointing along the positive y-axis, and finally the one pointing along the positive z-axis. At the
boundary of the simulation domain, the edge index is not incremented when no edge exists in the
given direction.
There are a total of (nb_x)(nb_y–1)(nb_z–1)+(nb_x–1)(nb_y)(nb_z–1)+(nb_x–1)(nb_y–1)(nb_z)
faces. The face numbering is analogous to the edge numbering. At each vertex, the three faces
orthogonal to the x, y, and z axes are taken.
There are, in principle, a total of ( nb_x – 1 ) ( nb_y – 1 ) ( nb_z – 1 ) elements. However, additional
dummy elements are added at the upper bounds of the coordinate ranges, so that total number of
elements is ( nb_x ) ( nb_y ) ( nb_z ) . Element ( i, j, k ) has, therefore, the number
i + j ( nb_x ) + k ( nb_x ) ( nb_y ) , where 0 ≤ i < nb_x, 0 ≤ j < nb_y, 0 ≤ k < nb_z .
The contents of the BaseGrid block depend on the tensor grid subtype as follows:
For uniform grids, it contains the spacings Δx , Δy , and Δz in the directions of the coordinate
planes. Vertex number 0 is implicitly at (0,0,0); the CoordSystem block can be used for further
moving.
For rectilinear grids, it contains the spacings Δx1, …, Δxnb_x–1, Δy1, …, Δynb_y–1, Δz1, …, Δznb_z–1, that
is, there are nb_x–1 entries for the x-direction, nb_y–1 entries for the y-direction, and nb_z–1 entries
13
CHAPTER 1 DF–ISE UTILITIES
for the z-direction. Vertex number 0 is implicitly at (0,0,0); the CoordSystem block can be used for
further moving.
For warped grids, it contains the coordinates of the grid vertices x0, y0, z0, x1, y1, z1, …, xnb_v , ynb_v ,
and znb_v where the numbering is the natural cell numbering, that is, varying fastest along the x-axis.
The CellTree block is used only if the mesh is recursively refined; if it is missing, the data structure is an
ordinary tensor mesh. Only those macro cells that are refined will have an entry in the CellTree. Such
entries are defined as follows:
<index> <x-refinement> <y-refinement> <z-refinement> <nb_el> <sub_el0> <sub_el1> ...
<sub_el_nb_el>
indexrefers to the cell index of the refined macro cell. x-refinement, y-refinement, and z-refinement give
the number of refinement levels in the respective direction. The number of elements nb_el gives the
number of elements in the macroelement that result in the final mesh. This is followed by a list of the
subelements sub_el within the macroelement. A simple numbering scheme is used to indicate the
subelements. The numbering proceeds looping through each of the parent elements at a level.
The coordinates of the joints (vertices) of the refined grid is determined uniquely by the base grid and
the cell tree. The numbering scheme and calculation of coordinates are performed analogously to the
case of the recursive tensor grid.
The Properties can be used to assign different properties, for example, materials, to the subcells of a
refined macro cell:
<index> <nb_el> <prop_sub_el0> <prop_sub_el1> ... <prop_sub_el_nb_el>
index refers to the cell index of the refined macro cell; it should also appear in the CellTree. The
refinements are taken from CellTree and the properties of the subcells must refer one-to-one to the
subcells of the respective entry in CellTree. Although each entry of Properties should have an entry in
CellTree, the reverse is not true. In general, single entries or the entire Properties block can be omitted,
in which case all subcells are assumed to have the same property.
Regions are used to denote materials and boundary conditions. Regions can reference vertices, edges,
faces, and elements of the base grid (not the refined grid) through their implicitly defined number (see
above). The order of appearance of Region blocks must correspond to the regions entry list of the Info
block. The material entry can be empty.
For data on the variable tensor grids, the DF–ISE data file format is used.
Info {
version = 1.0
type = variable-tensor
subtype = uniform | rectilinear | warped
dimension = 1 | 2 | 3
extents = <int> | <int> <int> | <int int> <int>
nb_regions = <int>
14
UTILITIES CHAPTER 1 DF–ISE
An index to a face is signed. When negative, the real face index is computed by face_index = –index–1.
The negative sign means that the edge order of the face as well as the edge orientation must be inverted.
Face orientation is important to obtain a consistent orientation of the object (counterclockwise
orientation of the edges when looking from outside of the solid including this face). An edge index is
15
CHAPTER 1 DF–ISE UTILITIES
signed in the same way as a face index. A negative edge sign means that the first vertex and not the
second is connected to the next edge of a loop.
NOTE The DF–ISE library provides a function to fix the orientation of the faces of a 3D boundary.
Elements have a shape code that defines the element geometry and the data following this code.
Elements of different shape can be given in any order. The following elements are predefined:
Point 0 vertex
Segment 1 vertex0 vertex1
Triangle 2 edge0 edge1 edge2
Rectangle 3 edge0 edge1 edge2 edge3
Polygon 4 nb_edges edge0 edge1...
Tetrahedron 5 face0...face3
Pyramid 6 face0...face4
Prism 7 face0...face4
Brick 8 face0...face5
Tetrabrick 9 face0...face6
Polyhedron 10 nb_faces face0 face1...
The edge and face lists of polygons and polyhedra do not have to be connected. They can be a set of
loops and shells that define the outer boundary and internal holes of an element.
An edge orientation for each element is also predefined. The edge orientation is used when storing data
on edges locally for each element. The vertex order for each edge of the elements is:
Segment: Tetrahedron:
e0: v0 v1 e0: v0 v1
e1: v1 v2
Triangle: e2: v2 v0
e0: v0 v1 e3: v0 v3
e1: v1 v2 e4: v1 v3
e2: v2 v0 e5: v2 v3
Rectangle: Pyramid:
e0: v0 v1 e0: v0 v1
e1: v1 v2 e1: v1 v2
e2: v2 v3 e2: v2 v3
e3: v3 v0 e3: v3 v0
e4: v0 v4
Polygon: e5: v1 v4
e0: v0 v1 e6: v2 v4
e1: v1 v2 e7: v3 v4
…
16
UTILITIES CHAPTER 1 DF–ISE
Prism: Brick:
e0: v0 v1 e5: v2 v5 e0: v0 v1 e6: v2 v6
e1: v1 v2 e6: v3 v4 e1: v1 v2 e7: v3 v7
e2: v2 v0 e7: v4 v5 e2: v2 v3 e8: v4 v5
e3: v0 v3 e8: v5 v3 e3: v3 v0 e9: v5 v6
e4: v1 v4 e4: v0 v4 e10: v6 v7
e5: v1 v5 e11: v7 v4
Tetrabrick:
e0: v0 v1 e6: v2 v5
e1: v1 v2 e7: v2 v6
e2: v2 v3 e8: v3 v6
e3: v3 v0 e9: v4 v5
e4: v0 v4 e10: v5 v6
e5: v1 v5 e11: v6 v4
F4 (top)
F2 (back)
E2
E2 E1
F1 (back)
E3 E1
F0
E0 E0
F3 (bottom)
F2 (back)
F2 (back)
F3 (back)
F1 F1
F0
F0
F3 (bottom) F4 (bottom)
F5 (top) F6 (top)
F4 (back)
F3 (back) F2 (back) F0 (back)
F2
F1 F3
F0 F1
F4 (bottom) F5 (bottom)
17
CHAPTER 1 DF–ISE UTILITIES
The order of appearance of Region blocks must correspond to the regions entry list of the Info block.
Several regions with the same name are allowed:
DF–ISE text | binary
Info {
version = 1.0
type = boundary | grid
dimension = 1 | 2 | 3
nb_vertices = <int>
nb_edges = <int>
nb_faces = <int>
nb_elements = <int>
nb_regions = <int>
regions = [ "<region1>" "<region2>" ... ]
materials = [ <material1> <material2> ... ]
}
Data {
CoordSystem {
translate = [ <dx> <dy> <dz> ]
transform = [ <xx> <xy> <xz> <yx> <yy> <yz> <zx> <zy> <zz> ]
}
for 1d, 2d, and 3d
Vertices (<nb_vertices>) {
<x0> <y0> <z0>
<x1> <y1> <z1>
...
}
for 2d and 3d
Edges (<nb_edges>) {
<vertex0> <vertex1>
<vertex0> <vertex1>
...
}
for 3d
Faces (<nb_faces>) {
<nb_edges> <edge0> <edge1> ... <edge_n>
<nb_edges> <edge> <edge> ...
...
}
nb_vert. for 1d, nb_edges for 2d, nb_faces for 3d
Locations (<nb_vertices> | <nb_edges> | <nb_faces>) {
i (internal) | f (internal interface) |
e (external interface) | u (undefined)
...
}
Elements (<nb_elements>) {
0 <vertex>
1 <vertex0 <vertex1>
2 <edge0 <edge1> <edge2>
3 <edge0 <edge1> <edge2> <edge3>
4 <nb_edges> <edge0> <edge1> ... <edge_n>
5 <face0 ... <face3>
6 <face0 ... <face4>
7 <face0 ... <face4>
8 <face0 ... <face5>
9 <face0 ... <face6>
18
UTILITIES CHAPTER 1 DF–ISE
e5
e1
e3
e4
e3
0 1 2
e0 0 e0 1 e2 e1
0 e0 1
3 4
e6
e5
e3
e5
e7
e4
e4
2 3 e2
2
e2 e3
e1 e1
0 e0 1 0 e0 1
7 e10 6 4 e11 6
e11 e9 e9
e8 5 5 e10
4
e4
e8
e7
e6
e7
e6
e5
e5
3 e2 0 e3
e4
e3 2 3
e0
e1 e2
0 e0 1 1 e1 2
19
CHAPTER 1 DF–ISE UTILITIES
Dataset
The dataset files add scalar or vector values to the nodes, edges, faces, elements, or regions of a grid file.
The data location is limited to vertex, edge, face, element, or region. Two additional location codes are
used to store Voronoï data: vertex_element and edge_element. Only Sentaurus Device understands these
codes.
dimension gives the set number of data values per location (1 for scalars, > 1 for vectors). The dimension
entry has a different meaning than the geometry dimension given in the Info block. The type of a dataset
is either a scalar or vector.
validity gives the list of regions in which the dataset is defined. For consistency, data values should only
be defined for the entries belonging to these validity regions.
NOTE The DF–ISE library provides some functions to access the values of a dataset for a given
validity region. For the moment, this can only be used with datasets whose location is vertex.
Discontinuous datasets are a matter of interpretation of the data file format. Several datasets with the
same quantity can be present in a single data file. Each instance of the dataset should be defined for a
different set of regions (including the boundary points of a region). The entire dataset can, therefore, be
discontinuous across boundaries. Due to the interpretational nature of this definition of discontinuous
datasets, different tools may handle data files with such datasets differently. Refer to specific manuals
for detailed descriptions of individual tools.
Data values are given in the order predefined by the location entry. When vectors are stored, all
components are given per item (vertex, edge, ...) in the Values block.
The order of appearance of Dataset blocks must correspond to the datasets entry list of the Info block.
Functions are references to the function blocks stored in the property file. Several datasets with the same
name are allowed (with different validity regions, this may be used to define data discontinuities):
DF–ISE text | binary
Info {
version = 1.0
type = dataset
dimension = 1 | 2 | 3
nb_vertices = <int>
nb_edges = <int>
nb_faces = <int>
nb_elements = <int>
nb_regions = <int>
datasets = ["<dataset1>" "<dataset2>" ...]
functions = [<function1> <function2> ...]
}
Data {
Dataset ("<dataset1>") {
function = <function1>
type = scalar | vector
20
UTILITIES CHAPTER 1 DF–ISE
xyplot
The xyplot files are used to store curves. The property list gives additional information for each data
column of the file. The x-axis is not always in the first column, since the user can select freely the dataset
mapped on the x-axis. For undefined values (discontinuities in the curve), the character ‘u’ is used as a
placeholder:
DF–ISE text | binary
Info {
version = 1.0
type = xyplot
datasets = ["<dataset1>" "<dataset2>" ...]
functions = [<function1> <function2> ...]
}
Data {
<v0_d1> <v0_d2> ... (one value for each data set)
<v1_d1> <v1_d2> ... (one value for each data set)
...
}
21
CHAPTER 1 DF–ISE UTILITIES
Examples
This section provides examples of the DF–ISE file format.
point 1
region "cathode"
property Contact
x = 1.0
location external
region "gate"
property Oxide segment 2
x = 0.0
location interface
segment 1
region "substrate"
x = -5.0
property Silicon
location internal
segment 0
region "anode"
x = -10.0
property Contact
location external
point 0
region "cathode"
Eij: E <edge number> <location> segment 1
e: external
E16e E17e
f: interface (0, 1)
i: internal
E13e
E15e
E14i
E4e
E2e
rectangle 0 rectangle 1
E0e E1e
(0, -10) (5, -10) (10, -10)
segment 0
region "anode"
Figure 8 Two-dimensional grid
22
UTILITIES CHAPTER 1 DF–ISE
Tetrahedron
Pyramid region "gate"
region "gate"
(5, 1.5, 7) V10
triangle 1
triangle 0
region "cathode"
region "cathode" V9
(front) V8
(front) V5
(12, 1.5, 0) V7
V6
(0, 3, -10) V4
V3
(0, 0, -10) V0
(12, 1.5, -10) V1 V2
(10, 0, -10)
E4 E3
E5 E2 F3e (front)
E0
E1 F2e (front)
F0e (floor) F1e (floor)
Edge numbering Face numbering with
location codes
23
CHAPTER 1 DF–ISE UTILITIES
24
UTILITIES CHAPTER 2 THE FILE DATEXCODES.TXT
CHAPTER 2
Overview
The file datexcodes.txt is the Synopsys configuration database for materials, doping species, and other
quantities that are used in semiconductor process and device simulation. The database is referred to by
the various Synopsys TCAD software for different purposes. It does not contain physical properties of
materials or quantities, but configuration properties such as names, colors, and labels. The file is divided
into three sections: header, materials, and variables. Each material in the materials section and each
quantity in the variables section are described by several properties that are explained here.
Header
The first four lines in the file datexcodes.txt consist of a header:
DATEX2.1
Datacode
"$Id$"
"Data codes for semiconductor process and device simulation"
The first two lines specify the version number and type of the file. The last two lines are strings
containing comments.
Materials
A material, for example, silicon, can be specified as follows:
Silicon {
label = "Silicon"
group = Semiconductor
color = #ffb6c1
alter1 = Si
alter2 = 3
}
25
CHAPTER 2 THE FILE DATEXCODES.TXT UTILITIES
color Color used for display (hexadecimal intensities for red, green, blue; default #b0b0b0).
NOTE A code number such as code=22 is also recognized. Materials with the same code number are
considered aliases. This is an obsolete feature and may be discontinued in the future.
Alternative colors can be listed after the primary color, for example:
Silicon {
...
color = #ffb6c1, #ac3320, #f18010
...
}
Variables
A variable, for example, ElectricField, can be specified as follows:
ElectricField {
label = "electric field"
symbol = "E"
unit = "V/cm"
factor = 1.0e+04
arsinh = 1.0e+14
precision = 4
interpol = linear
material = All
alter1 = em
alter2 = 103
}
26
UTILITIES CHAPTER 2 THE FILE DATEXCODES.TXT
unit Unit used for display and data exchange (default 1).
It is possible to declare multiple names (or aliases) for a variable, for example:
BoronConcentration, BoronChemicalConcentration {
...
}
NOTE A code number such as code=43 is also recognized. Variables with the same code number are
considered aliases. This is an obsolete feature and may be discontinued in the future.
The following keywords are also valid for the precision field: half, single, and double. They correspond
to the numeric values of 3, 7, and 14, respectively.
27
CHAPTER 2 THE FILE DATEXCODES.TXT UTILITIES
Search strategy
Multiple datexcodes.txt files can be used. The following search strategy is observed:
$STROOT/datexcodes.txt or $STROOT/tcad/$STRELEASE/lib/datexcodes.txt if the environment variable
STROOT_LIB is not defined (lowest priority).
$HOME/datexcodes.txt (medium priority).
datexcodes.txt in local directory (highest priority).
Definitions in later files replace or add to the definitions in the earlier files. In this way, the local file only
needs to contain new materials or variables that the user wants to add.
28
UTILITIES CHAPTER 3 DFISETOOLS
DFISETOOLS
Utilities
CHAPTER 3
This chapter describes the DFISETOOLS file and provides examples of how to use the DF–ISE
functionality.
Overview
For DF–ISE layout, boundary and grid files, the following utilities are available:
Print general information about the file
Cut a 3D device with a plane
Sample a device with a line segment
Mirror a device through a plane
Extend a 2D geometry in 3D
Set or apply a transformation to a geometry
Tessellate a 2D or 3D geometry
Compress and decompress dataset files
29
CHAPTER 3 DFISETOOLS UTILITIES
-ri Removes interfaces from a boundary or grid file. Files created by Sentaurus
Process contain interfaces between neighboring regions. Files that contain
interfaces cannot be handled by all Synopsys TCAD tools. This option creates
a copy of the original file without interfaces.
-rid Removes interfaces from a boundary or grid file, and a corresponding .dat file.
Files created by Sentaurus Process contain interfaces between neighboring
regions. Files that contain interfaces cannot be handled by all Synopsys TCAD
tools. This option creates a copy of the original files without interfaces.
-set_trans Sets transformation.
-tessellate Tessellates.
-transform Applies transformation.
DFISETOOLS can be used interactively or through a tool command language (Tcl) script file.
DFISETOOLS performs all of the operations specified by the options in the interactive mode on the
given DF–ISE files. The produced files have an operation-dependent suffix _cut for cutplane results or
_plot for plot results.
When used through a Tcl script, DFISETOOLS executes each command for the specified DF–ISE files,
with the possibility to specify the suffix of the produced files (see Using DFISETOOLS with a Tcl script
on page 41).
Use dfisetools script_name
Examples on how to use DFISETOOLS can be found in the DF–ISE/dfisetools directory in the Manual
Examples Library.
DFISETOOLS file
Use dfisetools -r filename
Validity DF–ISE layout files; 1D, 2D, 3D DF–ISE boundary files; 1D, 2D, 3D DF–ISE
grid files
30
UTILITIES CHAPTER 3 DFISETOOLS
Number of regions
Bounding box of the object
**************
3dgrid.grd
**************
grid file
dimension = 3
number of points = 1680
number of edges = 4822
number of faces = 4620
number of elements = 1567
number of regions = 7
Bounding box:
min = 0 0 1
max = 2 6.4 9.4
For a cut in a 3D grid, both .grd and .dat files are required. Several .dat files can be associated to the
same grid file.
Validity 3D DF–ISE boundary files, 3D DF–ISE grid files
For a 3D boundary, the result is a DF–ISE 2D boundary (filename_cut.bnd) that can be displayed with
Mdraw. For a 3D grid, the result is a DF–ISE 2D grid (filename_cut.grd and filename_cut.dat) that can
be examined with Tecplot SV. The user defines the cutplane by typing its origin and normal vector.
31
CHAPTER 3 DFISETOOLS UTILITIES
Initial object Cutplane input: [origin = (0, 3.8, 1) – normal = (0, 1, 0)]
Initial object Cutplane input: [origin = (0, 3.8, 1) – normal = (0, 1, 0)]
32
UTILITIES CHAPTER 3 DFISETOOLS
For a plot in a 1D, 2D, or 3D grid, both .grd and .dat files are required. Several .dat files can be
associated to the same grid file.
Validity 1D, 2D, 3D DF–ISE grid files
The result is a DF–ISE plot file (filename_plot.plt) that can be examined with Inspect. Users define the
cutline by entering its two end-points.
Initial object (see Example 2: Cutting a plane through a 3D grid on page 32)
Cutline input: [A = (1, 3, 1) – B = (1, 5, 9.36)]
DopingConcentration_0
ArsenicConcentration_1
BoronConcentration_2
2e+17
0
Y
-2e+17
2 4 6 8
X
33
CHAPTER 3 DFISETOOLS UTILITIES
DonorConcentration_2
1000000000
500000000
-10 -5 0
NOTE When mirroring 2D or 3D grids, DFISETOOLS creates corrupt DF–ISE files that cannot be
converted to TDR format. The data converter Sentaurus Data Explorer can be used to mirror
grids and to create DF–ISE or TDR files (see Sentaurus Data Explorer, Mirror commands on
page 14).
This function reflects an object through a given plane and creates a new object by merging the initial
object and its reflection.
NOTE If the object to reflect is a grid, the corresponding data file is accessed with the same
basename as the geometry file (with the extension .dat).
Depending on the type of the object, one or two new DF–ISE files are created:
Layout files: filename_refl_axis.lyt
Boundary files: filename_refl_axis.bnd
Grid files: filename_refl_axis.grd and filename_reflect_axis.dat
Tensor product files: filename_refl_axis.ten
34
UTILITIES CHAPTER 3 DFISETOOLS
Initial object
Reflect input: x
35
CHAPTER 3 DFISETOOLS UTILITIES
Initial object (see Example 2: Cutting a line through a 2D grid on page 34)
Reflect input: y
36
UTILITIES CHAPTER 3 DFISETOOLS
Initial object (see Example 1: Cutting a plane through a 3D boundary on page 32)
Reflect input: y
Initial object (see Example 2: Cutting a plane through a 3D grid on page 32)
Reflect input: x
37
CHAPTER 3 DFISETOOLS UTILITIES
Extending 2D geometry
Use dfisetools -extend filename
Validity 2D DF–ISE boundary files, 2D DF–ISE grid files
For a 2D boundary, the result is a DF–ISE 3D boundary (filename_ext.bnd). For a 2D grid, the result is
a DF–ISE 3D grid (filename_ext.grd and filename_ext.dat) that can be examined with Tecplot SV.
NOTE If the object to reflect is a grid, the corresponding data file is accessed with the same
basename as the geometry file (with the extension .dat).
Initial object (see Example 2: Cutting a line through a 2D grid on page 34)
Extension input: [direction of normal, length = 4.0, step = 2]
38
UTILITIES CHAPTER 3 DFISETOOLS
For any type of geometry, this operation results in a modification of the translation vector and
transformation matrix in the DF–ISE geometry file (filename_tsf.{grd,bnd,ten}).
For any type of geometry, this operation consists of applying, to the vertices of a DF–ISE geometry file,
the transformation defined in the translation vector and transformation matrix
(filename_tsf.{grd,bnd,ten}). The translation vector of the output file is set to null and its transformation
matrix is set to identity.
Tessellating a geometry
Use dfisetools -tessellate filename
Validity 2D, 3D DF–ISE boundary files
This operation consists of triangulating each polygon that defines the input geometry. It produces a new
DF–ISE boundary file (filename_tess.bnd).
39
CHAPTER 3 DFISETOOLS UTILITIES
Initial object (see Example 1: Cutting a plane through a 3D boundary on page 32)
40
UTILITIES CHAPTER 3 DFISETOOLS
"======================================================"
"-- 1d TESTS --"
"======================================================"
"======================================================"
"-- 2d TESTS --"
"======================================================"
41
CHAPTER 3 DFISETOOLS UTILITIES
"======================================================"
"-- 3d TESTS --"
"======================================================"
42
UTILITIES CHAPTER 3 DFISETOOLS
43
CHAPTER 3 DFISETOOLS UTILITIES
44
UTILITIES CHAPTER 4 CURPOT
Curpot
Utilities
CHAPTER 4
This chapter describes the postprocessing tool Curpot and provides instructions for its use.
Overview
Curpot is a small postprocessing tool for computing the current potential from the total current density
for two-dimensional simulations performed with Sentaurus Device. The computational method is
implemented after1:
Abstract
The conservation of the total current density in semiconductor devices implies that the
current derives from a vector potential. The calculation of this current potential is a dual
problem of the original device simulation problem. A simple and elegant discrete method is
proposed for the 2-D case, which yields the current potential for a given, numerically
calculated current density. The approach is based upon a least squares principle and is
consistent with the assumptions leading to the discrete formulation of the semiconductor
transport equations. Accurate values of the contact currents are obtained and a simple way to
generate representations of current lines becomes available. The method has the advantage
that it does not require any definition of paths for the integration of current files.
Using Curpot
Curpot is used as follows:
curpot <grid file> <data file> <output file>
where <grid file> is the name of the grid file belonging to the simulated problem, <data file> is the
name of the plot file saved by Sentaurus Device after successfully finishing a simulation, and <output
file> is the name of the file where the data for the current potential is stored (in DF–ISE format).
NOTE The <data file> should contain (at least) the plot data for the total current density, that is,
TotaCurrentDensityshould have been specified in the Plot statement of the input file of
Sentaurus Device.
1. E. Palm and F. Van de Wiele, “Current Lines and Accurate Contact Current Evaluation in 2-D Numerical
Simulation of Semiconductor Devices,” IEEE Transactions on Electron Devices, vol. ED-32, no. 10,
pp. 2052–2059, 1985.
45
CHAPTER 4 CURPOT UTILITIES
Example
The following figures display plots of the current density and current potential for a simple device. The
current potential was computed with Curpot.
CTotal
u rre Current
nt P o teDensity
nt ia l
10
5
Y
9.0e+03
1.6E+00
8.1e+03
1.4E+00
7.2e+03
1.3E+00
4
6.4e+03
1.1E+00
5.5e+03
9.5E-01
3 4.6e+03
7.9E-01
3.7e+03
6.4E-01
2.9e+03
4.8E-01
2 2.0e+03
3.3E-01
1.1e+03
1.7E-01
2.2e+03
1.6E-02
1
0 2 4 6 8 10
TCurrent
o ta l C Potential
ur re nt D e ns it y
10
5
Y
1.6e+00
9.0E+03
1.4e+00
8.1E+03
1.3e+00
7.2E+03
4
1.1e+00
6.4E+03
9.5e-01
5.5E+03
7.9e-01
4.6E+03
3
6.4e-01
3.7E+03
4.8e-01
2.9E+03
2 3.3e-01
2.0E+03
1.7e-01
1.1E+03
1.6e-02
2.2E+02
1
0 2 4 6 8 10
46
UTILITIES CHAPTER 5 CONVERTER FOR SUPREM-4: SUP2LIG
CHAPTER 5
Overview
This utility allows the conversion of input files of SUPREM-4 or its derivatives into the simple process
representation (SPR) language of Ligament (see Ligament, Simple process representation package on
page 95). The fundamental concept behind this program is not the translation of fully calibrated process
flows, but the possibility of a smooth and user-friendly transition from one format to another.
Since sup2lig invokes Ligament after its conversion process, the user automatically obtains a command
file for the required process simulator:
SUPREM® IV => sup2lig => LIGAMENT => DIOS/SPROCESS/SDE
Main features
Input format
The program supports most input format features of SUPREM-4, for example, macro definitions are
recognized and expanded, arithmetic expressions are calculated, lines can be concatenated using a plus
(+) sign, and parameter and statement abbreviations are allowed. However, discussion is restricted to
official documented input syntax.
47
CHAPTER 5 CONVERTER FOR SUPREM-4: SUP2LIG UTILITIES
Supported commands
In general, sup2lig only translates process simulation and several auxiliary commands (and their
synonyms):
Comment
Source
Return (interactive mode is not supported)
Foreach (loops cannot be generated, but it is possible to take the first element of the list and treat
this command as a ‘define’ statement)
Define
Undefine
Line (to calculate the lateral and vertical extent of the simulation domain)
Initialize
Mask
Mesh (adaptive grid algorithms are implemented in Dios, therefore, this command is ignored)
Deposition
Expose
Develop
Etch
Implantation
Diffusion
Epitaxy
Method
48
UTILITIES CHAPTER 5 CONVERTER FOR SUPREM-4: SUP2LIG
Specialities
Furthermore, the process flow and layout information are clearly distinguished. Therefore, CIF masks
are also generated for commands such as:
etch nitride right p1.x=0.25
The SPR language of Ligament contains one command for these three process steps:
pattern (layer: nwell, polarity: light_field,
thickness: 1 um, side: front, type: default)
Therefore, if a deposition statement with parameter Photores is detected, the polarity is stored and this
deposition command is omitted (see Known problems on page 51).
Etching
Since Dios cannot support pure geometric etch algorithms, a support of arbitrary trapezoidal etch steps
is not feasible. Nevertheless, simple etch statements are converted (see above) and an effort is made to
detect process steps for generating ‘spacers.’
For example, in the latter case, sup2lig and Ligament write a Dios command file that includes ??. This
command file forces an error during syntax check:
! SUPREM: etch NITRIDE THICKNESS=0.15 TRAPEZOI ANGLE=80
Etch (time=1, Rate (mat=??nitride??, a1=150.0))
The user is requested to confirm this translation explicitly by editing the Dios command file. This
precaution prevents long simulation runs with wrong or incomplete command files.
49
CHAPTER 5 CONVERTER FOR SUPREM-4: SUP2LIG UTILITIES
Starting sup2lig
To start sup2lig on the command line, use:
sup2lig
or:
sup2lig -h
When the program has started, the command-line options with short descriptions are printed.
****************************************************************************
*** sup2lig ***
*** Version Y-2006.06 ***
*** (1.2, ia32, linux_gnu) ***
*** ***
*** Copyright (C) 1994-2006 ***
*** Synopsys, Inc. ***
*** ***
*** This software and the associated documentation are confidential ***
*** and proprietary to Synopsys, Inc. Your use or disclosure of this ***
*** software is subject to the terms and conditions of a written ***
*** license agreement between you, or your company, and Synopsys, Inc. ***
****************************************************************************
options:
-cif Name of the mask file (CIF format)
-spr Name of the process flow (SPR format)
-cmd Name of the command file for '-simulator'
-simulator Name of the simulator (dios, sprocess, sde)
-depth Specifies the depth of the simulation domain (microns)
-info Level of information (0-2)
-debug Level of debug information (0-2)
-help Prints this message
-? Prints this message
The simplest way to run sup2lig is to copy a SUPREM-4 input file (test.inp) with all additional files (for
example, layout) into the current working directory and to start the program by using:
sup2lig test.inp
50
UTILITIES CHAPTER 5 CONVERTER FOR SUPREM-4: SUP2LIG
Output
sup2lig generates two files, lig.cmd and prl.par, which are stored in the current working directory. The
default names for these files can be changed through the command-line options:
sup2lig test.inp -cif test.cif -cmd test.cmd
Both files are processed by Ligament, which finally writes a command file (for example, test_dio.cmd)
into the directory of test.inp.
By default, Dios is used as target, but the optional parameter -simulator enables a switch to other
simulators.
Known problems
Deposit photoresist: As stated in Specialities on page 49, Ligament and Dios manage pattern
operations by using a single command. This feature leads to the problem that ‘extra’ photoresist
deposition statements are ignored.
Incomplete or ‘unofficial’ SUPREM-4 input files: Sometimes, sup2lig cannot resolve all macro
definitions (missing files that are read by using the source command, unofficial syntax, and so on),
in which case, a message is displayed that indicates a problem.
In this special case, load the Ligament command file (lig.cmd) and investigate the questioned line
(361). Corresponding SUPREM-4 commands are also listed in this command file.
51
CHAPTER 5 CONVERTER FOR SUPREM-4: SUP2LIG UTILITIES
52
UTILITIES CHAPTER 6 DIOS TO SENTAURUS PROCESS CONVERTER
CHAPTER 6
converter
Overview
The Dios to Sentaurus Process converter enables the conversion of Dios command files to SPR
command files with additional information for further conversion to Sentaurus Process command files.
Conversion is performed in two steps. First, the converter front-end converts the Dios command files to
SPR command files. Second, the Ligament–Sentaurus Process back-end is used to create Sentaurus
Process command files.
The purpose of this converter is to help users change from Dios to Sentaurus Process command files by
converting Dios command files to Sentaurus Process syntax. The conversion reduces manual inputting,
but for various reasons, a full automatic conversion is not possible.
Only process-related Dios commands are translated to SPR. Physical models and model parameters are
not translated. Users must check the result of the conversion carefully and adapt it to their needs. Users
must add mesh-related specifications.
Using converter
The Dios to Sentaurus Process converter is a Ligament module. It can be used in two different ways.
From Ligament
The command-line option -input with the argument dios can be used to load a Dios command file and
create a Sentaurus Process command file:
ligament -input dios dio.cmd sprocess.cmd
Ligament can also be used to convert a Dios command file to SPR for further processing by the user.
When used with the command-line option -print, the converted command file is written to standard
output in SPR format. A file can be created by redirecting the output:
ligament -input dios -print dio.cmd > spr.cmd
53
CHAPTER 6 DIOS TO SENTAURUS PROCESS CONVERTER UTILITIES
Supported commands
The Dios to Sentaurus Process converter only supports process-specific commands. Commands that are
simulation specific or simulator specific are not supported.
By default, Dios commands that are not supported by the converter are inserted into the flow as remarks.
These remarks start with the prefix unsupported command: and contain the command with its arguments.
This behavior can be switched off (see Customization on page 57). The following Dios commands are
supported by the converter:
The following sections list the supported parameters for each supported command. The shortest possible
abbreviation for each parameter is given in parentheses.
Parameters that are not listed here are not supported. By default, unsupported parameters are converted
to a remark with the prefix unsupported parameter: and this behavior can be switched off (see
Customization).
Supported parameters that cannot be represented by SPR parameters are inserted into the type field using
the appropriate syntax and values for Dios and Sentaurus Process.
Besides these commands, the converter translates comments (lines starting with ‘!’) to SPR remarks.
Conditionals (#if, #elif, #else, and #endif) are converted to the corresponding SPR commands. See
Limitations on page 57 for details about the limitations of converting conditionals.
comment
Dios comment commands are converted to SPR comment commands. Double quotation marks in the
comment string are converted to single quotation marks.
54
UTILITIES CHAPTER 6 DIOS TO SENTAURUS PROCESS CONVERTER
deposit
Dios deposit commands are converted to SPR deposit commands. The supported parameters are:
diffusion
Dios diffusion commands are converted to SPR anneal or epitaxy commands. If the parameter thickness
has a value greater than zero, an SPR epitaxy command is created. For an epitaxy command, only one
time value and one temperature value are allowed. The full range of time, temperature, and temperature
rate specifications that are possible in Dios are supported. The supported parameters are:
h2o (h)
etching
Dios etching commands are converted to SPR etch commands. The SPR support for specifying etching
rates and etching types is very limited. As there are several different possibilities in Dios to specify
etching rates and as, currently, it is not clear how this can be best translated to Sentaurus Process,
conversion of etching rates is not supported. If no value for the parameter remove is specified, the etch
type strip is used. Otherwise, the etch type is isotropic. The supported parameters are:
material (m)
remove (re)
over (o)
55
CHAPTER 6 DIOS TO SENTAURUS PROCESS CONVERTER UTILITIES
grid
The values of the parameters x and y are used for the value of the region field of the SPR environment
command. The supported parameters are:
x (x)
y (y)
implantation
Dios implantation commands are converted to SPR implant commands. The supported parameters are:
element (e)
mask
Dios mask commands are converted to SPR pattern2d commands. The supported parameters are:
thickness (th)
x ( x)
substrate
Dios substrate commands are converted to SPR substrate commands. The parameter rho is only used if
it is specified in the input file. The supported parameters are:
title
Dios title commands are converted to SPR environment commands. The supported parameter is title
(t).
56
UTILITIES CHAPTER 6 DIOS TO SENTAURUS PROCESS CONVERTER
Limitations
Dios interpreter control commands (for example @FILENAME, break, and set, see Dios, Interpreter control
commands on page 62) are not supported.
Comments that are placed between arguments of a Dios command are ignored. They are not converted
to SPR remarks. Comment blocks (beginning with /* and ending with */) are not supported.
The conditional directives (#if, #elif, #else, and #endif) of the Sentaurus Workbench preprocessor must
be placed between Dios commands or comments. They cannot be placed in the list of arguments to
choose between different values. Therefore, the following Dios input cannot be converted properly:
diff:(
#if @< variant == 0 >@
moddif=Equilibrium
#else
moddif=PairDiffusion
#endif
)
The converter displays a warning message and uses the last specified value for each argument. The
previous example must be changed to:
#if @< variant == 0 >@
diff:(moddif=Equilibrium)
#else
diff:(moddif=PairDiffusion)
#endif
Other preprocessor directives (#do and #enddo) are not supported. Such lines are converted to SPR
remarks.
Only simple expressions are evaluated correctly. More complicated expressions may give unexpected
results. This can be either a Tcl syntax error or a wrong result. Users must check the result of any
converted expression.
Customization
The converter looks for a file named user.tcl in the working directory, the directory given by the relative
path ../input/dios relative to the directory specified with the command-line option -libdir or in the
directory $STROOT/tcad/$STRELEASE/lib/ligamentlib/input/dios. When the file is found, it is sourced. The
file user.tcl can be used to customize and extend the converter.
By setting the variable ::InputDios::debug to zero, unsupported commands are not converted to SPR
remarks. The variable ::InputDios::unsupportedParameter can be used in the same way to switch off the
output of unsupported parameters in the form of SPR remarks.
57
CHAPTER 6 DIOS TO SENTAURUS PROCESS CONVERTER UTILITIES
58
UTILITIES CHAPTER 7 MEASURE
Measure
Utilities
CHAPTER 7
This chapter the Measure tool, which extracts values from protocols.
Introduction
Measure is a Tcl script that extracts values from protocols with the help of templates. The generator of
the protocols is not necessarily Dios or a TCAD tool. For simplicity, this chapter uses the term
‘simulator’ to refer to the generator of the protocol. All that is necessary to use Measure is the ability to
create templates and command files for it. The templates allow Measure to recognize a region in the
protocol of the simulator from which to take the values.
In its simplest form, a template consists of a single line, for example, the template thres.tmpl:
threshold voltage= @<m1>@ V
Here, m1 is a label that acts as a dummy argument and connects the extracted parameter to a user-
specified name. The function as dummy argument is given by the special strings @< and >@. To extract a
value, the other strings in the template must match exactly the content of the protocol file. The
connection to a user-specified name of the extracted parameter is given by using the command file for
Measure, for example, thres_msr.cmd:
{thres.tmpl {m1 THRESHOLD}}
For example, assume the protocol file of the simulator is called n9.AUS. A few lines from n9.AUS follow:
ETCH PO;
UTH;
threshold voltage......ug = -1.282+/-0.002 V
! UTH METHOD=0;
UTH METHOD=1;
threshold voltage= -1.43 V
PLOT FILE=N9_ID ID;
The command:
% measure -in n9.AUS -c thres_msr.cmd -out n9_msr.out
Here, DOE: is a special label used by the extractor of Inspect to transfer the name THRESHOLD and the
extracted value -1.43 from n9_msr.out into the Family Table of Sentaurus Workbench.
59
CHAPTER 7 MEASURE UTILITIES
To summarize this example, a protocol file (n9.AUS), a command file for Measure (thres_msr.cmd), and a
template file (thres.tmpl) are required to run Measure.
Command-line options
measure without any argument, measure -h, or measure -help produces the output:
% measure -h
measure 11.0.0
usage: measure -options
Measure extracts the values located at the positions of the marks in the templates from the protocol
file(s) and writes them to the result file(s) as a multicolumn table: DOE: name_i value_i.
Options Description
-b Batch mode. The option -log is ignored. No protocol of the activities of Measure is given. The
extracted values are always written at least to standard output.
-genes Sentaurus Workbench mask for extracted values; default is DOE: (see Sentaurus Workbench,
Extracted variables on page 64).
-in fileName Name of a protocol file to be scanned for values. The metacharacter * can specify more than
one protocol file.
-info Level of mirroring the actions of Measure. Should be an integer greater than –1. Defaults to 0.
-lmb Left marker boundary for the template marks. Defaults to "@<".
-log fileName Name of a file to protocol the activities of Measure itself. If not specified, protocol only to
standard output.
-nounits Removes the units from the extracted values. The default is an extraction with units if the
value and its unit build a word.
-off string String(s) used to stop the action of Measure in all protocols for all templates. Such strings
should not appear in the templates.
-on string String(s) used to start the action of Measure in all protocols for all templates. Such strings
should not appear in the templates.
60
UTILITIES CHAPTER 7 MEASURE
Options Description
-out fileName Name of a file containing the extracted values. No specification causes the extracted values to
be written only to standard output.
-r Reverse mode. The protocol file(s) is read in reversed line order (from the end to beginning).
The templates are also reversed except for sections contained in
MEASURE_REPEAT ... MEASURE_END_REPEAT clauses.
-rmb Right marker boundary for the template marks. Defaults to ">@".
-unique string String to be appended with a counter to repeated instances of base names. Defaults to "_Q_".
NOTE Use quotation marks. Otherwise, the Tcl shell cannot parse the input. In a command file,
quotation marks and backslashes must not be included. The base names of the extracted
values name11, ..., name1N, ..., nameNN should be unequivocal. Otherwise, different numbers
appear with the same base name and introduce confusion to the Family Tree.
If the file name following the -in option contains the metacharacter *, Measure processes all files that
match that name.
The option -c should be followed by a Measure command or by the name of a file containing a Measure
command. The templates can contain regular expressions to widen the range of matching regions in
different protocols or, with other words, to decrease the number of necessary templates to perform a
meaningful parameter extraction.
The output file name can be specified with the -out option. If this is the case, all output is written to this
file. If no -out option is given, the extracted values are written only to standard output. They are always
written to standard output, even if Measure works in batch mode.
Measure protocols its own activities to standard output and to the file specified using the -log option if
the latter is given. In batch mode, Measure does not report its activities to standard output.
Measure does not overwrite protocol files from other tools with its own output. For example, if the user
specifies:
% measure -in x_dio.log -out x_dio.log -log x_dio.log -c y_msr.cmd
Measure reports the extracted values to x_dio.log_1 and protocol to x_dio.log_2. Then, if the user
specifies:
% measure -in x_dio.log -out x_dio.log_1 -log x_dio.log_2 -c y_msr.cmd
61
CHAPTER 7 MEASURE UTILITIES
Measure changes the name of the old x_dio.log_1 to x_dio.log_3 and the old x_dio.log_2 to x_dio.log_4 in
order to write the information as far as possible to the expected files. No files should be lost with this
procedure.
By using the options -on and -off, strings can be specified to search in between only in the protocol file.
The strings are periodically applied. For example, if two ‘on strings’ and three ‘off strings’ are given,
the protocol file is scanned between on_string1 and off_string1, on_string2 and off_string2, on_string1
and off_string3, on_string2 and off_string1, and so on until the end.
Do not exclude the interested region of the protocol file. For example, if the Measure command is:
% measure.tcl -info 2 -log simplimpl.log\
-c "{impl.tmpl {m3 DOSE} {m7 ROTAT}}" \
-on {"---------------------------------"}\
-off {"----------------------------- IMPLantation -----"}
then, the region between the ‘off string’ and ‘on string’ is excluded, and Measure cannot, for example,
extract the implantation dose because the implantation dose always appears in Dios after the string given
in the above example as ‘off string.’
In addition, the ‘on strings’ and ‘off strings’ must not appear in the templates. Otherwise, Measure exits
with an error.
The option -nounits removes the units from the extracted values. If a value does not match as a number,
a warning is given and the value appears as NaN in the table of the extracted values.
The four levels of matching between template lines and protocol lines are:
Exact or literal match
Regular expression match
Skip a dummy argument
No match
62
UTILITIES CHAPTER 7 MEASURE
This template could be used to extract the implantation energy from Dios protocols. The string [a-zA-Z]+
is a regular expression matching most possible dopant names, but it does not match BF2.
It is important to have the same dummy argument (m7) in the command for measure
("{ii.tmpl {m7 eNeRgY}}") and the template. Otherwise, the connection between the value in the protocol
and the user-specified name (eNeRgY, in this case) cannot be established.
if, for example, the template was matched three times in the given protocol file. The appendix _Q_
followed by a natural number is used to make the values unequivocal in the case of more than one match
of a template in a protocol.
There is one common mistake in creating a template: Assume the protocol contains the line:
tilt2D = 45degree (ion beam, projected to plane.)
and the user wants to create a template line to match it. This cannot be performed by using:
tilt2D = @<m8>@ (ion beam, projected to plane.)
because if (ion encounters a Tcl string comparison engine, an error is raised because of unbalanced
parentheses. This also occurs with other paired strings or ordering operators such as ', ", (), {}, [].
63
CHAPTER 7 MEASURE UTILITIES
To cope with changing layer stacks or a different number of periodic entries in the protocol, Measure
understands the following metaclause:
The specifier must appear and can be one of the following: ZERO_OR_ONE, ZERO_OR_MORE, or ONE_OR_MORE.
The meaning is clear: Measure expects zero or one, zero or more, or one or more appearances of the
template lines in the metaclause to have a match. This even allows some lines of a protocol to be omitted
with the help of the ZERO_OR_ONE specifier, for example. The metaclauses cannot be mixed up; this means
that Measure returns an error if a template contains, for example:
MEASURE_REPEAT spec1
line1
line2
MEASURE_REPEAT spec2
line3
MEASURE_END_REPEAT
line4
line5
line6
MEASURE_END_REPEAT
The metaclauses should appear in the templates in uppercase and with exactly one period between
MEASURE_REPEAT and the specifier. This has been performed in the expectation that no protocol contains
such strings.
The -r option is another way to create a useful template. With this option, the protocol(s) is read from
the end to the beginning (a new file, with reversed line order, is generated) and the template(s) is
reversed blockwise. For example, this means that a template:
64
UTILITIES CHAPTER 7 MEASURE
line7 line3
line8 line4
line5
MEASURE_REPEAT spec2 MEASURE_END_REPEAT
line9
line10 line2
MEASURE_END_REPEAT line1
This can be used to find a template for the thickness of the first oxide (if looking from the top) and the
thickness of the last oxide.
65
CHAPTER 7 MEASURE UTILITIES
MEASURE_END_REPEAT
@<m2>@ @<m1>@ OX
MEASURE_REPEAT ZERO_OR_MORE
@<m5>@ @<m6>@ {OX|PO|NI|AL|LA|MS|ME}
MEASURE_END_REPEAT
gives:
Results from /tmp/lsop_1_reverse.log
with template /usr/k2/users7/krause/work/firstOx.tmpl:
DOE: last_oxide 890.2
NOTE The same template was used with the -r option and the ‘on strings’ are internally interchanged
with the ‘off strings.’ Users should always review the entire protocol. /tmp/lsop_1_reverse.log
is the protocol file lsop_1.log with reversed line order created by Measure.
66
UTILITIES CHAPTER 7 MEASURE
Users can overwrite the tool specification. To do this, create a tooldb_$USER file.
The Measure command in Dios mimics a Measure command. The last Measure call in the Dios
command file translates into the following Measure command:
{thres.tmpl {RS Rs} {SURFACE Surface}}
If Measure is launched by a system call in Dios, Measure writes its output into the actual Dios protocol
file. If control is given back from Measure to Dios, Dios continues to write into the same protocol file.
The tool specification for Dios contains a run of the Inspect extractor to copy the values from the Dios
protocol file using the DOE: label into the Family Table.
A full reference of the command in Dios is given in the Dios User Guide.
67
CHAPTER 7 MEASURE UTILITIES
Limitations
Equations between the dummy arguments are not implemented. Therefore, for example, Measure can be
used to extract numbers from a two-column table, but cannot find the values in the first column at which
the second column has a relative extremum and so on.
68
UTILITIES CHAPTER 8 SENTAURUS SPICE2SDEVICE
Sentaurus spice2sdevice
Utilities
CHAPTER 8
The tool Sentaurus spice2sdevice converts SPICE circuit files into equivalent circuit files of Sentaurus
Device. A description of SPICE circuit files (extension .cir) can be found in the literature1. The circuit
files of Sentaurus Device (extension .scf) are discussed in the Sentaurus Device User Guide.
The command-line option -m must be used if no title line is present (SPICE model files).
A line starting with a + character is interpreted as a continuation line. Comment lines start with one of
the following characters in the first column: #, $, ;, *.
The Sentaurus spice2sdevice converter recognizes element and model lines, subcircuit definitions and
calls, and .INCLUDE directives. Option and control lines are ignored.
SPICE models
A SPICE model line adheres to the following syntax:
.MODEL MNAME TYPE (PNAME1=PVAL1 PNAME2=PVAL2 ...)
1. T. Quarles et al., SPICE 3 Version 3F5 User’s Manual, Department of Electrical Engineering and Computer
Sciences, University of California, Berkeley, CA, USA, 1994.
69
CHAPTER 8 SENTAURUS SPICE2SDEVICE UTILITIES
NOTE The device of a MOSFET model is determined according to the value of the parameter level.
Table 5 lists the values for the parameter level in MOSFET models that are recognized.
1 Mos1 Shichman–Hodges
2 Mos2 MOS2
4 BSIM1 BSIM
5 BSIM2 BSIM2
6 Mos6 MOS6
8 BSIM3 BSIM3
70
UTILITIES CHAPTER 8 SENTAURUS SPICE2SDEVICE
14 BSIM4 BSIM4
The first letter of an instance name specifies the element type. Table 6 lists the types recognized by
Sentaurus spice2sdevice.
71
CHAPTER 8 SENTAURUS SPICE2SDEVICE UTILITIES
NOTE Nonlinear sources and transmission lines are not supported in Sentaurus Device.
Command-line options
Table 7 lists the command-line options recognized by Sentaurus spice2sdevice.
A SPICE model file is assumed to have no title line. Otherwise, it is identical to a SPICE circuit file.
Example
A simple resistor transistor logic (RTL) inverter as shown in Figure 10 is considered.
1 3 4
0
Figure 10 Simple RTL converter
This circuit can be described by the following SPICE circuit file (rtl.cir):
SIMPLE RTL INVERTER
VCC 4 0 5
VIN 1 0 PULSE 0 5 2NS 2NS 2NS 30NS 100NS
RB 1 2 10K
Q1 3 2 0 Q1
RC 3 4 1K
.PLOT DC V(3)
.PLOT TRAN V(3) (0,5)
72
UTILITIES CHAPTER 8 SENTAURUS SPICE2SDEVICE
The command:
spice2sdevice -o rtl.scf rtl.cir
INSTANCE q1
PSET q1
ELECTRODES
3 2 0 0
PARAMETERS
END INSTANCE
INSTANCE rb
PSET Resistor_pset
ELECTRODES
1 2
PARAMETERS
resistance = 10000
END INSTANCE
INSTANCE rc
PSET Resistor_pset
ELECTRODES
3 4
PARAMETERS
resistance = 1000
END INSTANCE
INSTANCE vcc
PSET Vsource_pset
ELECTRODES
4 0
PARAMETERS
dc = 5
END INSTANCE
INSTANCE vin
PSET Vsource_pset
73
CHAPTER 8 SENTAURUS SPICE2SDEVICE UTILITIES
ELECTRODES
1 0
PARAMETERS
pulse = [0 5 2e-09 2e-09 2e-09 3e-08 1e-07]
END INSTANCE
The following command file of Sentaurus Device can then be used to perform a transient simulation:
File {
SpicePath = "."
}
System {
Plot "rtl.plt" (time() v(1) v(3))
}
Solve {
Set (vcc."dc" = 0)
NewCurrentPrefix = "new_"
v(1) v(3)
4 4
Voltage
2 2
0 0
0 2e-08 4e-08 6e-08 8e-08 1e-07
Time
74