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.
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
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.
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
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)
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
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
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
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
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
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
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.
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
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 163Color
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=YESGDSII
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
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
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
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.
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