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