You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
379 lines
14 KiB
379 lines
14 KiB
.\" $Id: nanotrav.1,v 1.23 2009/02/21 06:00:31 fabio Exp fabio $
|
|
.\"
|
|
.TH NANOTRAV 1 "18 June 2002" "Release 0.11"
|
|
.SH NAME
|
|
nanotrav \- a simple state graph traversal program
|
|
.SH SYNOPSIS
|
|
.B nanotrav
|
|
[option ...]
|
|
.SH DESCRIPTION
|
|
|
|
nanotrav builds the BDDs of a circuit and applies various reordering
|
|
methods to the BDDs. It then traverses the state transition graph of
|
|
the circuit if the circuit is sequential, and if the user so requires.
|
|
nanotrav is based on the CUDD package. The ordering of the variables
|
|
is affected by three sets of options: the options that specify the
|
|
initial order (-order -ordering); the options that specify the
|
|
reordering while the BDDs are being built (-autodyn -automethod); and
|
|
the options to specify the final reordering (-reordering
|
|
-genetic). Notice that both -autodyn and -automethod must be specified
|
|
to get dynamic reordering. The first enables reordering, while the
|
|
second says what method to use.
|
|
.SH OPTIONS
|
|
.TP 10
|
|
.B \fIfile\fB
|
|
read input in blif format from \fIfile\fR.
|
|
.TP 10
|
|
.B \-f \fIfile\fB
|
|
read options from \fIfile\fR.
|
|
.TP 10
|
|
.B \-trav
|
|
traverse the state transition graph after building the BDDs. This
|
|
option has effect only if the circuit is sequential. The initial
|
|
states for traversal are taken from the blif file.
|
|
.TP 10
|
|
.B \-depend
|
|
perform dependent variable analysis after traversal.
|
|
.TP 10
|
|
.B \-from \fImethod\fB
|
|
use \fImethod\fR to choose the frontier states for image computation
|
|
during traversal. Allowed methods are: \fInew\fR (default), \fIreached\fR,
|
|
\fIrestrict\fR, \fIcompact\fR, \fIsqueeze\fR, \fIsubset\fR, \fIsuperset\fR.
|
|
.TP 10
|
|
.B \-groupnsps \fImethod\fB
|
|
use \fImethod\fR to group the corresponding current and next state
|
|
variables. Allowed methods are: \fInone\fR (default), \fIdefault\fR,
|
|
\fIfixed\fR.
|
|
.TP 10
|
|
.B \-image \fImethod\fB
|
|
use \fImethod\fR for image computation during traversal. Allowed
|
|
methods are: \fImono\fR (default), \fIpart\fR, \fIdepend\fR, and
|
|
\fIclip\fR.
|
|
.TP 10
|
|
.B \-depth \fIn\fB
|
|
use \fIn\fR to derive the clipping depth for image
|
|
computation. It should be a number between 0 and 1. The default value
|
|
is 1 (no clipping).
|
|
.TP 10
|
|
.B \-verify \fIfile\fB
|
|
perform combinational verification checking for equivalence to
|
|
the network in \fIfile\fR. The two networks being compared must use
|
|
the same names for inputs, outputs, and present and next state
|
|
variables. The method used for verification is extremely
|
|
simplistic. BDDs are built for all outputs of both networks, and are
|
|
then compared.
|
|
.TP 10
|
|
.B \-closure
|
|
perform reachability analysis using the transitive closure of the
|
|
transition relation.
|
|
.TP 10
|
|
.B \-cdepth \fIn\fB
|
|
use \fIn\fR to derive the clipping depth for transitive closure
|
|
computation. It should be a number between 0 and 1. The default value
|
|
is 1 (no clipping).
|
|
.TP 10
|
|
.B \-envelope
|
|
compute the greatest fixed point of the state transition
|
|
relation. (This greatest fixed point is also called the outer envelope
|
|
of the graph.)
|
|
.TP 10
|
|
.B \-scc
|
|
compute the strongly connected components of the state transition
|
|
graph. The algorithm enumerates the SCCs; therefore it stops after a
|
|
small number of them has been computed.
|
|
.TP 10
|
|
.B \-maxflow
|
|
compute the maximum flow in the network defined by the state graph.
|
|
.TP 10
|
|
.B \-sink \fIfile\fB
|
|
read the sink for maximum flow computation from \fIfile\fR. The source
|
|
is given by the initial states.
|
|
.TP 10
|
|
.B \-shortpaths \fImethod\fB
|
|
compute the distances between states. Allowed methods are: \fInone\fR
|
|
(default), \fIbellman\fR, \fIfloyd\fR, and \fIsquare\fR.
|
|
.TP 10
|
|
.B \-selective
|
|
use selective tracing variant of the \fIsquare\fR method for shortest
|
|
paths.
|
|
.TP 10
|
|
.B \-part
|
|
compute the conjunctive decomposition of the transition relation. The
|
|
network must be sequential for the test to take place.
|
|
.TP 10
|
|
.B \-sign
|
|
compute signatures. For each output of the circuit, all inputs are
|
|
assigned a signature. The signature is the fraction of minterms in the
|
|
ON\-set of the positive cofactor of the output with respect to the
|
|
input. Signatures are useful in identifying the equivalence of circuits
|
|
with unknown input or output correspondence.
|
|
.TP 10
|
|
.B \-zdd
|
|
perform a simple test of ZDD functions. This test is not executed if
|
|
-delta is also specified, because it uses the BDDs of the primary
|
|
outputs of the circuit. These are converted to ZDDs and the ZDDs are
|
|
then converted back to BDDs and checked against the original ones. A
|
|
few more functions are exercised and reordering is applied if it is
|
|
enabled. Then irredundant sums of products are produced for the
|
|
primary outputs.
|
|
.TP 10
|
|
.B \-cover
|
|
print irredundant sums of products for the primary outputs. This
|
|
option implies \fB\-zdd\fR.
|
|
.TP 10
|
|
.B \-second \fIfile\fB
|
|
read a second network from \fIfile\fR. Currently, if this option is
|
|
specified, a test of BDD minimization algorithms is performed using
|
|
the largest output of the second network as constraint. Inputs of the
|
|
two networks with the same names are merged.
|
|
.TP 10
|
|
.B \-density
|
|
test BDD approximation functions.
|
|
.TP 10
|
|
.B \-approx \fImethod\fB
|
|
if \fImethod\fR is \fIunder\fR (default) perform underapproximation
|
|
when BDDs are approximated. If \fImethod\fR is \fIover\fR perform
|
|
overapproximation when BDDs are approximated.
|
|
.TP 10
|
|
.B \-threshold \fIn\fB
|
|
Use \fIn\fR as threshold when approximating BDDs.
|
|
.TP 10
|
|
.B \-quality \fIn\fB
|
|
Use \fIn\fR (a floating point number) as quality factor when
|
|
approximating BDDs. Default value is 1.
|
|
.TP 10
|
|
.B \-decomp
|
|
test BDD decomposition functions.
|
|
.TP 10
|
|
.B \-cofest
|
|
test cofactor estimation functions.
|
|
.TP 10
|
|
.B \-clip \fIn file\fB
|
|
test clipping functions using \fIn\fR to determine the clipping depth
|
|
and taking one operand from the network in \fIfile\fR.
|
|
.TP 10
|
|
.B \-dctest \fIfile\fB
|
|
test functions for equality and containment under don't care
|
|
conditions taking the don't care conditions from \fIfile\fR.
|
|
.TP 10
|
|
.B \-closest
|
|
test function that finds a cube in a BDD at minimum Hamming distance
|
|
from another BDD.
|
|
.TP 10
|
|
.B \-clauses
|
|
test function that extracts two-literal clauses from a DD.
|
|
.TP 10
|
|
.B \-char2vect
|
|
perform a simple test of the conversion from characteristic function
|
|
to functional vector. If the network is sequential, the test is
|
|
applied to the monolithic transition relation; otherwise to the primary
|
|
outputs.
|
|
.TP 10
|
|
.B \-local
|
|
build local BDDs for each gate of the circuit. This option is not in
|
|
effect if traversal, outer envelope computation, or maximum flow
|
|
computation are requested. The local BDD of a gate is in terms of its
|
|
local inputs.
|
|
.TP 10
|
|
.B \-cache \fIn\fB
|
|
set the initial size of the computed table to \fIn\fR.
|
|
.TP 10
|
|
.B \-slots \fIn\fB
|
|
set the initial size of each unique subtable to \fIn\fR.
|
|
.TP 10
|
|
.B \-maxmem \fIn\fB
|
|
set the target maximum memory occupation to \fIn\fR MB. If this
|
|
parameter is not specified or if \fIn\fR is 0, then a suitable value
|
|
is computed automatically.
|
|
.TP 10
|
|
.B \-memhard \fIn\fB
|
|
set the hard limit to memory occupation to \fIn\fR MB. If this
|
|
parameter is not specified or if \fIn\fR is 0, no hard limit is
|
|
enforced by the program.
|
|
.TP 10
|
|
.B \-maxlive \fIn\fB
|
|
set the hard limit to the number of live BDD nodes to \fIn\fR. If
|
|
this parameter is not specified, the limit is four billion nodes.
|
|
.TP 10
|
|
.B \-dumpfile \fIfile\fB
|
|
dump BDDs to \fIfile\fR. The BDDs are dumped just before program
|
|
termination. (Hence, after reordering, if reordering is specified.)
|
|
.TP 10
|
|
.B \-dumpblif
|
|
use blif format for dump of BDDs (default is dot format). If blif is
|
|
used, the BDDs are dumped as a network of multiplexers. The dot format
|
|
is suitable for input to the dot program, which produces a
|
|
drawing of the BDDs.
|
|
.TP 10
|
|
.B \-dumpmv
|
|
use blif-MV format for dump of BDDs. The BDDs are dumped as a network
|
|
of multiplexers.
|
|
.TP 10
|
|
.B \-dumpdaVinci
|
|
use daVinci format for dump of BDDs.
|
|
.TP 10
|
|
.B \-dumpddcal
|
|
use DDcal format for dump of BDDs. This option may produce an invalid
|
|
output if the variable and output names of the BDDs being dumped do
|
|
not comply with the restrictions imposed by the DDcal format.
|
|
.TP 10
|
|
.B \-dumpfact
|
|
use factored form format for dump of BDDs. This option must be used
|
|
with caution because the size of the output is proportional to the
|
|
number of paths in the BDD.
|
|
.TP 10
|
|
.B \-storefile \fIfile\fB
|
|
Save the BDD of the reachable states to \fIfile\fR. The BDD is stored at
|
|
the iteration specified by \fB\-store\fR. This option uses the format of
|
|
the \fIdddmp\fR library. Together with \fB\-loadfile\fR, it implements a
|
|
primitive checkpointing capability. It is primitive because the transition
|
|
relation is not saved; because the frontier states are not saved; and
|
|
because only one check point can be specified.
|
|
.TP 10
|
|
.B \-store \fIn\fB
|
|
Save the BDD of the reached states at iteration \fIn\fR. This option
|
|
requires \fB\-storefile\fR.
|
|
.TP 10
|
|
.B \-loadfile \fIfile\fB
|
|
Load the BDD of the initial states from \fIfile\fR. This option uses the
|
|
format of the \fIdddmp\fR library. Together with \fB\-storefile\fR, it
|
|
implements a primitive checkpointing capability.
|
|
.TP 10
|
|
.B \-nobuild
|
|
do not build the BDDs. Quit after determining the initial variable
|
|
order.
|
|
.TP 10
|
|
.B \-drop
|
|
drop BDDs for intermediate nodes as soon as possible. If this option is
|
|
not specified, the BDDs for the intermediate nodes of the circuit are
|
|
dropped just before the final reordering.
|
|
.TP 10
|
|
.B \-delta
|
|
build BDDs only for the next state functions of a sequential circuit.
|
|
.TP 10
|
|
.B \-node
|
|
build BDD only for \fInode\fR.
|
|
.TP 10
|
|
.B \-order \fIfile\fB
|
|
read the variable order from \fIfile\fR. This file must contain the
|
|
names of the inputs (and present state variables) in the desired order.
|
|
Names must be separated by white space or newlines.
|
|
.TP 10
|
|
.B \-ordering \fImethod\fB
|
|
use \fImethod\fR to derive an initial variable order. \fImethod\fR can
|
|
be one of \fIhw\fR, \fIdfs\fR. Method \fIhw\fR uses the order in which the
|
|
inputs are listed in the circuit description.
|
|
.TP 10
|
|
.B \-autodyn
|
|
enable dynamic reordering. By default, dynamic reordering is disabled.
|
|
If enabled, the default method is sifting.
|
|
.TP 10
|
|
.B \-first \fIn\fB
|
|
do first dynamic reordering when the BDDs reach \fIn\fR nodes.
|
|
The default value is 4004. (Don't ask why.)
|
|
.TP 10
|
|
.B \-countdead
|
|
include dead nodes in node count when deciding whether to reorder
|
|
dynamically. By default, only live nodes are counted.
|
|
.TP 10
|
|
.B \-growth \fIn\fB
|
|
maximum percentage by which the BDDs may grow while sifting one
|
|
variable. The default value is 20.
|
|
.TP 10
|
|
.B \-automethod \fImethod\fB
|
|
use \fImethod\fR for dynamic reordering of the BDDs. \fImethod\fR can
|
|
be one of none, random, pivot, sifting, converge, symm, cosymm, group,
|
|
cogroup, win2, win3, win4, win2conv, win3conv, win4conv, annealing,
|
|
genetic, linear, linconv, exact. The default method is sifting.
|
|
.TP 10
|
|
.B \-reordering \fImethod\fB
|
|
use \fImethod\fR for the final reordering of the BDDs. \fImethod\fR can
|
|
be one of none, random, pivot, sifting, converge, symm, cosymm, group,
|
|
cogroup, win2, win3, win4, win2conv, win3conv, win4conv, annealing,
|
|
genetic, linear, linconv, exact. The default method is none.
|
|
.TP 10
|
|
.B \-genetic
|
|
run the genetic algorithm after the final reordering (which in this case
|
|
is no longer final). This allows the genetic algorithm to have one good
|
|
solution generated by, say, sifting, in the initial population.
|
|
.TP 10
|
|
.B \-groupcheck \fImethod\fB
|
|
use \fImethod\fR for the the creation of groups in group sifting.
|
|
\fImethod\fR can be one of nocheck, check5, check7. Method check5 uses
|
|
extended symmetry as aggregation criterion; group7, in addition, also
|
|
uses the second difference criterion. The default value is check7.
|
|
.TP 10
|
|
.B \-arcviolation \fIn\fB
|
|
percentage of arcs that violate the symmetry condition in the aggregation
|
|
check of group sifting. Should be between 0 and 100. The default value is
|
|
10. A larger value causes more aggregation.
|
|
.TP 10
|
|
.B \-symmviolation \fIn\fB
|
|
percentage of nodes that violate the symmetry condition in the aggregation
|
|
check of group sifting. Should be between 0 and 100. The default value is
|
|
10. A larger value causes more aggregation.
|
|
.TP 10
|
|
.B \-recomb \fIn\fB
|
|
threshold used in the second difference criterion for aggregation. (Used
|
|
by check7.) The default value is 0. A larger value causes more
|
|
aggregation. It can be either positive or negative.
|
|
.TP 10
|
|
.B \-tree \fIfile\fB
|
|
read the variable group tree from \fIfile\fR. The format of this file is
|
|
a sequence of triplets: \fIlb ub flag\fR. Each triplet describes a
|
|
group: \fIlb\fR is the lowest index of the group; \fIub\fR is the
|
|
highest index of the group; \fIflag\fR can be either D (default) or F
|
|
(fixed). Fixed groups are not reordered.
|
|
.TP 10
|
|
.B \-genepop \fIn\fB
|
|
size of the population for genetic algorithm. By default, the size of
|
|
the population is 3 times the number of variables, with a maximum of 120.
|
|
.TP 10
|
|
.B \-genexover \fIn\fB
|
|
number of crossovers at each generation for the genetic algorithm. By
|
|
default, the number of crossovers is 3 times the number of variables,
|
|
with a maximum of 50.
|
|
.TP 10
|
|
.B \-seed \fIn\fB
|
|
random number generator seed for the genetic algorithm and the random
|
|
and pivot reordering methods.
|
|
.TP 10
|
|
.B \-progress
|
|
report progress when building the BDDs for a network. This option
|
|
causes the name of each primary output or next state function to be
|
|
printed after its BDD is built. It does not take effect if local BDDs
|
|
are requested.
|
|
.TP 10
|
|
.B -p \fIn\fB
|
|
verbosity level. If negative, the program is very quiet. Larger values cause
|
|
more information to be printed.
|
|
.SH SEE ALSO
|
|
The documentation for the CUDD package explains the various
|
|
reordering methods.
|
|
|
|
The documentation for the MTR package provides details on the variable
|
|
groups.
|
|
|
|
dot(1)
|
|
.SH REFERENCES
|
|
F. Somenzi,
|
|
"Efficient Manipulation of Decision Diagrams,"
|
|
Software Tools for Technology Transfer,
|
|
vol. 3, no. 2, pp. 171-181, 2001.
|
|
|
|
S. Panda, F. Somenzi, and B. F. Plessier,
|
|
"Symmetry Detection and Dynamic Variable Ordering of Decision Diagrams,"
|
|
IEEE International Conference on Computer-Aided Design,
|
|
pp. 628-631, November 1994.
|
|
|
|
S. Panda and F. Somenzi,
|
|
"Who Are the Variables in Your Neighborhood,"
|
|
IEEE International Conference on Computer-Aided Design,
|
|
pp. 74-77, November 1995.
|
|
|
|
G. D. Hachtel and F. Somenzi,
|
|
"A Symbolic Algorithm for Maximum Flow in 0-1 Networks,"
|
|
IEEE International Conference on Computer-Aided Design,
|
|
pp. 403-406, November 1993.
|
|
.SH AUTHOR
|
|
Fabio Somenzi, University of Colorado at Boulder.
|