Download presentation
Presentation is loading. Please wait.
Published byJoel Charles Modified over 9 years ago
1
Binary decision diagrams (BDD’s) Compact representation of a logic function ROBDD’s (reduced ordered BDD’s) are a canonical representation: equivalence of ROBDD’s implies that the functions are identical Example: f = abc + b’d + c’d –T = then edge, E = else edge –Same variable ordering on each path: a b c d (Ordered BDD) Material taken mostly from G. Hachtel and F. Somenzi, “Logic Synthesis and Verification Algorithms,” Kluwer Academic Publishers, Boston, MA, 1996. a bb cc d 10 T T T T T T E EE E EE
2
Effect of variable ordering Size of diagram varies with variable ordering a d b cb c a d b c a d 10 T T T E E E E a d cc 10 T T T T T E E E E E TT d bb EE T
3
Relation to the Shannon expansion Each node is basically a Shannon expansion –f = a f a + a’ f a’ a bb cc d 10 T T T T T T E EE E EE f f a’ fafa
4
Building a BDD from a Shannon expansion b TE f b = ac + c’d f = abc + b’d + c’d f b’ = d c f bc’ = d f bc = a T E (… and so on …)
5
BDD as a compact truth table Truth table: complete ordered binary tree Reduce this by combining isomorphic parts and removing redundant nodes (T,E point to same node) to get ROBDD b cc dddd aa 1 0 1 0 1 0 1 0 1 0 TE EE EE EE EE T T TT TTT T c c T E E ET T b d 1 0 E a E T d E TT isomorphic T T redundant BDD shown earlier for the ordering b c a d
6
Multioutput BDD’s (Notation: solid line = Then edge; dashed line = Else edge) Example: F 1 = b+c, F 2 = a+ b+c b c 10 F1F1 b c 10 a F2F2 b c 10 a F2F2 F1F1 Separate BDD’s Combined Multioutput BDD
7
Compactness of BDD’s BDD’s are successful at compactly representing many common functions –XOR is an example of a function with a large SOP/POS representation, but a very compact BDD Worst case: O(2 n ) nodes –Functions that require this many nodes do exist Can use multilevel techniques to represent BDD’s more compactly (“partitioned ROBDD’s”)
8
Operations on BDD’s Given BDD’s for functions f and g, can use Shannon expansion to see how operations are performed –Assume variables v 1, v 2 … v n –f g = v 1 (f g) v1 + v 1 ’ (f g) v1’ = v 1 (f v1 g v1 ) + v 1 ’ (f v1’ g v1’ ) –Can now do this recursively –Pictorially: –Identify identical subtrees as we come up the recursion tree using a hashing function v1v1 (BDD for f v1 g v1 )(BDD for f v1’ g v1’ ) ET
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.