polysearch web page logo

Command Line Syntax Details

The Polysearch command line's first three arguments are the input GDSII file, the name of the output GDSII file to create and the name of the polygon template file to use as a basis for pattern matching.

Following those three arguments are a number of optional arguments.

polysearch.exe +input:<INPUT-GDSII-FILE> +output:<OUTPUT-GDSII-FILE> +polyf:<POLYLIST-GDSII-FILE>

Windows

If no window or tiling argument is present on the command line, Polysearch will compute the extents of the layout to be searched and use that as the window.

However if the user wishes to restrict the search to a rectangular region there are three ways to specify it:

Lower Left and Upper Right Corners

[-window:LLUR:<LLX>,<LLY>,<URX>,<URY>]

Lower Left Width and Height

[-window:LLWH:<LLX>,<LLY>,<WIDTH>,<HEIGHT>]

Center Width and Height

[-window:CWH:<CX>,<CY>,<WIDTH>,<HEIGHT>]

Using a Window File

If you want to define a large number of windows (say to pick only logic regions in a chip layout) it is best to place each window definition in a text file and point to the text file. The @window tells Polysearch to load the windows from the file specification that follows. All window definitions in a given file must be of the same type.

[@window:LLUR:<FILENAME>]
[@window:LLWH:<FILENAME>]
[@window:CWH:<FILENAME>]

Example

"@window:LLUR:D:\cad_data[2]\psearch\LLUR_window_list.txt"

and the file, window_list.txt, could contain:

-4053,2104,-1900,3725
-1185,1700,660,4160
-4215,-425,-650,1295
-4385,-1865,-1300,-800

Input File Settings

These settings affect the "input" file - i.e. the file to be searched for matching patterns.

Layer Filter

Generally when searching for a pattern match, the user knows which layer to search. It is highly recommended to specify that layer using the -layers argument.

[-layers:<LAYERS>]

Selecting the Cell to Search

If the -cell argument is not present, Polysearch will compute the top level cell and use that as the basis for its search. If for some reason you wish to search a different cell you can specify the name.

[-cell:<CELL>]

Data in RAM or MEMORY

The front end of Polysearch first analyzes the GDSII data and builds an array of quad tree to make accessing data faster. These quad trees are always stored in memory. The actual entity data can be loaded into memory (which will mean fast access) or left on disk if -loadfromdisk is specified. Why load from disk if it is much slower? Because there will be cases where there is simply not enough available RAM to hold the entity data in memory.

[-loadfromdisk]

Other Settings and Controls

Setting Thread Usage

As mentioned, Polysearch is multi-threaded. The user can control the number of concurrent threads. (Normally one should not request more threads than there are CPUs to handle a thread.) Polysearch has 3 different modules that are multi-threaded: the Exploder, the Boolean engine and a Scanning engine.

[-thrnum:<N-EXPL-THREADS>[,<N-BOOL-THREADS>[,<N-SCAN-THREADS>]]]

Max Vertices per Internal Tile

The program subdivides the area to search into a number of tiles with approximately the same number of vertices. The tile size is adjusted, by default, to contain approximately 500K vertices. However it is possible to change this default value by using this argument.

[-maxvert:<MAX-VERT-PER-TILE>]

Jitter/Tolerance Setting

When comparing polygons to see if they match it can be helpful to allow a small amount of tolerance (or jitter) so that tiny differences do not spoil a match. This value is entered in database units as opposed to user units. For example, if your GDSII file is in user units of um with resolution of 0.001 um and you want a tolerance of 0.01 um then you would use 10 database units.

[-jitter:<TOLERANCE-FOR-COMPARISON-IN-DATABASE-UNITS>]

Searching by Layer

In most cases the user will want to search on a per layer basis. Use the -by_layer argument to initiate this mode. This argument is normally used together with -layers: to define which layers in the input file are to be searched.

[-by_layer]

Searching by Layer & Datatype

When -by_layer is used there is no datatype discrimination. If you want to discriminate by datatype then use -by_layer_datatype.

[-by_layer_datatype]

GDSII Output File Target Layer

If neither by -by_layer or -by_layer_datatype is used, then the target layer in the output GDSII file should be specified using this argument.
[-target_lyr:<TARGET-LAYER>]

Log File Generation

To have a log file written to disk use either the -log: or -log+: argument followed by a path and filename. The -log+: argument appends log information for each new run.

[-log:${NEW_LOG_FILE}] | [-log+:${LOG_FILE}]



Examples Download Revision History Price