MATCH(1ICD)

NAME
match - a network comparison program

SYNOPSIS
match [options] <nominal_network> <actual_network>

OPTIONS
The following options are available:

-B  Print an extended binding table on the stdout. All matched devices are listed as well.

-E  Print a listing of both input networks on the stdout after they have been expanded.

-I  Print a listing of both input networks on the stdout.

-P  Line printer compatible output. The VT100 compatible graphical characters used to print the binding table are replaced by ordinary ascii characters. This option is also set by the -o option.

-S  Silent mode. Only error messages are printed. The program returns an exit status:
                 0 = match succeeded.
                 1 = error.
                 2 = match failed.

-T  Trace the partitioning process. For each iteration of the partitioning process, a line containing a number of statistics is printed on the stderr.

-V  Verbose mode. Print additional process information on the stderr.

-b  Print the binding table on the stdout. Only nets and terminals are listed.

-c  Ignore capacitors in both network descriptions. Capacitors are simply omitted.

-f  Specifies that the nominal_network and actual_network arguments are names of files that contain complete sls network descriptions. The last network in each file is used as the one that needs to be processed.

-o <file>
    The output of the program (stdout) is redirected to the specified destination file. In addition the -P option is set.

-p <file>
    Specify a primitive element description file. The terminal permutabilities of primitive elements that are specified in this file possibly overrule the default terminal permutability settings. In addition, new primitive elements can be defined.

-r  Ignore resistors in both network descriptions. Resistors are replaced by a connection.

-s  Prints some statistics about both input networks and the partitioning process on the stdout.

-t  Only the standard transistors in both network descriptions are recognized. This option can be used when the actual network description contains parasitic resistors and capacitors from the layout. Equivalent to -rc.

DESCRIPTION
Match is a program that compares two networks. The program is designed to be used as a connectivity verification tool for VLSI circuits.

The program expects two input networks which by default will be read from the database. These networks may also be specified by files containing sls descriptions. The networks will be expanded before the matching process is started.

The two networks are:
The nominal network. This (hierarchical) network is used as a reference for the layout connectivity. The nominal network description can be obtained from a schematic editor or can be made by hand. In a top down design process, this description is usually already available as a result of an earlier design step (e.g. simulator input file).
The actual network. This (hierarchical) network is usually directly derived from the circuit layout using an extractor program.

The comparison process is completely independent from the individual labelings of the nets (terminals) and devices in both network descriptions. A graph theoretical partitioning algorithm is used to derive a possible isomorphic equivalence of both networks. If the two networks are found not to be isomorphic, match tries to determine which parts of the two networks are equivalent and which parts are not.

The terminal permutabilities of the primitive network elements (that is, the way in which the terminals can be interchanged without altering the topology of the network) can be defined in a user-specified primitive element file. For this purpose, the sls language is extended as follows:

Network definitions preceded by the keyword primitive consist of exactly one permutability definition followed by a semicolon. A permutability definition consists of the keyword perm followed by a number of classes enclosed by curly brackets. Each class contains a set of terminals which may be mutually interchanged. Terminals that are not part of the same class are not interchangeable.
As an illustration, the default permutability definition of an NMOS enhancement transistor is given.
        primitive network nenh (terminal g, d, s)
        {
                perm { (g) (d, s) };
        }
A standard primitive element file defines the default permutabilities of all primitive network elements.

After the comparison, the result is printed on the output. A binding table, which specifies which nets (terminals) and devices from both network descriptions are to be associated is available as well as a list of 'unmatched' nets (terminals) and devices in case the two networks are different.

EXAMPLES
match -sBx netw my_netw -o outp
match -BPV -f handshake.sls flatshake.sls

AUTHORS
T. Vogel, A.J. van der Hoeven

REMARKS
This version reads networks from the database through an interface with xsls (1ICD). This program must be present in the directory 'ICDPATH/bin'
match considers terminals and nets as different elements. It is thus not possible that an (internal) net matches with a terminal.
Before starting the network comparison, match removes all unconnected nets and terminals (including feedthroughs) from both descriptions and issues a warning about them.
match compares small and medium sized networks so fast that it takes more time to read (and expand) the networks than to compare them.

FILES
ICDPATH/lib/process/process/match_prim (standard primitive element file)
ICDPATH/bin/xsls (network extraction program)

SEE ALSO
T. Vogel, "Connectivity Verification based on Netlist Comparison", Delft University of Technology.
A.C. de Graaf, A.J. van Genderen, "SLS: Switch-Level Simulator Users Manual", Delft University of Technology.
xsls(1ICD)

DIAGNOSTICS
Syntax errors in the sls input specifications and references to undefined networks are reported. Recursive network definitions are detected as well.
All other error messages are self-explanatory.

BUGS
All known bugs have been fixed.