page header

QISMHCompare Command Line

The QISMHCompare program is run using a command line. This enables a user to embed the command line inside of scripts and batch files for fine control of the output.




COMMAND LINE

qismhcompare2files.exe +inputA:<INPUT-GDSII-FILE> +inputB:<INPUT-GDSII-FILE> +output:<OUTPUT-GDSII-BASENAME> [options]

where

qismhcompare2files.exe                                     path and name of the QISMHCompare executable

+inputA:<INPUT-GDSII-FILE>                                 first input GDSII file to compare

+inputB:<INPUT-GDSII-FILE>                                 second input GDSII file to compare

+output:<OUTPUT-GDSII-BASENAME>                            output GDSII file to generate containing differences

[options]                                                  any optional arguments used to control the comparison



[OPTIONAL ARGUMENTS]

# LAYER CONTROLS

[-layers:<LAYERS>]                                        determines which layers will be compared. This could be a single layer,
                                                                a layer:datatype specification or a comma delimited list of layers and layer:datatypes.



								   
# CELL/STRUCTURE CONTROLS

[-cells:<CELL_A[,CELL_B[,...]]>]                           a list on the command line of cell names to be compared.
[-cells:<@CELL_LIST_FILE_PATH>]                            a list located inside a file for cells to be compared.
                                                           The file contains one cell name per line.
                                                           1) If no list is provided then all of the cells found in the two files will
                                                              be compared.
                                                           2) If a cell name mismatch is encountered, the program will abort
                                                              unless the argument -allow_cell_list_mismatch has been used. 

[-allow_cell_list_mismatch]                                process common cells found between two source files even in the presence of
                                                           a cell name mismatch.
                                                           

[-exclude_cells:<EXCLUDE_CELL_A[,EXCLUDE_CELL_B[,...]]>]   if exclude is used, then all cells except the excluded ones will be compared.
[-exclude_cells:<@EXCLUDE_CELL_LIST_FILE_PATH>]            you can also put the list of cells to be excluded inside a file.


# COMPARISON SETTINGS

[-nesting_level:<MAX-NESTING-LEVEL>]                       nesting level control. use 0 for full explosion
                                                           A value >0 means that the comparison will be done on the data located in the cell
                                                           under consideration and n levels below the specified cell.




[-disable_special_cells]                                   ignore ~Rect~Array and ~Fan~Out cells
                                                           These cells are generated by GDSCompact-E and have specially constructed names 
                                                           which is how the comparison engine recognizes them.
										
[-disable_rectarray_recognition]                           explode rectangular arrays 

[-disable_sorting]                                         disable sorting output data
                                                           Since QISMHCompare is multi-threaded, the order in which the difference data
                                                           is produced will vary depending on thread allocations. Sorting (on by default)
                                                           insures that two separate runs of the same comparison will produce output that
                                                           that is spatially sorted and thus repeatable.

[-disable_post_union]                                      disable unionizing collected differences from all sub-tiles
                                                           QISMHCompare divides the layout into tiles in order to enable parallel processing.
                                                           By default, output geometries which cross a tile are unionized. 


[-disable_extbox_shifting]                                 disable shifting extent box to origin
                                                           In order to miminize noise, QISMHCompare will move cell data to be located near
                                                           the origin to perform the Boolean operations - then once the differences are computed
                                                           the data is returned to its original location.


[-disable_clipwin_extension]                               disable extending each sub-tile by multiple of sliver
                                                           In order to insure that any artifacts generated which could cross a tile boundary are
                                                           correctly dealt with the tile's extents are expanded by 3X of the user defined sliver
                                                           value (default behavior). If you do not wish this clipping window extension to be used
                                                           then use this argument on the command line.



[-enable_spike_removal]                                    enable spike removal in boolean operations
                                                           In the case where one encounters certain artifacts due to poorly defined input geometries
                                                           one can enable spike removal which adds some operations to detect and correct artifacts.
                                                           Spike removal is off by default because it reduces performance.


[-quadcheck:<SRC-SPECIFIER[,MAX-EXT-X[,MAX-EXT-Y]]>]                     validate dimensions of quads
where                                                                          If you are comparing a source file to one optimized by GDSCompact-E,
  SRC-SPECIFIER : 0-NONE, 1-INPUT_A, 2-INPUT_B, 3-BOTH                         the optimized file will have geometries broken into quads. This
  MAX-EXT-X : max width allowed for quad data (i.e. 3800, 38um)                argument turns on the checking of quad validity and dimensions.
  MAX-EXT-Y : max height allowed for quad data (i.e 3800, 38um)                Specify the max extents either in DBU or using a unit specified such
                                                                               um.
		
[-special_cell_extents_check:<SRC-SPECIFIER[,MAX-EXT-X[,MAX-EXT-Y]]>]   validate dimenions of special cells
where
  SRC-SPECIFIER : 0-NONE, 1-INPUT_A, 2-INPUT_B, 3-BOTH
  MAX-EXT-X : max width allowed for special cell extents (i.e. 3800, 38um)
  MAX-EXT-Y : max height allowed for special cell extents (i.e 3800, 38um)
		
		
[-qcmp]                                                    runtime node comparison vs exposure plan
                                                           switches running modes (specific to lithography flow)



# MISCELLANEOUS SETTINGS

[-output_layer:<LAYER>]                                    Differences output to this layer
[-output_dttp:<DATATYPE>]                                  Differences output to this datatype

or

[-output_layer_offset:<LAYER_OFFSET[,DATATYPE_OFFSET]>]    Differences output to source layer plus user defined offset





[-sliver:<TOLERANCE-FOR-COMPARISON-WITH-UNITS>]            1 dbu by default; can enter in DBU or use units i.e. 0.01um.
                                                           see  sliver definition

[-critdim:<TOLERANCE-FOR-NOISE-HANDLING>]                  1 dbu by default
                                                           a paramter used to detect and remove noise generated by numerical issues.

[-thrnum:<N-THREADS>]                                      Number of concurrent threads to allocate

[-prescale:<QUANTUM>]                                      Scaling value to increase numerical precision (1 by default)

[-maxvert:<MAX-VERT-PER-TILE>]                             Max vertex count per tile (100,000 by default)
                                                           QISMHCompare divides a layout into "tiles" and determines the tile size to limit
                                                           the number of vertices so that the Boolean computations remain in the linear
                                                           part of the vertex count vs. computation time curve.

[-log:<NEW_LOG_FILE>] || [-log+:<LOG_FILE>]                controls whether to create a new log file or append to an existing log file.
                                                           Also controls the location and name of the log file.