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.
 |