15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

FIGURE 2.39 Reduce operation and reduced BDD.<br />

FIGURE 2.40 BDD size dependency on variable ordering for Out = AB + CD + EF.<br />

from the property of a BDD called canonicity [21]. Canonicity means that after reduce operation that<br />

removes isomorphic sub-graphs, as shown in Fig. 2.39(a–c), the final BDD is always identical for the<br />

same logic function and the same variable ordering, even if the initial BDDs are different. Here, variable<br />

ordering means the order of the input variables in the BDD construction. A BDD for which the redundant<br />

sub-graphs have been removed by the reduce operation is called a reduced BDD (RBDD) or reduced<br />

ordered BDD (ROBDD). In this chapter, a BDD is assumed to be a ROBDD, unless otherwise stated.<br />

Because of this canonicity property of BDDs, the synthesized PTL is independent of the input HDL<br />

quality and redundancy free. This is one of the most important advantages of PTL synthesized from a<br />

BDD, compared with CMOS logic synthesis, in which the result depends on the quality of the input HDL<br />

description. The canonicity of BDDs also plays an important role in other fields in logic synthesis such<br />

as formal verification of logic functions [21].<br />

Variable Ordering of BDDs<br />

As described in the previous section, the BDD has various superior characteristics for PTL synthesis.<br />

However, it has a drawback in that its size strongly depends on the input variable ordering. In PTL<br />

synthesis, the size of the BDD is directly reflected by the synthesized result. Therefore, finding the variable<br />

ordering that generates the minimum-size BDD is important. For example, Fig. 2.40 compares the BDDs<br />

for the logic function Out = AB + CD + EF for two different variable orders: (a) A → B → C → D →<br />

E → F, and (b) A → C → E → B → D → F. As shown in the figure, for case (a), the node count of the<br />

BDD is 6. On the other hand, 14 nodes are required for the same logic function in case (b). In general,<br />

an inefficient variable order can increase the size of a BDD by an order of magnitude.<br />

However, the problem of finding appropriate variable ordering for arbitrary logic functions is well<br />

known to be an NP-complete problem [23]. For a logic function with a small number of inputs, it is<br />

possible to examine all combinations of variable ordering with a practical time. However, such a method<br />

© 2002 by CRC Press LLC<br />

B<br />

C C<br />

Out<br />

A<br />

0 1 0 1<br />

isomorphic subgraph<br />

(a) Original<br />

E<br />

C<br />

F<br />

Out<br />

A<br />

D<br />

B<br />

1 0<br />

B<br />

reduce<br />

6 nodes<br />

Out<br />

Out<br />

A A<br />

elimination<br />

B B C<br />

C<br />

0 1<br />

(b) After reduction<br />

1 0 0 1 1 0<br />

(a) A→B→C→D→E→F (b) A→C→E→B→D→F<br />

C<br />

E E<br />

Out<br />

A<br />

C<br />

E E<br />

B B B B<br />

0 1 0<br />

1<br />

D<br />

F<br />

D<br />

B<br />

(c) Reduced BDD<br />

14 nodes

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!