Chapter 3.1
Mask Generation Using CAD Software
Contents
1.0
Introduction
2.0
CAD Software for Mask Generation
2.1
Graphic Layout
2.1.1
kic
2.1.2
vem
2.1.3
ledit
2.2.1
k2m
2.2.2
make_masks
2.2.3
gds2tap
2.3.1
kictocif
2.3.2
ciftomann
2.3.3
cif2gds
2.3.4
gds2cif
2.3.5
gds2pg
2.3.6
dxf2gds
2.3.7
gds2dxf
2.3.8
mmask
2.3.9
pgsort
2.3.10
pgsort2
2.3.11
m36gen
2.4.1
pgcam
2.4.2
pgview
2.4.3
cifplot
3.1
Polarity and the Pattern Generator
3.2
Alignment Marks
3.3
Scale
3.4
Centering
3.6
Summary
Appendix A: Frequently Asked Questions
Appendix B: L-Edit Mask Making
Manual
Appendix C: Mask Making for ASML Wafer Stepper (6”)
Appendix D: Mask Making for GCAWS6
Generating a mask set from a graphics layout is a 6-step process.
1.1
Graphic layout of the mask set using a CAD editor such as kic,
vem, or ledit. kic creates an output file describing the layout
in KIC format. vem creates an output file describing the layout in OCT
format. ledit creates an output file describing the layout in GDS format.
1.2
Translation of the layout file into a CIF (Caltech Intermediate
Format) file using the kictocif, octtocif, and gdstocif
commands (respectively). Verification of the layout with an actual printed plot
(hardcopy) is available through the cifplot command.
1.3
Translation of the CIF file into a MANN file using the ciftomann
command. MANN is the format understood by the Microlab's GCA MANN 3600 Pattern
Generator.
1.4
Writing the MANN file into the proper format for the pattern
generator using the m36gen command. This creates two EBCDIC files, which must
then be transferred to the pattern generator PC (gcapg.eecs.berkeley.edu).
1.5
Generation of masks on the GCA Mann 3600 Pattern Generator.
1.6
Development of masks in the APT automatic mask developer. This
process is summarized in the following flowchart:

This document reviews the software aspects of mask generation,
specifically, the programs you will need to get your design from layout graphic
to mask. For information on operation of the pattern generator and the
automatic mask developers, refer to manual entries on the wand.
2.0
CAD Software for Mask
Generation
To get started, you will
need:
►
A good, basic, working knowledge of the UNIX operating system. Without it,
learning to use the software involved in mask making is difficult. If you have
no UNIX experience, try to find a student who can get you started. Commands you
should be familiar with include: ls, cd, mv, cp, vi,
and rcp.
►
A working knowledge of kic, vem, or ledit. Documentation on
these layout editors is available in the Microlab lobby.
Before you begin, please take note of the following important
information. It may save you a lot of time and trouble.
►
Use the following conventions when naming your files to prevent
confusion:
.kic suffix on all KIC
format files
.oct suffix on all OCT
format files
.gds suffix on all GDS
format files
.cif suffix on all CIF
format files
.mann suffix on all MANN
format files
.tap suffix on all TAP/TIX
tape data files
.tix suffix on all TAP/TIX tape index files
As an example, if you have a layout, which
consists of an array of MOSFETs, call the KIC format file mosfet.kic,
the CIF format file mosfet.cif, etc.
►
It is strongly recommended that each directory of CAD layouts
contain a file called file.info which specifies the following
information:
o
the layer names used in the layout;
o
the scale of your layout in lambda/µm (this is used with kictocif);
o
the scale factor specifying the layout to mask ratio (this is
found in the command file used with ciftomann);
o
the polarity of your masks;
o
whether the layout is centered about the origin (this determines
whether you will need to use the '-c 0 0' flag with m36gen). Name this
file for the KIC file it applies to, e.g., mosfet.info for mosfet.kic
►
The layout must not exceed the usable area of the mask to be made.
The following table lists usable ranges for the masks available in the
Microlab:
|
Actual Plate Size English |
Mask Size for the gcapg Metric |
Loss from Borders |
Usable Range in X-Y |
|
|
2.5 inch 3.0
inch 4.0
inch 5.0
inch |
60.5
mm 74.0 mm 98.6 mm 125.0 mm |
2 × 6 mm 2
× 6 mm 2
× 6 mm 2
× 6 mm and
corner areas |
51.5
mm 64.2 mm 89.6 mm 115.0 mm |
5.15 × 104 µm 6.42
× 104 µm 8.96
× 104 µm 11.5
× 104 µm |
For exposure area
on the GCA 10 X Reduction Stepper (gcaws, 5" masks), please refer to lab
manual Chapter
4.04, GCA 8500 Wafer Stepper
Be careful to work within the usable range. Consider whether you
will be using a scale factor with ciftomann (see Section
2.3.2), since this will affect your usable range coordinates.
You have the option of centering your layout later during tape
generation (see Section 2.3.11, m36gen: -c
option), but this will change the coordinates of your alignment marks, which
must be specified if you intend to use 5" masks with the GCA 10X Reduction
wafer stepper.
►
The pattern generator cannot generate any geometry < 2 µm on
the mask.
►
If you are inverting in ciftomann, make sure that there are
no "spaces" < 2 µm.
►
Layer names used with kic must be between 2 and 4 characters,
all of which MUST be upper case.
►
Layer names in any kic file must exactly match the layer names in
the .KIC file found in the same directory, or kic will not run.
►
If you are going to generate a dark field emulsion mask, be sure
to place small geometries (such as 2 µm boxes) at the outer corners of the
useable range of the layout (see above) to ensure that the field is completely
blocked out.
►
If you need a small, single open geometry (dark field), use
chrome.
►
If you need a small, single dark geometry (clear field), use
emulsion. If emulsion edge resolution is not good enough, the job cannot be
done here.
►
If you are making a set of aligning masks, make sure that GCA
alignment marks are present.
►
Before running ciftomann, make sure your scale factor is
correct.
►
If you must make polygons, see staff.
►
Try to place the physical center or your layout on or close to (X,
Y) = (0, 0).
►
Alignment mark offsets translate as follows:
(+100 X, +100 Y) (+0.1 X, -0.1 Y)
in µm in mm
on layout (kic) entered into stepper job spec
(Assumes mask label placed to the left in
stepper reticle holder)
This section describes the graphic editors, CAD programs, and
layout utilities available in the Microlab. You may use other utilities (e.g.,
AutoCAD) if they are able to produce layout files in one of the supported
formats (KIC, CIF, or GDS).
Kic is a menu-driven, interactive, color graphics program for the
layout of integrated circuits. Unlike other programs at Berkeley, such as
magic, kic does not have design rule checking and other such features.
On the other hand, kic is very versatile, and can also be used to lay
out designs for sensors, probes, etc. Several programs have been written by
students that add to the versatility of kic; these programs can be found
on argon in /cad/bin. Examples of kic layouts can be found on argon in
/cad/examples. Kic should not be run on argon; it slows down the
operation of all lab-related software. Please be sure to log in to a fast
workstation (e.g., Gold, Boron, Iridium and Radium) and run kic from
there.
Refer to the following documents for further information:
►
Manual page for kic available on-line on all computers
which support kic by typing man kic.
►
The kic Manual by Giles Billingsley and Ken Keller
is now available on line (Click here).
►
You can also obtain a hard copy by typing tbl
~cad/lib/kic/kic.me | eqn | psroff –me at any Sun station that support kic.
The output will appear in the Microlab Office.
These, along with other useful documents, are also available from
staff, 406 Cory, at a cost of $5.
vem is an interactive graphics shell/editor for IC designs
represented using the OCT Data Manager. The primary purpose of vem is to
provide a means of looking at the graphics representation of OCT views and
invoking various CAD tools on these views. vem also provides standard graphics
editing capabilities for physical layout design and schematic capture.
Refer to the following documents for further information:
►
Manual page for vem available on-line on all computers which
support vem by typing man vem.
►
VEM Tutorial and Customization documents by David Harrison,
available from staff.
L-Edit is a commercial layout editor licensed from Tanner Research
Incorporated. It is a screen-oriented editor with simple menus for drawing
various shapes on different layers. A PC version of the L-Edit software is
currently available on a dedicated PC in the Microlab lobby. This new version
of L-Edit has replaced the old Unix-based version of the software. L-Edit can
be used with circuit simulation and analysis modules available from Tanner
Research, but the Microlab has not yet purchased licensing for these products.
L-Edit supports Tanner's own proprietary file format (TDB) as well as the
popular GDS standard. Unlike kic, L-Edit supports rotated boxes and polygons.
Refer to the following documents for further information:
►
L-Edit User Guide from Tanner Research, available in the Microlab
lobby.
This section describes programs and shell scripts that will
attempt to guide you through a multi-step file conversion process, usually from
a graphic layout (KIC or GDS file) through to the final mask files. These
scripts are generally more user-friendly but less flexible than the conversion
utilities described below.
k2m is a shell script to convert KIC-format cells into MANN format
for use with the pattern generator. For files without rotated boxes, we usually
run kictocif and ciftomann. For files with rotated boxes, we can
use k2m, which goes from kic directly to mann format. The KIC layout
must first be flattened. Boxes must, of course, be rectangles, which can be
rotated if desired. The layout should be centered.
k2m may be called with the following arguments:
-i inputfile
Name of KIC input file
-k layerfile
Name of layer file (instead of default layers.cmd)
-l lambdasize
Specifies microns-per-lambda scale of KIC file
-o outputfile
Name of file to contain output (MANN data)
-s scale
Specifies optical reduction factor
Refer to the following documents for further information: UNIX
manual page for k2m (man k2m)
make_masks is a shell script to convert KIC-format cells into MANN format for
use with a pattern generator. It is similar to k2m but more
user-friendly. Users will be prompted for information and stepped through the
conversion process. make_masks also checks for many common errors such
as the presence of wires or polygons that cannot be translated accurately.
make_masks may be called with the following arguments:
inputfile
Name of KIC input file
Refer to the following
documents for further information: UNIX manual page for make_masks (man
make_masks)
gds2tap is a shell script to guide users through the process of
translating a GDS layout file to the TAP/TIX format used for pattern
generation. Users will be prompted for information and stepped through the
conversion process. gds2tap does a small amount of error checking as
each conversion step is completed.
gds2tap may be called with the following arguments:
gdsfile
Name of the GDS layout file to be converted.
layerlist
List of GDS layer numbers to be converted, separated with commas
or spaces
reduction
Optical reduction expected: 1x, 4x, 5x, or 10x
top_structure
Name of the top-most feature to be converted.
centered
yes if mask be centered at [0,0], otherwise no
units
Specifies microns or mils as the unit of measurement
for this layout
Refer to the following documents for further information: UNIX
manual page for gds2tap (man gds2tap)
This section describes the utilities available to convert files
from one CAD format to another. These utilities are called by translation
scripts (described above) during the translation process. These utilities can
be cumbersome to use but they offer processing options and flexibility that may
not be available from the translation scripts.
kictocif flattens and translates the KIC file created by kic into a
CIF file.
Flattening is the process by which sub-cells (called instances)
are incorporated into the layout. Otherwise, sub-cells are only referred to or
called up in the KIC file. That is, the KIC file does not contain the
information in the instance; only the name and position of the instance in the
present cell.
Translation of the KIC file to the CIF file is necessary before
generating the MANN file, which is in a format that is understood by the GCA
MANN 3600 Pattern Generator. Also, hardcopies of a layout (plots) are obtained
from CIF files.
kictocif is best invoked
in an interactive mode, by typing kictocif.
The program will then prompt with:
Microns per lambda?
For ease of scaling, layout on kic is done in dimensionless units
of lambda. The units are later determined in the kictocif translation. Specify
scale of layout in response.
For example,
Microns per lambda? .25
means the layout was done in the scale of 0.25 microns per lambda.
The next prompt is:
Hierarchy's root cell?
Reply with the name of the KIC file you laid out using kic,
file.kic.
The next prompt is:
Select layers you want to be visible
-
s
symbolic only
d detailed only
a all layers
?
Layers in kic are defined as one of two types, symbolic
or detailed.
Symbolic layers are always displayed on kic, i.e., features in
symbolic layers are always displayed, even when instances are included in the
layout and kic is not in expand or peek mode. Detailed layers are
displayed in instances only when kic is in expand or peek mode. (See kic
Tutorial.)
The separation of layers into the two different types allows
selective translation and generation of one mask layer of a given layout.
For further information, consult the manual page for kictocif,
available on-line on all computers which support CAD tools by typing man
kictocif
ciftomann fractures and translates a CIF file into a MANN file,
which is then suitable for mask generation by a pattern generator.
Note: ciftomann can now be run on Gold, Boron, Iridium and Radium
(Solaris).
Fracturing is the process by which large areas are broken into
small areas suitable for exposure of photosensitive mask plates by the GCA MANN
3600 Pattern Generator.
In addition to the input and output files, ciftomann
requires a command file which specifies such information as input layer names,
output layer names, scale factor, and layer inversions.
ciftomann is invoked by typing:
ciftomann -i
input_file -o output_file -l log_file -f command_file -p PG3600
-i input_file
Specifies the name of the
input file, file.cif.
-o output_file
Specifies the name of the
output file, file.mann.
-l log_file
Specifies the name of the
log file to which diagnostic and error messages are written, file.err.
-f
command_file
Specifies the name of the
command file, file.comm.
A command file contains
information pertaining to the scale of the mask vs. the layout, layers that are
to be translated, how they are to be named, and mask polarity specifications. A
typical command file, which, by convention should be names file.comm,
looks like this:
scale 10
CONT invert CONT
METL METI
PII PII
NII invert NII
scale 10 specifies that the layout be magnified by a factor of ten. The
scale factors to use are as follows:
|
Projection
System |
Reproduction
Size |
Scale Factor |
Layout Size |
|
Quintel Contact Printer (quintel) Canon Mask Aligner (canon) I-Line GCA Wafer Stepper (gcaws) G-Line GCA Wafer Stepper (gcaws2) |
1:1 4:1 10:1 10:1 |
1 4 10 10 |
4” 10 mm × 10 mm 8 mm × 8 mm 10 mm × 10 mm |
CONT, METL, and PII are input layer names corresponding to
layer names in the KIC file. If you only wish to translate certain layers,
leave the extraneous ones out of this file.
CONT, METI, PII, and NII are the output layer names. Output
layer names must be unique, and should be no longer than 4 characters. Input
layer names need not be unique, as shown above.
Mask polarity is specified using the "invert" command between input
and output layer names. Two types of masks are available, which are of opposite
polarity. Chrome offers greater accuracy when dealing with line widths smaller
than 2 µm. To decide whether inversion is needed based on the mask polarity you
desire, please refer to the following figure.

-p pattern_generator
specifies for which pattern generator the MANN file is being
generated. For the Microlab, the pattern generator available is the GCA MANN
3600. This is designated as PG3600.
For further information, consult the manual page for ciftomann,
available on-line on all Microlab computers by typing man ciftomann.
2.3.3
cif2gds: Converts a layout from CIF format to
GDS format. It is usually invoked by typing:
cif2gds file.cif file.gds
where file.cif is the name of the CIF file to be converted
and file.gds is the name of the GDS file to be created.
For further information, consult the manual page for cif2gds,
available on-line on all Microlab computers by typing man cif2gds or
visit their website at: http://www.artwork.com/gdsii/cif2gds.htm.
The Microlab has a license for cif2gds.
2.3.4
gds2cif: Converts a layout from GDS format to
CIF format. It is usually invoked by typing:
gds2cif file.gds file.cif
where file.gds is the name of th