Alfred Wong and Tom Pistor
Electronics Research Laboratory
University of California, Berkeley
1.0 Introduction
1.1 Overview
The acronym TEMPEST3 stands for ``Time-domain Electromagnetic Massively Parallel Evaluation of Scattering from Topography.'' The computer program solves Maxwell's equations using a time-domain finite-difference algorithm, where the electric and magnetic field nodes are spatially and temporally staggered over a three-dimensional topography of interest. Version 3.0 takes advantage of the inherent parallel nature of electromagnetic wave propagation and is implemented on the computer architecture connection machine 5 (CM-5)8. Due to the limited availability of the CM-5, version 4.0 is implemented on any single-processor computer architecture such as a work station or even a personal computer. Version 5.0 is also intended for single processor architectures but offers several improved features. The simulation domain may represent periodic, symmetric or isolated topographies. The algorithm is capable of simulating problems such as scattering from asymmetrical alignment marks, transmission through phase-shifting masks, effects of line-edge profiles in metrology as well as dynamic bleaching of photoresist over arbitrary non-planar, inhomogeneous wafer topographies.
Illumination is assumed to be monochromatic, with the electric field linearly polarized in any user-specified direction. The incident angle can take on discrete values depending on the illumination wavelength and the dimension of the simulation domain. Illumination is assumed to be coherent and can consist of any intensity and phase profile such as that calculated from SPLAT9 or other computer programs. The photosensitizer concentration is calculated if photoresit is present. The matrix containing this concentration information can be used in other simulation programs such as SAMPLE4 for simulation of resist development.
TEMPEST parses topography information from an input file which can be checked for correctness. The input geometry is then simulated until the electromagnetic field reaches steady-state or, in the case of non-convergence, the simulation domain is excited for a user chosen number of wave cycles. Information on the simulation parameters is written to an output file. Topography and field data are written to files where they can be analysed.
This localization of the updating equations leads to a new implementation of boundary conditions. TEMPEST 5.0 treats boundary conditions merely as nodes with ``special'' updating equations. This conveniently allows the implementation of the newly invented boundary condition, the PML boundary condition[references].
Other side effect improvements:
PML boundary condition now allows the simulation of fully isolated topographies.
Excitation is no longer limited to a single planar distribution of excited nodes near the top of the domain. Plane sources with x,y and z directed normals and point sources can be placed anywhere in the domain.
Convergence checking considers the convergence status of a 3D grid of points distributed evenly throughout the domain rather than a single plane near the top. This helps to avoid false convergences.
Output data is no longer written in the PLOTMTV format as in version 4.0 but rather in a binary data format which requires much less disk space and is more portable.
Philisophical Changes:
Rather than writing output data (such as the steady state fields and refractive index) in the PLOTMTV format it is written in a binary format which uses much less space and can be read by a number of other programs. One such program is the MATLAB[ref] program. The new philosophy is to use MATLAB to analyse the data since MATLAB is a well developed, and widely used program. Several MATLAB script files have been developed for this purpose.
Move the TEMPEST-SPLAT interface out of TEMPEST and into MATLAB script files.
Lithography which involves dynamic changes during exposure, and
Scattering analysis.
These categories are distinguished primarily by the desired output. For lithography the desired output is the final PAC concentration. For scattering purposes the primary output desired are the electromagnetic fields and the diffraction harmonics.
Words which are in ALL CAPITAL LETTERS represent programs or shell scripts.
Words in bold letters represent commands to be typed exactly as it appears on the users' guide.
Words in italics represent commands or arguments which can take on different values or character strings.
Words inside [square brackets] are options to commands which may be omitted.
Words in the Courier font represent characters in a file or output from programs.
The string ``ws%'' represents the unix prompt on a workstation.
The string ``pc>'' represents the DOS prompt on a PC.
The string ``prompt:'' represents either and unis or DOS prompt.
The string ``>>'' represents the MATLAB prompt.
be capable of compiling and running C programs (UNIX or DOS).
have at least 20 mega bytes of disk space available to hold the data files
have MATLAB ver 4.0 or higher software. (The user could write his/her own script files for another program or even write their own analysis programs.)
TEMPEST (Program for electromagnetic simulation.)
AMPHA1D and AMPHA2D (Programs which calculate the amplitudes and phases of the electromagnetic fields from the instantaneous field values.)
CTR2MTV and DPL2MTV (Programs which convert CONTOUR and DRAWPLOT data format to PLOTMTV data format.)
FACTOR1D and FACTOR2D (Programs which scale the axes of plot files.)
REDUCE2D (Program for reducing data file size.)
TOTAL1D and TOTAL2D (Programs which calculates the total electric or magnetic field from the values of the x, y, and z components.)
PLOTMTV (Program for displaying data files.)
SPLAT (Program written in Fortran for calculating aerial images.)
To install TEMPEST, move to a directory (say $HOME/bin) where TEMPEST should reside. Then insert the tape into the tape drive, and type the following command:
ws% tar xv
After tape reading is completed, which takes about 5 minutes, a TEMPEST directory is created in the $HOME/bin directory. The programs are organized as follows:
ws% cd $HOME/bin/TEMPEST/code
cm% make
The input file to TEMPEST contains five types of specifications:
simulation domain
illumination
topography
analysis (numerical parameters)
data (output specifications)
The input file to TEMPEST can be given any name and the entries in the input file can occur in random order. The input file to TEMPEST consists of a list of keywords; each keyword may be followed by numbers, words, or other keywords. A detail description of the keywords is found in Section 4.1. Comments can be included in the input file by including the string ``/*'' before the comment and the string ``*/'' after the comment.
To execute the program TEMPEST, the user must supply two arguments: the first being the name of the input file, and the second is the name of the output file to which information concerning the simulation is to be written.
The amount of memory needed to run the program is proportional to the number of simulation nodes in the domain, i.e., the product of the number of nodes in the x-, y-, and z-directions. As a rule of thumb, a domain with 1 million nodes (100 by 100 by 100) requires about 30 MBytes of memory (30 bytes/node). A simulation can take anywhere from a few minutes to several hours depending on the size of the problem.
The input file hole.in is shown as follows:
prompt: tempest hole.in hole.out
This will produce the following screen output:
hole.out (output file which contains information on the simulation run)
hole.xy.20.blk
hole.zx.35.blk
hole.zx.35.e.x.1.00
hole.zx.35.e.x.2.00
hole.xy.15.e.x.i
hole.xy.15.e.x.q
simulation domain
illumination
topography
analysis (numerical parameters)
data (output specifications)
The input file to TEMPEST can be given any name (see Appendix A for suggested file naming conventions) and the entries in the input file can occur in random order. Comments can be included in the input file by including the string ``/*'' before the comment and the string ``*/'' after the comment. Further, this version (as does the previous version) of TEMPEST performs error checking of the input file and will be able to detect most input errors. The input file to TEMPEST consists of a list of keywords. Each keyword may be followed by numbers, words, or other keywords. The following is a description of the keywords:
plane_source orientation pos_unit min1 max1 min2 max2 pos3 xcomp ycomp zcomp intensity pha type arg1 arg2
primitive unit [pos1 pos2 pos3 . . .] material [arg1 arg2 arg3 arg4 . . .]
The number of positioning arguments (pos1, pos2 etc.) depends on the primitive chosen and the number of material arguments (arg1, arg2 etc) depends on the material chosen. In all cases unit can be either position or node specifing whether the positioning arguments are in micrometers or nodes (nodes are always numbered starting from zero) and primitive can be selected from any of the following primitives:
rectangle unit xl xh yl yh zl zh material arg1 arg2 arg3 arg4 ...
index n k
gindex exx exy exz eyx eyy eyz ezx ezy ezz
sexx sexy sexz seyx seyy seyz sezx sezy sezz
mxx mxy mxz myx myy myz mzx mzy mzz
smxx smxy smxz smyx smyy smyz smzx smzy smzz
black_matter
4.1.3 Topography
The topography of the simulation domain (including the pml, first order and perfectly conduction boundary conditions) is specified with a series of block definitions. Each block definition has the following form:
sphere unit radius xcenter ycenter zcenter material arg1 arg2 arg3 arg4 ...
xcylinder unit radius xl xh ycenter zcenter material arg1 arg2 arg3 arg4 ...
ycylinder unit radius yl yh zcenter xcenter material arg1 arg2 arg3 arg4 ...
zcylinder unit radius zl zh xcenter ycenter material arg1 arg2 arg3 arg4 ...
xwedge unit xl xh y1 z1 y2 z2 y3 z3 material arg1 arg2 arg3 arg4 ...
ywedge unit yl yh z1 x1 z2 x2 z3 x3 material arg1 arg2 arg3 arg4 ...
zwedge unit zl zh x1 y1 x2 y2 x3 y3 material arg1 arg2 arg3 arg4 ...
material can be selected from the following material types:
dispersive n k
cond conductivity
epsmu eps_real eps_imag mu_real mu_imag
bc orientation n theta
pml xabs yabs zabs eps mu sigmae sigmam
resist init_conc a b c
4.1.4 Analysis
min_cycle min_wave_cycles
max_cycle max_wave_cycles
dt value
err_tol fraction
4.1.5 Data
plot plot_var [arg1 arg2 . . .] coord_unit xmin xmax ymin ymax zmin zmax file
refractive requests a plot of the refractive index of the materials in the domain. A value of zero is reported for PML or 1st order boundary condtion materials. For anisotropic materials, the maximum refractive index is reported.