The comparison mode can be selected by clicking on the tabs at the top of the panel. Both of the per-cell modes contain Recurse Into Hierarchy and Expand Array buttons. The Recurse Into Hierarchy check box indicates that the cell to compare is to be taken as the top of a hierarchy, and this and all descendent cells should be compared. If not set, only the named cell is compared.
The Expand Arrays button applies when cell instances are being checked. When set, instance arrays are logically converted to individual placements before comparison. This avoids flagging differences that are due only to whether instances are arrayed or not, or whether that arraying is the same. This is useful when comparing OASIS files to GDSII files, for example, where the OASIS repetition finder may have been used.
Electrical cells can be compared using the Per-Cell Objects mode only. The mode to compare is selected on the page, which may be different from the current mode of the program.
When using Per-Cell Objects, one may select which type of objects to compare. Objects types that are not active are ignored. By default, text labels are ignored and all other objects are compared. A difference is indicated if a tested object does not have an identical counterpart in the other cell.
Comparison of labels can lead to false differences when comparing cells read from different file formats, since label bounding boxes are not well defined across file format conversion.
The Per-Cell Objects page contains a Box to Wire/Poly Check check box. With this mode selected, a two-vertex wire or four-vertex polygon that is rendered as a Manhattan rectangle will match a rectangle object with the same dimensions. Thus, files that have had these features converted to boxes to save space can be directly compared, without a lot of spurious entries in output.
The Ignore Duplicates check box in the Per-Cell Objects page sets a mode where if duplicate objects are present in one or both of the files, unmatched duplicates will not be reported if one of the duplicates has a match. Thus files with duplicates removed can be compared with the original file, and the duplicates will not appear in output as differences.
In Per-Cell Geometry mode, all boxes, polygons, and wires are included. Text labels are ignored. A button provides a choice whether or not to check subcells, which are tested as in the per-cell object mode.
When using Per-Cell Geometry mode, the geometry is compared within areas of a grid whose size is given by the PartitionSize variable. Experimenting with this size can lead to improved speed, depending on the layout density. The default partition size is 100 microns. For best performance, this can be increased for low density, or reduced for high density, where ``density'' refers to the number of trapezoids per area.
The Flat Geometry mode is somewhat orthogonal to the other modes. The algorithm uses two levels of gridding to partition the layout into pieces, and directly compares the geometry in each fine grid cell. This is very similar to the algorithm described for the ChdIterateOverRegion script function.
The fine grid size is entered in microns, the coarse grid size is entered as an integer multiple of the fine grid size. The flat geometry to render a coarse grid cell is held in memory, but subdivided into the fine grid cells for the comparison. Using a large coarse grid with a dense layout may trigger memory availability issues, yet using a large coarse grid usually improves speed. The user should experiment with the parameter values to see what works best with their layouts. The fine grid can be in the range of 1.0 to 100.0 microns, and the multiplier can be in the range 1 - 100.
If the Use Window button is active, a rectangle entered into the entries (in microns) can be used to limit the comparison area. If not active, an area covering the entire bounding box of both cells being compared is used. The S and R buttons provide access to eight general purpose storage registers for rectangles, as provided in other panels that use rectangle data.