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