Presentation is loading. Please wait.

Presentation is loading. Please wait.

ECE 667 - Synthesis & Verification - Lecture 14 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems BDD-based.

Similar presentations


Presentation on theme: "ECE 667 - Synthesis & Verification - Lecture 14 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems BDD-based."— Presentation transcript:

1 ECE 667 - Synthesis & Verification - Lecture 14 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems BDD-based Bi-decomposition BDS system

2 ECE 667 - Synthesis & Verification - Lecture 14 2 Outline Review of current decomposition methods – –Algebraic – –Boolean Theory of BDD decomposition [C. Yang 1999] – –Bi-decomposition F = D  Q – –Boolean AND/OR Decomposition – –Boolean XOR Decomposition – –MUX Decomposition Logic optimization based on BDD decomposition

3 ECE 667 - Synthesis & Verification - Lecture 14 3 Functional Decomposition – previous work Ashenhurst [1959], Curtis [1962] – –Tabular method based on cut: bound/free variables – –BDD implementation: Lai et al. [1993, 1996], Chang et al. [1996] Stanion et al. [1995] Roth, Karp [1962] – –Similar to Ashenhurst, but using cubes, covers – –Also used by SIS Factorization based – –SIS, algebraic factorization using cube notation – –Bertacco et al. [1997], BDD-based recursive bidecomp.

4 ECE 667 - Synthesis & Verification - Lecture 14 4 Drawbacks of Traditional Synthesis Methods Weak Boolean factorization capability. Difficult to identify XOR and MUX decomposition. Separate platforms for Boolean operations and factorization. Our goal: use a common platform to carry out both Boolean operations and factorization: BDD’s

5 ECE 667 - Synthesis & Verification - Lecture 14 5 What is wrong with Algebraic Division? Divisor and quotient are orthogonal!! Better factored form might be: (q 1 + q 2 + …+q n ) (d 1 +d 2 +…+d m ) – –g i and d j may share same or opposite literals Example: SOP form: F = abg + acg + adf + aef + afg + bd + ce + be + cd. (23 lits) Algebraic: F = (b + c)(d + e + ag) + (d + e +g)af. (11 lits) Boolean: F = (af + b + c)(ag + d + e). (8 lits)

6 ECE 667 - Synthesis & Verification - Lecture 14 6 First work, Karplus [1988]: 1-dominator d 10 c a b 10 * a + bc + d Definition: 1-dominator is a node that belongs to every path from root to terminal 1. 1-dominator defines algebraic conjunctive (AND) decomposition: F = (a+b)(c+d). F a b c d 10 1-dominator

7 ECE 667 - Synthesis & Verification - Lecture 14 7 Karplus: 0-dominator a b 0 1 d 10 c a bc d Definition: 0-dominator is a node that belongs to every path from root to terminal 0. 0-dominator defines algebraic disjunctive (OR) decomposition: F = ab + cd. a b c d 10 F 0-dominator

8 ECE 667 - Synthesis & Verification - Lecture 14 8 Bi-decomposition based on Dominators We can generalize the concept of algebraic decomposition and dominators to: Generalized dominators Boolean bi-decompositions (AND, OR, XOR) Bi-decomposition: F = D  Q First, let’s review fundamental theorems for Boolean division and factoring.

9 ECE 667 - Synthesis & Verification - Lecture 14 9 Boolean Division Definitions G is a Boolean divisor of F if there exist H and R such that F = G H + R, and G H  0. G is said to be a factor of F if, in addition, R=0, that is: F = G H. where H is the quotient, R is the remainder. Note: H and R may not be unique.

10 ECE 667 - Synthesis & Verification - Lecture 14 10 Boolean Factor - Theorem Theorem: Boolean function G is a Boolean factor of Boolean function F iff F  G, (i.e. FG’ = 0, or G’  F’). F G Proof:  : G is a Boolean factor of F. Then  H s.t. F = GH; Hence, F  G (as well as F  H).  : F  G  F = GF = G(F + R) = GH. (Here R is any function R  G’.) Notes: - Given F and G, H is not unique. - To get a small H is the same as getting a small F + R. Since RG = 0, this is the same as minimizing (simplifying) f with DC = G’.

11 ECE 667 - Synthesis & Verification - Lecture 14 11 Boolean Division - Theorem Theorem: G is a Boolean divisor of F if and only if F G  0. GF Proof:  : F = GH + R, GH  0  FG = GH + GR. Since GH  0, FG  0.  : Assume that FG  0. F = FG + FG’ = G(F + K) + FG’. (Here K  G’.) Then F = GH + R, with H = F + K, R = FG’. Since GH = FG  0, then GH  0. Note: f has many divisors. We are looking for a g such that f = gh + r, where g, h, r are simple functions. (simplify f with DC = g’)

12 ECE 667 - Synthesis & Verification - Lecture 14 12 Boolean Division Goal : for a given F, find D and Q such that F = Q · D. Boolean Space F F D F Q F = e + bd, D = e + d, Q = e + b

13 ECE 667 - Synthesis & Verification - Lecture 14 13 Conjunctive (AND) Decomposition Conjunctive (AND) decomposition: F = D Q. Theorem: Boolean function F has conjunctive decomposition iff F  D. For a given choice of D, the quotient Q must satisfy: F  Q  F + D’. DQ F For a given pair (F,D), this provides a recipe for Q.

14 ECE 667 - Synthesis & Verification - Lecture 14 14 Boolean Division AND decomposition Boolean Division  AND decomposition F F D F Q F = e + bd, Q = e + b  F + D’ Boolean Space D = e + d, Given function F and divisor D  F, find Q such that: F  Q  F + D’. D’

15 ECE 667 - Synthesis & Verification - Lecture 14 15 AND Decomposition ( Example AND Decomposition ( F = D Q): Example Recall: given (F,D), quotient Q must satisfy: F  Q  F + D’. d e b 01 F = e + bd e b 01 1 D e b 0 1 D = e + b, d e b 01 DC Q d e 01 Q = e + d DC eb d 00 01 11 10 0101 11 111 Q

16 ECE 667 - Synthesis & Verification - Lecture 14 16 Disjunctive (OR) Decomposition Disjunctive (OR) decomposition: F = G + H. Theorem: Boolean function F has disjunctive decomposition iff F  G. For a given choice of G, the term H must satisfy: F’  H’  F’ + G. For a given (F,G), this provides a recipe for H. GH F Dual to conjunctive decomposition.

17 ECE 667 - Synthesis & Verification - Lecture 14 17 Boolean AND/OR Bi-decompositions Conjunctive (AND) decomposition If D  F, F = F D = Q D. Disjunctive (OR) decompositionDisjunctive (OR) decomposition If If G  F, F = F + G = H + G. D, G = generalized dominators

18 ECE 667 - Synthesis & Verification - Lecture 14 18 Generalized Dominator D a f b b cc 0 0 D g d e a f b b cc F 1 0 0 1 Boolean divisor F = D Q

19 ECE 667 - Synthesis & Verification - Lecture 14 19 Generalized Dominator G a f b b cc 0 0 G g d e a f b b cc F 1 0 0 0 Boolean “subtractor” F = G + H

20 ECE 667 - Synthesis & Verification - Lecture 14 20 Boolean Division Based on Generalized Dominator a f b b cc 0 0 D g d e a f b b cc F 1 0 0 g d e a f b b cc Q 1 DC 0 minimize g d e a Q 1 0 Q = ag + d + e 1 reduce a f b c 0 D D = af + b + c 1

21 ECE 667 - Synthesis & Verification - Lecture 14 21 Special Case: 1-dominator a b 10 a + b d 10 c * c + d F a b c d 10 1-dominator F = (a+b)(c+d)

22 ECE 667 - Synthesis & Verification - Lecture 14 22 Special Case: 0-dominators a b 0 1 d 10 c a bc d a b c d 10 F 0-dominator F = ab + cd

23 ECE 667 - Synthesis & Verification - Lecture 14 23 Algebraic XOR Decomposition h F f h F f’f + = h f 0 hf h f’ 0 h’f’ = complement edge = 1-edge edge = 0-edge edge

24 ECE 667 - Synthesis & Verification - Lecture 14 24 Algebraic XOR Decomposition: x-dominators F 1 a d b c x-dominator a+b 1 a b c+d 1 d c

25 ECE 667 - Synthesis & Verification - Lecture 14 25 Boolean XOR Decomposition: Generalized x-dominators Given F and G, there exists H : F = G  H; H = F  G. F 1 a d b c c Generalized x-dominator c d 1 G 1 H a d b c

26 ECE 667 - Synthesis & Verification - Lecture 14 26 MUX Decomposition f g F v 0 1 f g F v f g h F 0 1 f g h F Simple MUX decomposition Complex MUX decomposition

27 ECE 667 - Synthesis & Verification - Lecture 14 27 Functional MUX Decomposition - example F h f g F h f g 01 1 01 b a 0 F d c F 1 d b a c 0

28 ECE 667 - Synthesis & Verification - Lecture 14 28 Synthesis Flow Boolean Network Construct Global BDDs Variable Reorder Decompose BDD Factoring Tree Processing Technology Mapping Construct Factoring Trees

29 ECE 667 - Synthesis & Verification - Lecture 14 29 Factoring Tree Processing:

30 ECE 667 - Synthesis & Verification - Lecture 14 30 A Complete Synthesis Example

31 ECE 667 - Synthesis & Verification - Lecture 14 31 A Complete Synthesis Example (Decompose function g)

32 ECE 667 - Synthesis & Verification - Lecture 14 32 A Complete Synthesis Example (Decompose function h)

33 ECE 667 - Synthesis & Verification - Lecture 14 33 A Complete Synthesis Example (Sharing Extraction)

34 ECE 667 - Synthesis & Verification - Lecture 14 34 Conclusions BDD-based bi-decomposition is a good alternative to traditional, algebraic logic optimization – –Produces Boolean decomposition – –Several types: AND, OR, XOR, MUX BDD decomposition-based logic optimization is fast. Stand-alone BDD decomposition scheme is not amenable to large circuits – –Global BDD too large – –Must partition into network of BDDs (local BDDs)


Download ppt "ECE 667 - Synthesis & Verification - Lecture 14 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems BDD-based."

Similar presentations


Ads by Google