Log File Contents
The log file produced by Polysearch can be valuable when debugging problems or unexpected results. If a user runs into such issues, Artwork will immediately request the log file.
Below we describe the different sections of the log file using a simple example.
Version, Date, Library Versions
The first section reports the version of Polysearch and the date compiled. There is also a link to Artwork's WEB page for Polysearch. The version of the three main libraries used in Polysearch are also listed.
POLYSEARCH v1.01 [Feb 25 2017][08:23:34] (c) ARTWORK CONVERSION SOFTWARE http://www.artwork.com/gdsii/qislib_mt/index.htm QisMLib v3.4 [Feb 13 2017 12:28:45] File Open and Multi-Threaded Exploder CQisLib v5.00 (Jan 24, 2017) BoolDll v2.427 (2016/11/28) Multi-threaded Boolean library
The next section shows the command line and arguments used to launch Polysearch. This is helpful when debugging because it lets Artwork know the exact arguments used. (Note - in the log there are no CR/LF here. They are added for clarity)
Command Line: 'C:\wcad\polysearch\polysearch64.exe' '+input:D:\cad_data\psearch\input.gds' '+output:D:\cad_data\psearch\output\example2.gds' '+polyf:D:\cad_data\psearch\template2.gds' '-layers:2' '-by_layer' '-log:output\example2.log'
A report of the workstation's operating system, CPU and memory is generated.
SYSTEM INFORMATION OS: Windows NT 6.1 Service Pack: Service Pack 1 Machine Architecture: x86_64 Total Physical Memory: 7G 1022M 312K (8588156928) Total Virtual Memory: 8191G 1023M 896K (8796092891136) Num. Cores: 4
Summary of Operations
Some important statistics and timing are reported here. A start time stamp is followed by the window extents. In the example below, no user window was specified so the program computed the extents of the top level structure that it identified.
BEGIN OPERATION: 2017-03-02.09:05:24 Default window set to TOPMSPCHIP1 Cell Extents -4686.200000 -4576.850000 4685.900000 4576.600000
Scanning to Determine Optiminum Tile Size
In order to "linearize" the pattern matching computation time, Polysearch scans the region to be searched and computes the number of vertices. It then determines the optimal number of "tiles" into which it divides the search area.
In this example run the scan engine identified 768 thousand polygons (on layer 2) and 3.8 million vertices. Since the default target is 500K vertices per tile the program subdivided the search area into 20 tiles.
Scanning the input file to find optimum tiling .... Scanned number of polygons: 768719 Scanned number of vertices: 3872431 20 tiles generated ...
Polygon Matching Statistics
Each tile is submitted to a an exploder thread which extracts the data from that tile and submits the polygons to a Boolean (for unionization) and then to a pattern comparison module. When the thread completes a tile, it requests another one. When all tiles are completed the program writes the output file and is done.
Total number of tiles processed: 28 some tiles had a large number of exploded vertices so they were further subdivided. Number of Matching Polygons Found: 251 (252) 1 duplicate was found since the tiles must overlap. Thread : Explosion time: 0.20s Union time: 2.96s Compare time: 0.04s Thread : Explosion time: 0.22s Union time: 3.68s Compare time: 0.04s Thread : Explosion time: 0.27s Union time: 4.46s Compare time: 0.04s Thread : Explosion time: 0.20s Union time: 3.27s Compare time: 0.03s File Open Time (wall clock): 0.29s File Open Time (cpu): 0.06s File Scan Time (wall clock): 0.26s File Scan Time (cpu): 0.98s Polygon Search Time (wall clock): 5.19s Polygon Search Time (cpu): 15.97s File Close Time (wall clock): 0.01s File Close Time (cpu): 0.02s Total Time (wall clock): 5.55s Total Time (cpu): 16.05s Peak Memory: 149M 196K END OPERATION: 2017-03-02.09:05:30