qislib_mt_web_page_logo.gif

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

source_gdsii_for_clip86.gif

Figure 1: 3.7 GB GDSII with data on layers 47 and 49. Extents 0,0 to 6261,6038 um


Command Line

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:

clip86_screenshot.gif

Figure 2: View of clip from line 86 in the clip_extract_windows.txt file










Documentation Download Rev History Price