Chapter 3.1

Mask Generation Using CAD Software

Revision History

Contents

1.0         Introduction

      CAD Tools Help Pages

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         Translation Scripts

2.2.1          k2m

2.2.2          make_masks

2.2.3          gds2tap

2.3         Conversion Utilities

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         Layout Display Software

2.4.1          pgcam

2.4.2          pgview

2.4.3          cifplot

3.0         Mask Layout Checklist

3.1         Polarity and the Pattern Generator

3.2         Alignment Marks

3.3         Scale

3.4         Centering

3.5         Non-Standard Geometries

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

 

1.0   Introduction

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)

 

2.1   Graphic Layout

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).

2.1.1          kic

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.

2.1.2          vem

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.

2.1.3          ledit

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.

2.2   Translation Scripts

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.

2.2.1          k2m

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)

2.2.2          make_masks

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)

2.2.3          gds2tap

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)

2.3   Conversion Utilities

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.

2.3.1          kictocif

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

2.3.2          ciftomann

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