[14] | 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 |
---|