GDS-SR Web Page Header


GDS-SR - Scripting for Automation

Our users have requested that we make gds-sr into a scriptable engine; many companies now rely on manufacturing software to hold all relevant data concening a "job" including all the data gds-sr needs to generate a stepped mask set.

automation scripting

This is achieved by creating a resource file for gds-sr.exe to read and then simply calling the gds-sr executable and passing it the name of the scripting file. We recommend the additional option -no_messages so that any message dialogs that require an acknowledgement are suppressed.

 c:\wcad\gds-sr\gds-sr.exe  e:\cad_data\samples\gds_sr_sample_script.txt -disable_messages


Example Script for Reticle Input

The contents of the script differ slightly if the input comes as a reticle or if a single die is stepped across the wafer. The annotated example below shows how a reticle input script is generated. Annotations are in "green" and are not part of the script text.


Comments

A line that has a semicolon ";" in the first column is a comment

; Reticle Script Example April 5, 2013
; 5x8 Reticle Array
; multiple products
; 300 mm wafer

Database Section

This section is mandatory. The TYPE is always set to GDS-SR. Version is currently 2.0. Units are global. Your GDSII and your other dimensions such as die step size, street width and wafer diameter are all in the same units. UM is typical as most GDSII files are in UM.

[DATABASE]      mandatory
TYPE=GDS-SR     indicates type of resource file
VERSION=2.0     current version = 2.0
UNITS=um        all dimensions input in these units (including GDSII)

Settings

This section is used to Define a temp directory for files that are generated during computations; an output directory for GDSII, SINF and placement table. The directories must exist; gds-sr will not create them on the fly.

The Negative die edge spacing is used to allow poly layers to overlap.

[SETTINGS]
INPUT_DIRECTORY=E:\cad_data\sample
TEMP_DIRECTORY=E:\cad_data\sample\working\temp\
OUTPUT_DIRECTORY=E:\cad_data\sample\working\output\
DIE_EDGE_SPACING=-10

Wafer

The Wafer section defines the wafer diameter, exclusion or margin area, flat angle and whether you want GDS-SR to generate die that will fall in the exclusion (margins).

[WAFER]
DIAMETER=300000
MARGIN=3000
CROSSHAIRS=YES | NO        Creates X and Y crosshairs on display and in GDSII
FLAT_TOP=0
FLAT_RIGHT=0
FLAT_BOTTOM=3000           The offset distance of the flat (or notch)
FLAT_LEFT=0
GENERATE_MARGIN_DIES=YES   needed to generate edge die for clipping by HExtract

Stepping

The Stepping Section is used when working with a single product die instead of a reticle. In this example we don't need the stepping section since we are defining the array using a reticle.

; [STEPPING]
; X=4822.4                step along X
; Y=4066.4                step along Y
; STREET_X=-18            street width X
; STREET_Y=-18.7          street width Y
; PATTERN=RECT            type of stepping
; SREF_OFFSET_X=-11889.1  offset along X 
; SREF_OFFSET_Y=4326      offset along Y
; CENTER=DIE              array can be centered on DIE or on STREET

Reticle

If the wafer foundry provides reticle information you can use it instead of stepping a single die. Use Reticle (and remove or comment out Stepping section)

[RETICLE]
CELL_X=5                   number of devices along X 
CELL_Y=8                   number of devices along Y
STEP_X=4822.400000         Either specify step size inside of the 
STEP_Y=4066.400000         reticle and number of cells
;RETICLE_X=24112.000000    or reticle size and number of cells
;RETICLE_Y=32531.200000
OFFSET_X=-11889.100000     center of reticle offset from origin X
OFFSET_Y=4326.000000       center of reticle offset from origin Y

Reticle Grid

For each position in the reticle you need to refer to a die that has been imported using the [DIES] section. If this is a single product grid then all values would be 1.

[RETICLE_GRID]  Each entry in the array is a die index number
 1  1  1  1  1  0 indicates no die in that position
 2  2  2  2  2 
 2  2  2  2  2 
 4  4  4  4  4 
 4  4  4  4  4 
 5  5  5  5  5 
 3  3  5  5  5 
 3  3  3  3  3 
 

Dies

The [DIES] Section lists each unique die that must be loaded into GDS-SR for stepping, inserting into a reticle or for replacing a device in the array (e.g. dropping in process control devices or alignment devices)

[DIES]
; WIDTH=4840.4                             not needed as width and height
; HEIGHT=4085.1                            extracted from the GDSII file
; CENTER_X=0
; CENTER_Y=0
COUNT=7                                    number of unique die files to be imported


                                
[DIE-1]                                    Each Die gets a unique name and index number.
UNITS=UM                                   GDSII Units of this die
RESOLUTION=0.001                           GDSII Resolution of this die
INDEX=1                                    entries in RETICLE_GRID refer to this
FILE=E:\cad_data\sample\102A.gds           path & filename
STRUCTURE=TOP                              specify top level structure
SINF=01                                    assign SINF ID 
RATIO=0                                    always set = 0 for reticle input
COLOR=0 0 255                              color is not important in batch mode

[DIE-2]
UNITS=UM                                   GDSII Units of this die
RESOLUTION=0.001                           GDSII Resolution of this die
INDEX=2
FILE=E:\cad_data\sample\103A.gds
STRUCTURE=TOP
SINF=02
RATIO=0
COLOR=0 0 255

[DIE-3]
INDEX=3
UNITS=UM                                   GDSII Units of this die
RESOLUTION=0.001                           GDSII Resolution of this die
EXTENTS -1000 -1000 1000 1000              If present, overrides computed data extents

FILE=E:\cad_data\sample\104A.gds
STRUCTURE=TOP
SINF=03
RATIO=0
COLOR=0 0 255

[DIE-4]
UNITS=UM                                   GDSII Units of this die
RESOLUTION=0.001                           GDSII Resolution of this die
INDEX=4
FILE=E:\cad_data\sample\103B.gds
STRUCTURE=TOP
SINF=04
RATIO=0
COLOR=0 0 255

[DIE-5]
UNITS=UM                                   GDSII Units of this die
RESOLUTION=0.001                           GDSII Resolution of this die
INDEX=5
FILE=E:\cad_data\sample\104B.gds
STRUCTURE=TOP
SINF=05
RATIO=0
COLOR=0 0 255

[DIE-6]
UNITS=UM                                   GDSII Units of this die
RESOLUTION=0.001                           GDSII Resolution of this die
INDEX=6
FILE=E:\cad_data\sample\target-D-L.gds     this is a drop-in target die
STRUCTURE=TOP
SINF=FF                                    note we assign it SINF value: FF
RATIO=0
ALIGNMENT=LEFT                             Identifies this die as a left alignment die 
COLOR=255 128 64

[DIE-7]
UNITS=UM                                   GDSII Units of this die
RESOLUTION=0.001                           GDSII Resolution of this die
INDEX=7
FILE=E:\cad_data\sample\target-D-R.gds     this is a drop-in target die
STRUCTURE=TOP
SINF=FF
RATIO=0
ALIGNMENT=RIGHT                            Identifies this die as a right alignment die 
COLOR=0 255 255

Changes

This section enables a user to:

by using different directives and a "window."

The window is defined by the LLx,LLy,URx,URy; you can set LLx=URx and LLy=URy to define a point to insure you get only a single device.

[CHANGES]
KNOCKOUT -106584.200000  102475.000000 -103084.200000  106575.000000 
KNOCKOUT -106584.200000 -106575.000000 -103084.200000 -102475.000000 
KNOCKOUT  103084.200000  102475.000000  106584.200000  106575.000000 
KNOCKOUT  103084.200000 -106575.000000  106584.200000 -102475.000000 
KNOCKOUT   -7982.000000 -147599.000000    7982.000000 -143810.000000 
DELETE    -10844.200000  104920.000000  -10844.200000  104920.000000
REPLACE   -74580.000000   14382.000000  -74580.000000   14382.000000 Amber-D-L.gds/TOP
REPLACE    70091.000000   14382.000000   70091.000000   14382.000000 Amber-D-R.gds/TOP
COLOR      25000.000000   68000.000000   25000.000000   68000.000000 255/0/0

Knockout - If a die is knocked out it remains in GDSII output (for sacrificial clipping) but is removed from the SINF map.

Delete - If a die is deleted it is removed from both GDSII and SINF.

Note: If [ALIGNMENT_DIE_REGIONS are defined then the user does not need to manually REPLACE arrayed die with alignment die as shown above.


Alignment Die Regions

This is a function that will automatically replace product die (i.e. those that are placed as an array) with a special left and right alignment die. These die are known because in the DIES section they have an attribute ALIGNMENT=LEFT or ALIGNMENT=RIGHT. There is already an area designated for alignment die (it is hard wired for both 200 mm and 300 mm wafers)

The purpose of this function was to save the operator the steps to place these devices and to insure that in batch mode they would be placed according to rules defined by the user.

In the sample below _200 indicates the value applies to 200 mm wafers; _300 indicates the value applies to 300 mm wafers.

[ALIGNMENT_DIE_REGIONS]
SHOW_REGIONS=YES|NO
CENTER_DISTANCE_200=
LOWER_Y_200=
UPPER_Y_200=
MARGIN_DISTANCE_200=
CENTER_DISTANCE_300=
LOWER_Y_300=
UPPER_Y_300=
MARGIN_DISTANCE_300

Incoming Fiducials

This section is used to generate for display and bitmap export only (no effect on GDSII or on the map file). The resulting bitmap is normally then placed into or AutoCAD.

[INCOMING_FIDUCIALS]
; Name     Shape  Size   Cen-X   Cen-Y  RGB Color
POLYMER_UL ROUND  1000  -68400   70450  225 120 163
POLYMER_LL SQUARE 1000  -68400  -70450  225 120 163
Color

This section is used to define color and fill patterns. It affects display and bitmaps; no effect on GDSII or Map file output.

[COLOR]
BACKGROUND=255 255 255
WAFER_OUTLINE=0 0 0
WAFER_FILL=0 255 0
WAFER_PATTERN=Solid
WAFER_VISIBLE=YES
MARGIN_OUTLINE=0 0 0
MARGIN_FILL=255 255 0
MARGIN_PATTERN=Solid
MARGIN_VISIBLE=YES
DIE_ENCLOSED_OUTLINE=0 0 0
DIE_ENCLOSED_FILL=0 255 0
DIE_ENCLOSED_PATTERN=Solid
DIE_ENCLOSED_VISIBLE=YES
DIE_MARGIN_OUTLINE=0 0 0
DIE_MARGIN_FILL=255 0 0
DIE_MARGIN_PATTERN=Diagonal Cross
DIE_MARGIN_VISIBLE=YES
COLLAR_OUTLINE=0 0 0
COLLAR_FILL=255 0 0
COLLAR_PATTERN=Solid
COLLAR_VISIBLE=YES
RETICLE_OUTLINE=0 0 0
RETICLE_VISIBLE=YES
GDSII

Any data on your imported die will be automatically passed to the GDSII output. You can control whether you want GDS-SR to generate additional features such as wafer outlines, margin, cross hairs, and knockout windows with the directives below.

[GDSII]
DIE_LAYERS=70:20 30:20 10:20          controls which layer:datatype gets exported
EXPORT_MARGIN=YES
MARGIN_LAYER=62
EXPORT_WAFER=YES                      exports a boundary on the wafer layer
WAFER_LAYER=63
EXPORT_CROSSHAIRS=YES
CROSSHAIRS_LAYER=100
EXPORT_KNOCKOUTS=YES                  exports a boundary defining the area for knock outs
KNOCKOUTS_LAYER=101
EXPORT_RETICLES=YES                   exports the reticle outlines
RETICLES_LAYER=102
GDSII_FILE=array_before_clipping.gds
VIEW_GDSII=YES|NO                     If YES, calls GDSII Viewer and passes file name

SINF WAFER MAP

If you wish to export a SINF wafer map include this section and make sure to specify an output file name.

[SINF_WAFER_MAP]
FILE=array_sinf.txt
DEVICE_LABEL=Example
LOT_LABEL=00293
WAFER_LABEL=0302
FNLOC_TOP=0                           Used to overwrite the default flat/notch location.           
FNLOC_BOTTOM=180
FNLOC_LEFT=270
FNLOC_RIGHT=90
FORMAT=[DECIMAL|HEXADECIMAL]          user can now choose between Hex and Decimal version

Die Placement Table

If you wish to export a simple die placement table include this section and make sure to specify an output file name.

[DIE_PLACEMENT_TABLE]
FILE=die_placement_table.txt

Bitmap Image

If you wish to generate a bitmap (say for documentation purposes) use this directive. Make sure you also have a color section to define the colors and fills.

[BITMAP_IMAGE]                             
FILE=C:\Temp\export.bmp                name and location
SIZE=2000                              bitmap width in pixels.

Closing the Program

At the end of the control file, you should close the program (releases the license for other users and cleans up any temp files).

[SCRIPT]
AUTO_CLOSE=YES