================================================================================ QISMXOR2FILES APP (c) Artwork Conversion Software Inc. www.artwork.com ================================================================================ Compare two GDSII/OASIS/DBLOAD files using QisMLib and QisMBoolFiles extension to determine if they are equivalent (XOR between their polygons is an empty set) ================================================================================ ================================================================================ ALSO REQUIRED ================================================================================ ||| WINDOWS (64 bit, VC 2008) -------------------------------------------------------------------------------- + qismboolfilesextn64.dll + qismlib64.dll + acsbool64.dll + zlibwapi.dll -------------------------------------------------------------------------------- ||| LINUX (64 bit, GCC 4+) -------------------------------------------------------------------------------- + qismboolfilesextn64.so + libqism64.so -------------------------------------------------------------------------------- ||| WINDOWS & LINUX -------------------------------------------------------------------------------- + qismboolfiles.cfg + colfill.pat + gdsfont.shx + acs.key -------------------------------------------------------------------------------- ||| LICENSE per execution -------------------------------------------------------------------------------- + 1 x QisMLib (11003) + N x QisMBoolFiles (11071) Where N = number of windows to be processed in parallel (command-line option -ntw:) ================================================================================ ================================================================================ COMMAND-LINE & USAGE ================================================================================ qismcompare2files +inputA:{file-A} +inputB:{file-B} +output:{output-gds-file} \ [OPTIONS] -------------------------------------------------------------------------------- ||| REQUIRED ARGUMENTS -------------------------------------------------------------------------------- +inputA:{file-A} > Path to a valid GDSII, OASIS or DBLOAD file as the first operand -------------------------------------------------------------------------------- +inputB:{file-B} > Path to a valid GDSII, OASIS or DBLOAD file as the second operand -------------------------------------------------------------------------------- +output:{output-gds-file} > Path of a GDSII output (XOR) to be created -------------------------------------------------------------------------------- ||| VIEW SPEC. (OPTIONAL) -------------------------------------------------------------------------------- [-cellA:{cell-name}] > View cell for file-A > If not specified, the deepest top cell is used -------------------------------------------------------------------------------- [-cellB:{cell-name}] > View cell for file-B > If not specified, it is set to the view cell of file-A -------------------------------------------------------------------------------- [-layers:{layer-list}] > Comma-separated list of layer(s) or layer:datatype(s) to compare > The specified layers MUST exist in both files > If not specified or "ALL", all layers of file-A are used -------------------------------------------------------------------------------- ||| OUTPUT SPEC. (OPTIONAL) -------------------------------------------------------------------------------- [-xorinput:{layer-offset}] > For each tile where a difference was found, write the polygons from file-A and file-B at the specified layer offset. E.g if the layer-offset is 100 and a difference was found on layer 1:1, output layer 1:0 contains the XOR polygons, 101:1 contains polygons from file-A layer 1:1, 201:1 contains polygons from file-B layer 1:1 > Default: Only the XOR output is written -------------------------------------------------------------------------------- ||| LOAD BALANCE SPEC. (OPTIONAL) -------------------------------------------------------------------------------- [-ntw:{num-window-threads}] > Specify the number of window/processor threads. Indicates the number of windows that will be processed in parallel > Requires 1 license of QisMBoolFiles per thread > Limited to the number of licenses available > Default: No. cores/2 -------------------------------------------------------------------------------- [-ntp:{num-threads-per-window}] > Specify the number of threads per window for boolean operations > Independent of licensing > Default: 2 -------------------------------------------------------------------------------- [-tiles:{nx},{ny}] > Break the area of comparison into {nx},{ny} equal sized tiles for all layers > Default: {nx},{ny} is automatically computed for each layer depending on the amount of data present -------------------------------------------------------------------------------- [-tilev:{n-vertices}] > Control the number of tiles using an estimate of the number of vertices per tile. This works only if the tiling is auto-determined (-tiles: is not used) > Default: 75000 -------------------------------------------------------------------------------- [-dynamicwin:{num-vertices}] > Dynamically break up tiles containing more than {num-vertices}*2 vertices into quads for re-processing. This results in much faster comparison especially when the data density not uniform across the entire comparison space > Default: 0 (OFF). Each tile is processed as-is -------------------------------------------------------------------------------- ||| COMPARISON SPEC. (OPTIONAL) -------------------------------------------------------------------------------- [-sliver:{value}] > Remove polygons that are smaller then {value} specified in file-units > Default: 0.0 (no sliver removal) -------------------------------------------------------------------------------- [-limit:{count}] > Terminate comparison as soon as atleast {count} differences (XOR polygons) are found > Default: -limit:1 (Terminate on the very first difference) > -limit:0 implies computing all differences -------------------------------------------------------------------------------- [-roi:{llx},{lly},{urx},{ury}] > Only compare a specific region from both files > {llx},{lly},{urx},{ury} are the lower-left and upper-right points of the region of interest > Default: Entire extents of the view cell is compared -------------------------------------------------------------------------------- ||| MISC. -------------------------------------------------------------------------------- [-silent] > Do not write any messages to stdout/stderr > Default: Not silent -------------------------------------------------------------------------------- [-log:{log-file-path} | -log+:{log-file-path}] > Enable logging and specify the log file path > -log: Creates a new file, -log+ appends if that file exists > Default: No log file created ================================================================================ ================================================================================ VERSION HISTORY ================================================================================ -------------------------------------------------------------------------------- v1.2 (2018-6-26) + Compatible with QisMLib 3.20 (API break) -------------------------------------------------------------------------------- v1.1 (2018-2-23) + Enables QisMLib system-wide logging (QISM_ARG_LOGFP) -------------------------------------------------------------------------------- ================================================================================