1 | |
---|
2 | synthesize_network - Synthesizes a network using ZDD factorization method. |
---|
3 | _________________________________________________________________ |
---|
4 | |
---|
5 | synthesize_network [-d <divisor>] [-e] [-f <factoringMethod>] [-h] [-i |
---|
6 | <prefix>] [-o <fileHead>] [-r <reachMethod>] [-t <timeOut>] [-v] [-A] [-O |
---|
7 | <outputOrdering>] [-R <reorder>] [-T] |
---|
8 | |
---|
9 | This command synthesizes a network to have as few literals as possible and |
---|
10 | outputs a blif file and an equation file. Those files are the results of the |
---|
11 | synthesis. By default, the names of the files are model_name.ml.blif and |
---|
12 | model_name.eq unless users specify the model_name explicitly using -o |
---|
13 | option. But, when the output blif file is read in sis, it may have slightly |
---|
14 | different number of literals. This problem will be fixed in the later |
---|
15 | version. Currently, this command can be used only with CUDD package. Designs |
---|
16 | described in BLIF or BLIF-MV format can be synthesized by this command. |
---|
17 | However, multiple valued variables are not supported. Hence, signals in the |
---|
18 | designs described in BLIF-MV need to be restricted to binary values. There |
---|
19 | are 4 divisor functions to find a good divisor of a function. Neither of |
---|
20 | them consistently generates the best result. And, there are 2 factoring |
---|
21 | methods: simple factoring and generic factoring. Also, neither of two always |
---|
22 | does better than the other. |
---|
23 | |
---|
24 | Command options: |
---|
25 | |
---|
26 | -d <divisor> |
---|
27 | Choose a divisor. |
---|
28 | |
---|
29 | 0 : Fast divisor. We find a divisor on a ZDD graph. As soon as any |
---|
30 | shared node(variable) is found, the variable is returned as a |
---|
31 | divisor. |
---|
32 | |
---|
33 | 1 : (default) Least occuring literal divisor. If a variable occurs |
---|
34 | the least frequently(but, should be more than one) in cubes, it |
---|
35 | returns the variable as a divisor. |
---|
36 | |
---|
37 | 2 : Most occuring literal divisor. If a variable occurs the most |
---|
38 | frequently in cubes, it returns the variable as a divisor. |
---|
39 | |
---|
40 | 3 : Level-0 divisor. It finds a divisor that is a level-0 cokernel. |
---|
41 | |
---|
42 | -e |
---|
43 | Dump the synthesized circuit in equation format also. Default is not |
---|
44 | to. |
---|
45 | |
---|
46 | -f <factoringMethod> |
---|
47 | Choose a factoring method. |
---|
48 | |
---|
49 | 0 : (default) Simple factoring. This method uses a simple recursion. |
---|
50 | First, it finds a proper divisor of a function, then divide the |
---|
51 | function by the divisor, then it gets a quotient and a remainder. |
---|
52 | And, it does the same thing recursively for each divisor, quotient, |
---|
53 | and remainder. |
---|
54 | |
---|
55 | 1 : Generic factoring. This method is quite similar to the simple |
---|
56 | factoring, but it does more in terms of considering cube-free and |
---|
57 | common divisor and literal factoring. But, it does not always |
---|
58 | generate better results than the simple factoring does. |
---|
59 | |
---|
60 | -h |
---|
61 | Print the command usage. |
---|
62 | |
---|
63 | -i <prefix> |
---|
64 | Specify the prefix of internal node names. By default, the prefix is |
---|
65 | "_n". |
---|
66 | |
---|
67 | -o <fileHead> |
---|
68 | Specify the output file name (without extension). By default, the |
---|
69 | model name in a blif file is used. |
---|
70 | |
---|
71 | -r <reachMethod> |
---|
72 | If the network is sequential, then use unreachable states as dont |
---|
73 | cares in the optimization. By default no reachability analysis is |
---|
74 | performed. See -A option of command compute_reach for more details. |
---|
75 | The various options are: |
---|
76 | |
---|
77 | 0 : Do not use dont cares (default). |
---|
78 | |
---|
79 | 1 : Use normal breadth first search method for reachability analysis. |
---|
80 | |
---|
81 | 2 : Use high density traversal method for reachablity analysis. |
---|
82 | |
---|
83 | 3 : Use approximate unreachable states(a subset of actual unreachable |
---|
84 | states) as dont cares. |
---|
85 | |
---|
86 | -t <timeOut> |
---|
87 | Time in seconds allowed to perform synthesize_network. The default is |
---|
88 | no limit. |
---|
89 | |
---|
90 | -v |
---|
91 | Print debug information. |
---|
92 | |
---|
93 | -A |
---|
94 | Allow realignment to ZDD/BDD after BDD/ZDD reordering, respectively. |
---|
95 | This option is effective when only one reordering in BDD or ZDD is |
---|
96 | enabled. |
---|
97 | |
---|
98 | -O <outputOrdering> |
---|
99 | Choose an output ordering method. |
---|
100 | |
---|
101 | 0 : No ordering. |
---|
102 | |
---|
103 | 1 : (default) Use support variable set of output functions. |
---|
104 | |
---|
105 | 2 : Use BDD size of output functions. |
---|
106 | |
---|
107 | -R <reorder> |
---|
108 | Allow reordering in BDD and/or ZDD. |
---|
109 | |
---|
110 | 0 or n : (default) No reordering neither in BDD nor in ZDD. |
---|
111 | |
---|
112 | 1 or b : Allows reordering only in BDD, not in ZDD. |
---|
113 | |
---|
114 | 2 or z : Allows reordering only in ZDD, not in BDD. |
---|
115 | |
---|
116 | 3 or a : Allows reordering both in BDD and in ZDD. |
---|
117 | |
---|
118 | -T |
---|
119 | Try to share more nodes during symbolic factorization. Existing |
---|
120 | divisors are checked for potential reuse before extracting divisors |
---|
121 | from the current boolean function. |
---|
122 | ____________________________________________________ |
---|
123 | |
---|
124 | Last updated on 20100410 00h02 |
---|