NAME
netch - a new 3D etch and deposition simulator for SAMPLE-3D
SYNOPSIS
netch [-b binary_ratefile] [-af ascii_ratefile] [-if
instruction_file] [-ip] [-in] [-mf mask_file] [-et etchtime] [-pt
plottime] [-s] [-[no]v] [-[no]pr] [-[no]h] [-noplot] [-[no]arc]
[-[no]c]
DESCRIPTION
NEtch is a major extension to the etch program in SAMPLE-3D,
allowing 3D simulation of wet and dry etching, ion-milling, and
deposition in integrated circuit processing. The program has
several command line options for compatibility with the earlier
lithography dissolution program ETCH. Generally, however, NEtch
interprets commands line by line from a command file or from
standard input.
The program can read inhomogeneous material rate information from
a file in either binary or ascii format. It produces output in a
format convenient for external plotting and can also make Unix
system calls to the X-window plot programs drawplot and pdraw.
External rate information may be supplied in either binary or
ascii format. The rate file is arranged as follows:
Rate File Format
xmin xmax ymin ymax zmin zmax
nx
ny
nz
rate(0,0,0)
rate(1,0,0)
rate(2,0,0)
..
rate(0,1,0)
..
..
In the above, xmin, xmax, ymin, ymax, zmin, and zmax, are the
bounds of the simulation region in micrometers. Typically
zmin=0.0, and zmax is the resist thickness. nx, ny, and nz give
the number of elements in the x,y, and z direction. rate(i,j,k)
is the etch rate in microns/sec at the inside corner of the cell
(i,j,k). The etch rate at any point is determined by
interpolating the eight rates in the cell of interest. The rate
at (nx,ny,nz) is the rate at the location (xmax,ymax,zmax).
Instructions are run in the order which they are entered. A
typical simulation session begins by entering commands to
initialize the simulation region and rates. Then the etch model,
etch time and time step information are entered. The command
"run" executes the simulation. Finally, plots of the result may
be made.
OPTIONS
-bf binary_ratefile
reads in a binary format dissolution rate file
created by an external program (cf. bleach).
-af ascii_ratefile
reads in an ascii format dissolution rate file
created by an external program (cf. bleach).
Many options are not accesible with this
command.
-mf reads in an external mask file. See next section
for file format.
-et etchtime
sets the default etch time in seconds
-pt plottime
sets the default time interval in seconds
between plots.
-s suppresses most output to the screen, and calls
to external plotting programs. This option is
used when the program is invoked by an external
X-window user-interface.
-[no]v
forces or suppresses verbose mode.
-[no]pr
forces or supresses the creation of PostScript
files by external plotting programs drawplot,
and pdraw.
-[no]h
forces or supresses the invocation of hidden
line removal by the external 3D plotter pdraw.
-noplot
supresses plotting on the screen. Plotfiles are
still created.
-[n]arc
forces or supresses arc interpolation used in
the mesh modification algorithm.
SIMULATOR COMMANDS
Command lines begin with a keyword, continue with a list
of variables, and end with a semicolon (;). A pound sign
(#) may be used to force the program to ignore everything
up to the next semicolon.
Initialization commands:
sim_region xmin xmax ymin ymax zmin
Forces the simulation region to conform to the
given parameters. Parameter zsurf gives the
initial surface z value.
adv_method flag
sets the surface advancement method. Setting
flag=0 forces the original ray-trace algorithm,
simulation to be some multiple of the ideal
segment length. The ideal segment length is
decided by the size of the simulation region and
the mesh density. The default value is 2.0.
max_segl_fact ratio
sets the maximum segment length for a particular
simulation to be some multiple of the ideal
segment length. The default value is 6.0.
advance_accur flag
if flag = 1, sets an internal mesh advancement
accuracy flag to HIGH to better estimate the
distance a point travels in an inhomogeneous
rate field. If lag = 0, this accuracy is set to
LOW, which is sufficient for nearly all
simulations.
modify_method flag
if flag = 1, sets segment based mesh refinement.
If lag = 0, sets triangle based mesh refinement
(default).
adaptive_grid flag
if flag = 1, allows a finer mesh in regions
where etch rate varies rapidly. If lag = 0,
mesh is refined based on segment length only
(default).
cell_update flag
if flag = 1 the surface/cell hybrid data
structure is updated as the surface passes
through it. This is a necessary command for
efficient visibility calculations. If flag = 0,
the surface/cell hybrid data structure is not
used.
mesh_accur adv mod grid deloop
is a command for setting the previous four
flags. The deloop flag is slightly different:
if deloop = 1, a deloop operation will be
performed. If deloop = 2, the surface/cell
hybrid data structure will be set but no deloop
will be performed.
noclip flag
if flag = 1, mesh clipping is supressed,
otherwise clipping is allowed (default).
deloop method
turns the internal deloop flag on and sets the
deloop method. This has not been fully
been already entered in order to calculate the
cell size.
hemisize nphi ntheta
sets the number of elements in the hemisphere
above the wafer used for visibility
calculations. The maximum values are
installation dependent. nphi = 45, and ntheta =
10 are sufficient for most simulations.
Mask commands:
clearmask
clears any mask information.
maskpiece type coords
Mask features may be added to the internal mask
data structure with this command. Mask type 0
indicates the mask feature is rectangular with
position (x1,y1), width xl, and height yl. Mask
type 1 indicates a triangular mask element with
vertexes at (x1,y1),(x2,y2), and (x3,y3).
setmask type
This sets the mask entered with previous
maskpiece commands. If the type is 0 the mask
features are clear and the background is opaque.
It type=1 the mask features are opaque and the
background is open.
Structure manipulation commands:
transferpattern shiftvalue
takes the current pattern and shifts it up by
shiftvalue. The profile may now be used as an
etch mask for pattern transfer simulation.
setnewlayer
creates a new surface layer which is the exact
copy of the current surface layer. This is a
necessary step before performing deposition
simulation. It can also be used to store
intermediate layers.
stripresist
not yet implemented.
clipnow x1 y1 x2 y2
clips away everything from the current surface
outside of the rectangle with corners (x1,y1),
(x2,y2).
Etch commands:
etchmodel mtype [parameter list]
Several models may be entered. The parameters
that must be included depend on the model type
mtype. Types and parameter lists for the various
models are given below:
isotropic etching: 0
etch rates are entered with the etchlayers
command
directional etching: 1 phi theta
etch rates are entered with the etchlayers
command. The etch source angles phi (from
z-axis) and theta (from x-axis in x-y
plane) are in degrees.
plasma etching: 2 phi theta ionflux ionsigma neutral_m
etch rates are entered with the etchlayer
command. The etch source angles phi (from
z-axis) and theta (from x-axis in x-y
plane) are in degrees. The source ion flux
is given in mA/cm829. The standard deviation
sigma on the ion spread is given in
degrees, for a beam assumed to be a
gaussian with dependence on phi. The
neutral_m gives the power of the neutral
particle flux cosine: flux = cos8m9(phi).
Additional plasma etch effects are set with
the passivation, damage, charging, and
ionmill commands.
crystal etching: 3
rates are specified along 6 key directions
with the crystalrates command.
ionmilling: 4 phi theta ionflux
etch rates are entered with the etchlayer
command. The etch source angles phi (from
z-axis) and theta (from x-axis in x-y
plane) are in degrees. The source ion flux
is given in mA/cm829. This assumes a very
narrow ion beam. The sputter yield is set
with the ionmill command.
silylation: 5 phi theta p1 p2 r1 r2 isorate
sets a simple two piece silylation etch
rate model. This command assumes that the
etch matrix contains the weight % Si in a
resist. For Si weight % = 0, the etch rate
is r1. At Si weight % = p1, the etch rate
is r2. For Si weight % greater than p2, the
etch rate is 0. Rates are given in Mm/s.
Intermediate values are linearly
interpolated.
loadrate ftype [filename]
Causes the program to read an external rate
file. If ftype is 0 the file is binary, if it
is 1 the file is ascii. The file name may be
given. The default file is "rval.3D.binary".
The rate file contains the simulation region and
overrides any previous internal simulation
region.
etchlayers numlay thick0 rate0 (drate1). .
Specifies etch rates in Mm/sec for several
region up. The layer thickness thick is givenin
micrometers. The rate value ris is the isotropic
etch rate in Mm/s, rdn is the etch rate due to
directly incident neutral particles in Mm/s, and
rii is the rate due to indirectly incident
(reflected) particles i Mm/s.
passivation numlay rndep alpha lambda
sets passivation parameters for layer numlay.
The redeposition rate out of the plasma is
rndep, the and the ion to neutral flux ratio
scale factor is alpha. The characteristic
passivating layer thickness is lambda. See
section 6.3.1 of E.W. Scheckler's Ph.d thesis
for details.
damage numlay drate
sets the etch rate enhancement due to ion-
bombardment induced damage in plasma etching for
layer numlay. The parameter drate is the etch
rate on a flat wafer with damage enhanced
etching is rate = rdn[1 + drate].
charging
not implemented
silylation numlay p1 p2 r1 r2
allows siliylation parameters to be set for etch
model 2. The parameters have the same meaning
as the parameters in etch model 5.
ionmill numlay s0 a1 a2 a3
sets the sputter yield for layer numlay. The
etch rate on a flat wafer is (s0 *
ionflux)/dens). The sputter yield curve is given
by powers of cosines: S(phi) = a1cos(phi) +
a2cos8 29(phi) + a3cos8 49(phi). The peak sputter
yield angle (in degrees) and ratio of maximum
sputter yield to the value at phi=0 should also
be given.
crystalrates numlay thick r001 r011 r111
sets the thickness (in Mm) and etch rates along
the listed directions (in Mm/s) for layer
numlay.
densitymodel flag
if flag = 1, sets a density model, else turns it
off (default). The density model sets etch and
deposition rates inversely proportional do the
local material density. In deposition, a record
of the density of deposited material is
Deposition commands:
depomodel mtype rate parameter-list
Several models may be entered. The parameters
that must be included depend on the model type
mtype. The rate is the deposition rate on a flat
wafer (regardless of source orientation) n Mm/s
and must be a negative number for deposition.
Types and parameter lists for the various models
are given below:
unidirectional: 1 rate phi theta
the etch source direction is given in
degrees for evaporation from one direction.
dual: 2 rate phi1 theta1 phi2 theta2
two different etch sources may be specified
for dual source evaporation.
hemispherical: 3 rate n A phi theta
sets parameters for sputter distribution.
The flux distribution is fiven by flux =
cos829(A x phi) and is 0 for Axphi > 908o9. The
angles phi and theta are the wafer tilt in
degrees.
deposurfmigration sigma
invokes surface migration by surface
convolution. The standard deviation in Mm of the
random walk is given by sigma.
depocolumn mtype [A B C]
sets modified-tangent rule column growth for
evaporation. If mtype = 1, the A,B,C parameters
are read, and applied to alter column
orientation based on arrival flux with respect
to surface orientation. See chapter 7 of
E.W.Scheckler's Ph.D. dissertation.
depotime time val
sets the deposition time. If the advance method
is FACET_ADAPTIVE, then val is the apdaptive
factor. Otherwise, it is the time step in
seconds.
Execution and plotting commands:
run runs the surface advancement simulation.
runcells [excessflag]
Runs the simulation. If excessflag=0 no excess
overflow calculation is made. If excessflag=1,
then the overflow calculation is made. Without
plotdensity ptype index [filename]
creates a file of density values along a given
plane. If ptype=0, a slice along a constant x
plane is made with the particular plane equal to
x-array index index. Similar plots are made with
ptype=1 for constant y, and ptype=2 for constant
z. The results may be plotted with the contour
program greyscale option. The default file is
"2Ddens.cont".
plotshadow flag
creates a file called "shadow.int" which can be
read by certain versions of pdraw. If the flag
is 0, every shadowed triangle is set dark. If
the flag is 1, every triangle is shaded
according to the average visibility at its 3
vertexes.
plotcells ptype [index] [filename]
If ptype=0, a slice along a constant x plane is
made with the particular plane equal to x-array
index index. Similar plots are made with ptype=1
for constant y, and ptype=2 for constant z.
Giving ptype=3 creates a 3D plot file. The plot
file name may be given, otherwise the file will
be written to the default plotfile "2D.cells" or
"3D.cells".
Miscellaneous commands:
createfastcapfile filetype {z_min z_max xy_boundary_offset}
fastcap_input_filename
Thecommand is used to create a FastCap file using
the results obtained from running a NEtch
simulation. FastCap is a program developed at
MIT to do capacitance and interconnect analysis.
The first argument filetype can have a value of
0 or 1. A value of 0 means that all current
surfaces obtained from a NEtch simulation will
be transferred to a FastCap inputfile identified
by fastcap_input_filename. A value of 1 means
that the current most advanced surfaces from
NEtch will be transformed into solid geometries
using the arguments in brackets (z_min, z_max
and xy_boundary_offset) The result is then
transferred to the inputfile for FastCap.
save_surface id sim_parameters node_direction file_name
The save_surface command is used to save the
geometry and optional information obtained from
running a NEtch simulation. This is useful for
use either 1 for true or 0 for false. This
tells NEtch to also save the necessary
simulation parameters used during a facet
etching or deposition process.
node_direction :
use either 1 for true or 0 for false. This
tells NEtch to also save the node
advancement information in the saved
surface file.
filename :
the name of the file to which the surface
state should be saved.
load_surface filename
This command takes the name of a file that
contains the state of a surface that was saved
using the "save_surface" command. This is useful
for continuing a long simulation process from an
intermediate surface state.
meshcheck
checks the mesh data structure self-consistency.
system commands
runs a unix command via a system call. This is
convenient for manipulating or compressing files
during a long batch run.
end,quit,exit
terminates the program.
AUTHOR
Edward W. Scheckler
FILES
rval.3D.binary, 3D.cells, 2D.cells, surface.plot,
2Dslice.f77, 2Ddens.cont,
COMMENTS
Best results occur for evaporation, sputtering, and plasma
etching. Deloop has some problems, and has not been fully
implemented. Isotropic etching with a mask is also error
prone.
SEE ALSO
splat(L), bleach(L), etch(L), drawplot(L), pdraw(L),
contour(L)
Man(1) output converted with
man2html