Command Line Examples (Linux)
We describe certain functions a user would want to perform and show a command line.
Example 1 - Multiple GDSII Clips of Constant Size
A common requirement is to extract many small clips across regions of a chip layout for some kind of analysis. When the GDSII file is very large this is compute intensive and is exactly the type of job Clipextract was intended to perform. Two libraries are made use of - QISLib_MT to extract the data and QISBOOL to clip the data to the specified window.
For this use case all the windows are the same size: 50 um x 50 um.
The user wants a separate GDSII stream file for each window written to a specified output directory.
The list of windows is in the form of a text file:
50,50 <-- the first line contains the window's width and height x,y 3260,2430 <-- each additional line contains center coordinate of the window 3721,753 <-- units are in the GDSII file's units; in this case microns 4301,1179 <-- these centers were generated randomly using Excel. 1335,3456 4459,5210 3169,4977 5117,3756 3796,1079 . . .
Here's our source file
Figure 1: 3.7 GB GDSII with data on layers 47 and 49. Extents 0,0 to 6261,6038 um
All files unless otherwise noted are in the current working directory. This is not mandatory, of course. Any paths or file names with spaces or special characters should be surrounded in double quotes. The breaks between arguments below are for purposes of clarity only.
/home/cad/clipextract/artwork/clipextract64.exe the full path to the clipextract exectuable "+input:gds_3.7gb.gds" the input file. I quoted it because I was not sure if the . in the filename might cause a problem. +outdir:output the directory where my clips will be written. this directory must exist. in this example since I did not use a full path, output is a subdirectory of my current directory. -layers:47,49 list of layers to process. I want both 47 and 49 clipped out. They will remain separate in each clip. @window:CWH:clips:clip_extract_windows.txt tells clipextract to use a file to read the windows. the format is center,width,height. the base name is "clips" the file to read is clip_extract_windows.txt +format:GDSII output format is GDSII -clip instructs the back end library (QISBool) to clip and heal any polygon that crosses the window to the edge.
There are many more controls but this is enough to get going.Once we execute this command line we'll see a lot of data scrolling across the screen. Once complete, we can go to the output directory and see that 200 files have been created:
stevedb@asmsc45:~/cad_data/output$ ls clips.ln100.gds clips.ln131.gds clips.ln162.gds clips.ln193.gds clips.ln42.gds clips.ln73.gds clips.ln101.gds clips.ln132.gds clips.ln163.gds clips.ln194.gds clips.ln43.gds clips.ln74.gds clips.ln102.gds clips.ln133.gds clips.ln164.gds clips.ln195.gds clips.ln44.gds clips.ln75.gds clips.ln103.gds clips.ln134.gds clips.ln165.gds clips.ln196.gds clips.ln45.gds clips.ln76.gds clips.ln104.gds clips.ln135.gds clips.ln166.gds clips.ln197.gds clips.ln46.gds clips.ln77.gds clips.ln105.gds clips.ln136.gds clips.ln167.gds clips.ln198.gds clips.ln47.gds clips.ln78.gds clips.ln106.gds clips.ln137.gds clips.ln168.gds clips.ln199.gds clips.ln48.gds clips.ln79.gds ... ... ...
If we open one of these clips in a GDSII viewer here is what we see:
Figure 2: View of clip from line 86 in the clip_extract_windows.txt file