GDSII & OASIS Hierarchical ExtractorNormally when you attempt to extract a window or windows of data from a GDSII/OASIS file that is hierarchical, the hierarchy must be completely flattened or exploded before entities that cross the window can be computed and extracted. The resulting file is flat and can be quite large if the region extracted was large and dense. HExtract is a command line based engine used to extract a window out of a GDSII or OASIS file while preserving as much hierarchy as is possible. It does this by analyzing whether a particular cell placement is completely inside of the desired window, completely outside of the desired window or crosses the boundary of the desired window. User Controls The user defines the coordinates of the window to extract, the cell to start with, as well as which layers to extract to the output file. The user can also specify a tiling parameter that will create many tiled outputs, each with its own filename identifying the location in the array of tiles. For applications where user display/interaction is preferred HExtract is available as a plug-in to Qckvu3. | App NotePreparing a Flip Chip Mask Set As more packaging is done "on wafer" it becomes necessary to create large masks that define openings, RDL, UMB and BUMP stencils. This note describes how we do this using a combination of GDS-SR and HExract ...
Mask clipped to round using Hextract |
UsageHExtract is command line based. Syntax and examples are shown below:
hextract64 <input_file> <output_file> [options]
hextract name/path to the executable - may vary depending on the platform
and whether it is 32 or 64 bit implementation.
input_file Path/Filename of the source GDSII/OASIS file.
This file can be one of the following types : GDSII, OASIS
QIS 'Load' Cache [*.load.(b32 | b64 | l32 | l64)] *
QIS 'DbLoad' Cache [*.dbload.(b32 | b64 | l32 | l64)] *
* The appropriate supporting files (scan, GDSII) must also be present
in the same directory as the cache file.
output_file Path/Filename path of file to be created. Output is always GDSII.
Options
-cell:cell_name Specify the cell to be extracted. If no name specified, the program will
determine the top level cell by computing which cell has the deeepest tree
below it.
-top:name Specify the name of the top level cell in the output GDSII file. If not
specified this defaults to the name of the cell used from the input file.
-layers:layer_string Specify the layers to be extracted. (default: All layers)
layer_string := All | layer[:datatype][,layer[:datatype]]*
OR
layer_string := map[,map]*
map := layer[:datatype]-layer[:datatype]
| layer[:datatype]-NULL
| ALL-layer[:datatype]
| ALL-NULL
-window:minX,minY,maxX,maxY Specify a window for extraction. Data crossing the window will either be
clipped or not depending on the absence or presence of the -noclip option.
-tilesz:width,height Divide the extraction window into tiles of size (width x height) user units.
This may generate more than one output files. Each of these output files
will have a suffix indicating its position in the array of tiles.
-tile:columns,rows Divide the extraction window into (rows x columns) tiles of equal size.
This will generate (rows x columns) output files. Each of these output files
will have a suffix indicating its row and column. e.g file_name.row.col.gds
(default: rows = 1, columns = 1).
-noclip Do not clip the data crossing the extraction window. (default: allow clipping)
-silent Supress messages written to stdout or stderr. default behavior is to write
messages to stdout, stderr)
-regions:region Each region consists of 4 pairs of coordinates (separated by commas) regions
are separted by the colon symbol. Use the region option where you want to extract
multiple regions to a single file.
-region:10,10,50,50:900,900,950,950:1100,1105,1200,1110
-complement Extract the complement of the specified window/regions. Works with both the -window
and -regions options. -tile and -tilesz options cannot be used with this option.
-flatten Flatten (explode) the output data.
-ignorecell_names:list Ignore the definition and all references to the specified cells while reading the
input file. The list consists of cell names separated by a commma. Cell names
are case sensitive.
-ignorecell_expr:("unix" | "dos"),expr1,expr2,...
Ignore the definition and all references to the cells that match the specified
regular expressionswhile reading the input file.
-notext Do not extract TEXT data.
-load2mem Load the source file (GDSII or OASIS or DbLoad Cache) to memory
for faster operations.(at the costof consuming more run-time memory.)
|
ExampleExtracting a Window from demo8.gds We wish to extract a small window from the design called demo8.gds. We want all of the layers and want to use the top level structure of demo8. The output and input file are both located in the working directory.
The output file will be called extract_hex.gds and its top level structure will be named TOP. This example was run on our linux box. the command line (shown broken to fit on page)
$ $CAD/hextract/bin/hextract64
demo8.gds
extract_hex.gds
-top:TOP
-layers:ALL
-window:394.445,-2265.683,1854.705,-813.302
Once [enter] has been pressed the program prints to stdout (my console):
Hierarchy Extractor v1.03 rcs(1.35 2010/01/25)
Build 10.01.25.16.59 on Linux 2.6.9-5.ELsmp [x86_64] Architecture x86_64
(c) 2009 Artwork Conversion Software Inc.
417 Ingalls St. Santa Cruz CA 95060
Tel : (831) 426-6163
Fax : (831) 426-2824
Email: info@artwork.com
Web : www.artwork.com
Command Line:
/home/cad/hextract/bin/hextract64
demo8.gds
extract_hex.gds
-top:TOP
-layers:ALL
-window:394.445,-2265.683,1854.705,-813.302
QisLib v2.67 (November 25, 2009)
Loading Extractor Engine ... done.
Initializing Extractor Engine ... done.
XtrakH v1.07 rcs(1.51 2009/11/19) Build 10.01.25.16.59 [64bit]
Opening input GDSII file demo8.gds
Scanning... 0%
Scanning... 100%
Scanning... 100%
Scanning in 0 min 0 sec
Loading... 0%
Loading... 57%
Loading... 100%
Loading in 0 min 1 sec
Extracting file extract_hex.gds (394.445, -2265.68, 1854.7, -813.302)
<End Of Operation> (1.735 sec)
Comparing the Size of the Flat vs Hierarchical Extraction If we extract the same region by flattening the hierarchy and compare the size of the two files we see that: -rw-r--r-- 1 stevedb 29061198 demo8.gds -rw-r--r-- 1 stevedb 1392640 extract_hex.gds -rw-r--r-- 1 stevedb 9222144 flat_extract.gds The source file, demo8.gds, is 29MB in size, the hierarchical extraction is 1.39 MB in size and the flattened extraction is 9.2 MB in size. Scaling these ratios up to larger files shows the value of keeping the extraction hierarchical. |
|
To see how much hierarchy was preserved I did a "dump" of the cell tree for the extract_hex.gds file: |
|||
TOP
|_ G130S0F36
|_- G130S69F35
|_ G51S3F35
|_- G130S101F35
|_ G51S3F35
|_- G130S105F35
|_ G51S6F35
|_- G130S29F35
|_ G7S2F35
|_ STDAND2$STS
|_ STDINV$STS
|_ STDNOR2$STS
|_ SCLATCH$F36
|_ SCINV$F36
|_ G130S104F35
|_- G130S95F35
|_ G51S4F35
|_- G130S146F35
|_ G51S7F35
|_- G130S108F35
|_ G51S7F35
|_- STDOA22$STS
|_ G51S0STS
|_ STDOR4$STS
|
|_ G130S4F35
|_ SCNOR2$F36
|_- G130S103F35
|_ G7S1F35
|_ STDOR2$STS
|_- TOPINDEXNOISE_INDEXDP1
|_- G111S1F35
|_ G193S1F35
|_ G206S1F36
|_ G139S0F36
|_ G47S9F35
|_- G203S2F36
|_- G36S0F36
|_ G143S0F36
|_ G197S1F36
|_ G165S2F36
|_ G191S1F35
|_- G203S3F36
|_ G189S0F36
|_ G202S0F36
|_ G73S0F36
|_ G74S2F35
|_ G94S0F36
|_- G111S2F35
|_ G193S2F35
|_ G47S2F35
|_ G175S0F36
|
|_ G165S0F36
|_ G102S0F36
|_- G216S5F36
|_ G0S0F36
|_ G182S1F36
|_ G22S0F36
|_- G216S0F36
|_ G0S0F36
|_ G80S0F36
|_ G22S0F36
|_- G216S9F36
|_ G222S1F36
|_ G177S1F36
|_ G164S1F36
|_- G216S6F36
|_ G0S1F36
|_ G223S0F36
|_ G22S1F36
|_- G216S11F36
|_ G222S3F36
|_ G177S3F36
|_ G169S1F36
|_ G74S1F35
|_- G216S7F36
|_ G0S0F36
|_ G223S1F36
|_ G22S0F36
|
|_- G216S4F36
|_ G0S0F36
|_ G182S0F36
|_ G22S0F36
|_- G216S8F36
|_ G222S0F36
|_ G177S0F36
|_ G164S0F36
|_- G216S12F36
|_ G222S4F36
|_ G176S0F36
|_ G169S2F36
|_- G216S10F36
|_ G222S2F36
|_ G177S2F36
|_ G169S0F36
|
|
More Examples ...
|
| Download | FAQ | Revision History | Price |
|
ARTWORK CONVERSION SOFTWARE, INC. Company Profile 417 Ingalls St., Santa Cruz, CA 95060 Tel (831) 426-6163 Fax 426-2824 email: info@artwork.com |