next up previous contents index
Next: Per-Cell Object Mode Options Up: The !compare Command: Compare Previous: The !compare Command: Compare   Contents   Index

Common Options

There is a large number of arguments that can be applied to set various modes and provide further input. These arguments must be given as separate tokens, and all start with a `-' symbol. The following options apply to all comparison modes.

-f1 source1
This is the ``left'' source. It is either the name of an archive file, or the access name of a Cell Hierarchy Digest (CHD) in memory, or a path to a CHD file. This argument is not mandatory, and if missing implies that cells listed for the left source are found in main memory.

-f2 source2
This is the "right" source. It is either the name of an archive file, or the access name of a Cell Hierarchy Digest (CHD) in memory, or a path to a CHD file. This argument is not mandatory, and if missing implies that cells listed for the right source are found in main memory.

For backward compatibility, the ``-f1'' and ``-f2'' are optional. If otherwise unassociated strings appear in the command line, the first will be taken as if given with -f1, the second (if any) will be taken as if given with -f2.

If a layout file name is given as a source, a temporary CHD will be created in memory and destroyed on command exit. Thus for repeated comparisons using the same file, it is more efficient to create the CHD first, and pass its name to this command.

-c1 cellname ...
This is a list of cell names found in the left source. If more than one name appears, the list should be quoted using double-quote marks. If no left source was given, the names should match cells in memory.

-c2 cellname ...
This is a list of equivalent cell names found in the right source. If more than one name appears, the list should be quoted using double-quote marks. If no right source was given, the names should match cells in memory.

The actual list of cells to compare is generated by logic to be described. The left source is taken as the ``reference'' for cell list creation.

In many cases, there is only one list of cells to compare (given in -c1), and each cell is sought in both sources. If a cell is found in one source and not the other, this will appear in the log file, but is not considered to be an error.

If a -c2 ``equivalence'' list is given, there must be exactly the same number of entries as given in the -c1 list. The cells in the two lists will be compared term-by-term, in order. This is how one can compare cells with differing names. In all other cases, the -c2 list should not appear. It is an error if -c2 is given without -c1, or the list lengths differ. However, the -c2 list is ignored if in a per-cell comparison mode and the -h (recurse) option is given.

The interpretation of a non-existing -c1 list depends on the comparison mode. If in flat comparison mode, or in a per-cell mode and the -h (recurse) option is given, then the effective cell list contains only the default cell from the left source. If this was a CHD name, the default cell is the one configured into the CHD, or the first top-level cell found in the source file. In the other cases, a missing -c1 list is interpreted as all cells found in the left source.

In the special case that neither a left or right source is specified, then the -c1 and -c2 lists can not be empty, and the names are cells in memory to compare.

In the per-cell modes with -h (recurse) option given, each entry in the -c1 list is hierarchically expanded to a full list of the cells under the given cell, and these names are merged into a new list that contains no duplicates. If no -c1 list was given, per the discussion above, the cell list is effectively the hierarchy of the default cell from the left source. The recurse option can not be used unless a left source is specified, i.e., the left cells can't be from memory.

-l layer_list
The layer_list is a space-separated list of layer names, which must be quoted if more than one layer appears. If no layer_list is given, all layers will be checked for differences.

-s
If a layer_list is given, differences will be recorded in all layers except the layers in the layer_list.

-d
Don't record the actual differences, only whether or not the cells differ. This only accounts for geometrical differences, properties are ignored.

-r max_diffs
The integer max_diffs sets the maximum number of differences to allow before the comparison terminates. If not given or given a value 0, there is no limit. Beware that errors in the cell list could potentially lead to enormous output, so it is usually advisable to put a limit on the number of differences recorded.

The following options set the comparison mode. The per-cell comparison modes are generally faster and use less memory than the flat mode, since only the geometry from the two cells being compared is called into memory. The flat mode is required if the two layouts have differences in hierarchy.

-g
When -g is given, per-cell geometric comparison is used. All ``real'' objects (boxes, polygons and wires) are considered when comparing geometry, text labels are ignored.

-f
The -f option indicates flat comparison mode, and will supersede -g if also given. In flat comparison mode, geometry is logically flattened before comparison.

If neither -f or -g appears in the argument list, per-cell object mode is used.


next up previous contents index
Next: Per-Cell Object Mode Options Up: The !compare Command: Compare Previous: The !compare Command: Compare   Contents   Index
Stephen R. Whiteley 2022-05-28