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.