1NANOTRAV(1)                 General Commands Manual                NANOTRAV(1)
2
3
4

NAME

6       nanotrav - a simple state graph traversal program
7

SYNOPSIS

9       nanotrav [option ...]
10

DESCRIPTION

12       nanotrav  builds  the  BDDs of a circuit and applies various reordering
13       methods to the BDDs. It then traverses the state  transition  graph  of
14       the  circuit if the circuit is sequential, and if the user so requires.
15       nanotrav is based on the CUDD package. The ordering of the variables is
16       affected by three sets of options: the options that specify the initial
17       order (-order -ordering); the options that specify the reordering while
18       the  BDDs  are  being  built (-autodyn -automethod); and the options to
19       specify the final reordering (-reordering -genetic). Notice  that  both
20       -autodyn  and  -automethod must be specified to get dynamic reordering.
21       The first enables reordering, while the second says what method to use.
22

OPTIONS

24       file      read input in blif format from file.
25
26       -f file   read options from file.
27
28       -trav     traverse the state transition graph after building the  BDDs.
29                 This option has effect only if the circuit is sequential. The
30                 initial states for traversal are taken from the blif file.
31
32       -depend   perform dependent variable analysis after traversal.
33
34       -from method
35                 use method to choose the frontier states for  image  computa‐
36                 tion  during  traversal.  Allowed methods are: new (default),
37                 reached, restrict, compact, squeeze, subset, superset.
38
39       -groupnsps method
40                 use method to group the corresponding current and next  state
41                 variables.  Allowed  methods  are:  none  (default), default,
42                 fixed.
43
44       -image method
45                 use method for image computation  during  traversal.  Allowed
46                 methods are: mono (default), part, depend, and clip.
47
48       -depth n  use  n to derive the clipping depth for image computation. It
49                 should be a number between 0 and 1. The default  value  is  1
50                 (no clipping).
51
52       -verify file
53                 perform  combinational  verification checking for equivalence
54                 to the network in file. The two networks being compared  must
55                 use  the same names for inputs, outputs, and present and next
56                 state  variables.   The  method  used  for  verification   is
57                 extremely  simplistic. BDDs are built for all outputs of both
58                 networks, and are then compared.
59
60       -closure  perform reachability analysis using the transitive closure of
61                 the transition relation.
62
63       -cdepth n use  n  to  derive  the clipping depth for transitive closure
64                 computation. It should be a  number  between  0  and  1.  The
65                 default value is 1 (no clipping).
66
67       -envelope compute  the  greatest  fixed  point  of the state transition
68                 relation. (This greatest fixed point is also called the outer
69                 envelope of the graph.)
70
71       -scc      compute  the strongly connected components of the state tran‐
72                 sition graph. The algorithm enumerates the SCCs; therefore it
73                 stops after a small number of them has been computed.
74
75       -maxflow  compute  the maximum flow in the network defined by the state
76                 graph.
77
78       -sink file
79                 read the sink for maximum flow  computation  from  file.  The
80                 source is given by the initial states.
81
82       -shortpaths method
83                 compute  the  distances between states.  Allowed methods are:
84                 none (default), bellman, floyd, and square.
85
86       -selective
87                 use selective tracing variant of the square method for short‐
88                 est paths.
89
90       -part     compute the conjunctive decomposition of the transition rela‐
91                 tion.  The network must be sequential for the  test  to  take
92                 place.
93
94       -sign     compute  signatures.  For  each  output  of  the circuit, all
95                 inputs are assigned a signature. The signature is  the  frac‐
96                 tion  of  minterms  in the ON-set of the positive cofactor of
97                 the output with respect to the input. Signatures  are  useful
98                 in identifying the equivalence of circuits with unknown input
99                 or output correspondence.
100
101       -zdd      perform a simple test of ZDD functions. This test is not exe‐
102                 cuted  if  -delta is also specified, because it uses the BDDs
103                 of the primary outputs of the circuit. These are converted to
104                 ZDDs and the ZDDs are then converted back to BDDs and checked
105                 against the original ones.  A few more  functions  are  exer‐
106                 cised  and reordering is applied if it is enabled. Then irre‐
107                 dundant sums of products are produced for  the  primary  out‐
108                 puts.
109
110       -cover    print  irredundant  sums of products for the primary outputs.
111                 This option implies -zdd.
112
113       -second file
114                 read a second network from file. Currently, if this option is
115                 specified, a test of BDD minimization algorithms is performed
116                 using the largest output of the second network as constraint.
117                 Inputs of the two networks with the same names are merged.
118
119       -density  test BDD approximation functions.
120
121       -approx method
122                 if  method is under (default) perform underapproximation when
123                 BDDs are approximated. If method is over perform overapproxi‐
124                 mation when BDDs are approximated.
125
126       -threshold n
127                 Use n as threshold when approximating BDDs.
128
129       -quality n
130                 Use  n  (a  floating  point  number)  as  quality factor when
131                 approximating BDDs. Default value is 1.
132
133       -decomp   test BDD decomposition functions.
134
135       -cofest   test cofactor estimation functions.
136
137       -clip n file
138                 test clipping functions using n  to  determine  the  clipping
139                 depth and taking one operand from the network in file.
140
141       -dctest file
142                 test  functions for equality and containment under don't care
143                 conditions taking the don't care conditions from file.
144
145       -closest  test function that finds a cube in a BDD at  minimum  Hamming
146                 distance from another BDD.
147
148       -clauses  test function that extracts two-literal clauses from a DD.
149
150       -char2vect
151                 perform  a  simple test of the conversion from characteristic
152                 function to functional vector.  If the network is sequential,
153                 the  test  is  applied to the monolithic transition relation;
154                 otherwise to the primary outputs.
155
156       -local    build local BDDs for each gate of the circuit.   This  option
157                 is not in effect if traversal, outer envelope computation, or
158                 maximum flow computation are requested.  The local BDD  of  a
159                 gate is in terms of its local inputs.
160
161       -cache n  set the initial size of the computed table to n.
162
163       -slots n  set the initial size of each unique subtable to n.
164
165       -maxmem n set  the  target  maximum memory occupation to n MB.  If this
166                 parameter is not specified or if n  is  0,  then  a  suitable
167                 value is computed automatically.
168
169       -memhard n
170                 set  the  hard  limit  to memory occupation to n MB.  If this
171                 parameter is not specified or if n is 0,  no  hard  limit  is
172                 enforced by the program.
173
174       -maxlive n
175                 set  the hard limit to the number of live BDD nodes to n.  If
176                 this parameter is not specified, the limit  is  four  billion
177                 nodes.
178
179       -dumpfile file
180                 dump  BDDs  to  file. The BDDs are dumped just before program
181                 termination. (Hence, after reordering, if reordering is spec‐
182                 ified.)
183
184       -dumpblif use  blif format for dump of BDDs (default is dot format). If
185                 blif is used, the BDDs are dumped as a network of  multiplex‐
186                 ers. The dot format is suitable for input to the dot program,
187                 which produces a drawing of the BDDs.
188
189       -dumpmv   use blif-MV format for dump of BDDs.  The BDDs are dumped  as
190                 a network of multiplexers.
191
192       -dumpdaVinci
193                 use daVinci format for dump of BDDs.
194
195       -dumpddcal
196                 use  DDcal  format for dump of BDDs.  This option may produce
197                 an invalid output if the variable and  output  names  of  the
198                 BDDs being dumped do not comply with the restrictions imposed
199                 by the DDcal format.
200
201       -dumpfact use factored form format for dump of BDDs. This  option  must
202                 be  used  with caution because the size of the output is pro‐
203                 portional to the number of paths in the BDD.
204
205       -storefile file
206                 Save the BDD of the reachable states  to  file.  The  BDD  is
207                 stored at the iteration specified by -store. This option uses
208                 the format of the dddmp library. Together with -loadfile,  it
209                 implements a primitive checkpointing capability. It is primi‐
210                 tive because the transition relation is  not  saved;  because
211                 the frontier states are not saved; and because only one check
212                 point can be specified.
213
214       -store n  Save the BDD of the  reached  states  at  iteration  n.  This
215                 option requires -storefile.
216
217       -loadfile file
218                 Load  the  BDD  of the initial states from file.  This option
219                 uses the format of the dddmp library. Together  with  -store‐
220                 file, it implements a primitive checkpointing capability.
221
222       -nobuild  do  not  build  the  BDDs. Quit after determining the initial
223                 variable order.
224
225       -drop     drop BDDs for intermediate nodes as soon as possible. If this
226                 option  is not specified, the BDDs for the intermediate nodes
227                 of the circuit are dropped just before the final reordering.
228
229       -delta    build BDDs only for the next state functions of a  sequential
230                 circuit.
231
232       -node     build BDD only for node.
233
234       -order file
235                 read the variable order from file. This file must contain the
236                 names of the inputs (and  present  state  variables)  in  the
237                 desired  order.   Names  must  be separated by white space or
238                 newlines.
239
240       -ordering method
241                 use method to derive an initial variable order. method can be
242                 one  of hw, dfs. Method hw uses the order in which the inputs
243                 are listed in the circuit description.
244
245       -autodyn  enable dynamic reordering. By default, dynamic reordering  is
246                 disabled.  If enabled, the default method is sifting.
247
248       -first n  do first dynamic reordering when the BDDs reach n nodes.  The
249                 default value is 4004. (Don't ask why.)
250
251       -countdead
252                 include dead nodes in node count  when  deciding  whether  to
253                 reorder dynamically. By default, only live nodes are counted.
254
255       -growth n maximum  percentage  by which the BDDs may grow while sifting
256                 one variable. The default value is 20.
257
258       -automethod method
259                 use method for dynamic reordering of the BDDs. method can  be
260                 one  of none, random, pivot, sifting, converge, symm, cosymm,
261                 group,  cogroup,  win2,  win3,  win4,   win2conv,   win3conv,
262                 win4conv,  annealing,  genetic,  exact. The default method is
263                 sifting.
264
265       -reordering method
266                 use method for the final reordering of the BDDs.  method  can
267                 be  one  of  none,  random,  pivot,  sifting, converge, symm,
268                 cosymm, group, cogroup, win2, win3, win4, win2conv, win3conv,
269                 win4conv,  annealing,  genetic,  exact. The default method is
270                 none.
271
272       -genetic  run the genetic algorithm after the final  reordering  (which
273                 in  this  case  is  no longer final). This allows the genetic
274                 algorithm to have one good solution generated by, say,  sift‐
275                 ing, in the initial population.
276
277       -groupcheck method
278                 use  method  for the the creation of groups in group sifting.
279                 method can be one of nocheck, check5, check7.  Method  check5
280                 uses  extended  symmetry as aggregation criterion; group7, in
281                 addition, also uses  the  second  difference  criterion.  The
282                 default value is check7.
283
284       -arcviolation n
285                 percentage of arcs that violate the symmetry condition in the
286                 aggregation check of group sifting. Should be between  0  and
287                 100.  The  default  value  is  10. A larger value causes more
288                 aggregation.
289
290       -symmviolation n
291                 percentage of nodes that violate the  symmetry  condition  in
292                 the  aggregation  check of group sifting. Should be between 0
293                 and 100. The default value is 10. A larger value causes  more
294                 aggregation.
295
296       -recomb n threshold  used in the second difference criterion for aggre‐
297                 gation. (Used by check7.) The default value is  0.  A  larger
298                 value  causes  more aggregation. It can be either positive or
299                 negative.
300
301       -tree file
302                 read the variable group tree from file. The  format  of  this
303                 file  is  a  sequence  of  triplets: lb ub flag. Each triplet
304                 describes a group: lb is the lowest index of the group; ub is
305                 the  highest  index  of  the  group;  flag  can  be  either D
306                 (default) or F (fixed). Fixed groups are not reordered.
307
308       -genepop n
309                 size of the population for genetic algorithm. By default, the
310                 size  of  the  population is 3 times the number of variables,
311                 with a maximum of 120.
312
313       -genexover n
314                 number of crossovers at each generation for the genetic algo‐
315                 rithm.  By  default,  the number of crossovers is 3 times the
316                 number of variables, with a maximum of 50.
317
318       -seed n   random number generator seed for the  genetic  algorithm  and
319                 the random and pivot reordering methods.
320
321       -progress report  progress  when  building the BDDs for a network. This
322                 option causes the name of each primary output or  next  state
323                 function  to  be  printed after its BDD is built. It does not
324                 take effect if local BDDs are requested.
325
326       -p n      verbosity level. If negative,  the  program  is  very  quiet.
327                 Larger values cause more information to be printed.
328

SEE ALSO

330       The  documentation for the CUDD package explains the various reordering
331       methods.
332
333       The documentation for the MTR package provides details on the  variable
334       groups.
335
336       dot(1)
337

REFERENCES

339       F.  Somenzi,  "Efficient  Manipulation  of Decision Diagrams," Software
340       Tools for Technology Transfer, vol. 3, no. 2, pp. 171-181, 2001.
341
342       S. Panda, F. Somenzi, and  B.  F.  Plessier,  "Symmetry  Detection  and
343       Dynamic  Variable  Ordering  of  Decision Diagrams," IEEE International
344       Conference on Computer-Aided Design, pp. 628-631, November 1994.
345
346       S. Panda and F. Somenzi, "Who Are the Variables in Your  Neighborhood,"
347       IEEE  International Conference on Computer-Aided Design, pp. 74-77, No‐
348       vember 1995.
349
350       G. D. Hachtel and F. Somenzi, "A Symbolic Algorithm for Maximum Flow in
351       0-1  Networks," IEEE International Conference on Computer-Aided Design,
352       pp. 403-406, November 1993.
353

AUTHOR

355       Fabio Somenzi, University of Colorado at Boulder.
356
357
358
359Release 0.11                     18 June 2002                      NANOTRAV(1)
Impressum