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.

Slides:



Advertisements
Similar presentations
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Factored Forms.
Advertisements

ENGG3190 Logic Synthesis “Multi Level Logic” (Part II) Winter 2014 S. Areibi School of Engineering University of Guelph.
ECE Synthesis & Verification - L271 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Model Checking basics.
ECE Synthesis & Verification 1 ECE 667 Synthesis and Verification of Digital Systems Formal Verification Combinational Equivalence Checking.
ECE 667 Synthesis & Verification - Algebraic Division 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Multi-level Minimization Algebraic.
ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.
ECE 667 Synthesis and Verification of Digital Systems
ECE 331 – Digital System Design Boolean Algebra (Lecture #3) The slides included herein were taken from the materials accompanying Fundamentals of Logic.
ECE 301 – Digital Electronics Minterm and Maxterm Expansions and Incompletely Specified Functions (Lecture #6) The slides included herein were taken from.
ECE 331 – Digital System Design
ECE Synthesis & Verification - Lecture 8 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Circuits Introduction.
1 Outline Division is central in many operations. –What is it (in the context of Boolean functions)? –What to divide (divisor) with? –How to divide (quotient.
Logic Synthesis Part II
Reducing Multi-Valued Algebraic Operations to Binary J.-H. Roland Jiang Alan Mishchenko Robert K. Brayton Dept. of EECS University of California, Berkeley.
1 Generalized Buffering of PTL Logic Stages using Boolean Division and Don’t Cares Rajesh Garg Sunil P. Khatri Department of Electrical and Computer Engineering,
ECE Synthesis & Verification - Lecture 18 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Word-level.
Synthesis For Mixed CMOS/PTL Logic
Boolean Functions and their Representations
1 BDS: A BDD-Based Logic Optimization System “BDS: A BDD-Based Logic Optimization System”, by Congguang Yang and Maciej Ciesielski, 2000 By Chang Seok.
Rolf Drechlser’s slides used
ECE Synthesis & Verification - Lecture 19 1 ECE 667 Spring 2009 ECE 667 Spring 2009 Synthesis and Verification of Digital Systems Functional Decomposition.
Lecture 5 Multilevel Logic Synthesis
ECE Synthesis & Verification - L211 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Verification Equivalence checking.
ECE Synthesis & Verification - Lecture 9b 1 ECE 697B (667) Fall 2004 ECE 697B (667) Fall 2004 Synthesis and Verification of Digital Systems Boolean.
Taylor Expansion Diagrams (TED): Verification EC667: Synthesis and Verification of Digital Systems Spring 2011 Presented by: Sudhan.
1 Synthesis For CMOS/PTL Circuits Congguang Yang Maciej Ciesielski Dept. of Electrical & Computer Engineering University of Massachusetts, Amherst Sponsored.
ECE Synthesis & Verification - Lecture 10 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Binary.
 2001 CiesielskiBDD Tutorial1 Decision Diagrams Maciej Ciesielski Electrical & Computer Engineering University of Massachusetts, Amherst, USA
Logic Synthesis 3 1 Logic Synthesis Part III Maciej Ciesielski Univ. of Massachusetts Amherst, MA.
ECE 667 Synthesis & Verification - Multi-level Optimization 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Multi-level Minimization (Kernel-based)
ECE 667 Synthesis & Verification - BDD 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Binary Decision Diagrams (BDD)
 2000 M. CiesielskiPTL Synthesis1 Synthesis for Pass Transistor Logic Maciej Ciesielski Dept. of Electrical & Computer Engineering University of Massachusetts,
ECE 667 Synthesis and Verification of Digital Systems
ECE Synthesis & Verification, Lecture 17 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Technology.
Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)
ECE 667 Synthesis and Verification of Digital Systems
ECE Synthesis & Verification - Lecture 8 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Multi-level.
Lecture 4 4. Boolean functions – advanced
ECE 331 – Digital System Design
Electrical and Computer Engineering Archana Rengaraj ABC Logic Synthesis basics ECE 667 Synthesis and Verification of Digital Systems Spring 2011.
Computer Architecture I: Digital Design Dr. Robert D. Kent Logic Design Medium Scale Integration and Programmable Logic Devices Part I.
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect19: Multi Level Logic Minimization.
ECE 331 – Digital System Design
Combinational Problems: Unate Covering, Binate Covering, Graph Coloring and Maximum Cliques Example of application: Decomposition.
Two Level and Multi level Minimization
Multi-Level Logic Optimization. Multi-Level Logic Synthesis Two Level Logic : –Espresso –Programmable Logic Array (PLA) Multilevel Logic : –Standard Cell.
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
Binary-Decision-Diagram (BDD) Application on Pass-Transistor Logic Design Tao Lin School of EECS, Ohio University March 12, 1998.
Mihir Choudhury, Kartik Mohanram (ICCAD’10 best paper nominee) Presentor: ABert Liu.
Binary decision diagrams (BDD’s) Compact representation of a logic function ROBDD’s (reduced ordered BDD’s) are a canonical representation: equivalence.
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
Ruei-Rung, Lee 1. Outline Introduction Background General Non-disjoint Decompositions Rewriting K-LUT Networks Conclusions and Future Work 2.
BDS – A BDD Based Logic Optimization System Presented by Nitin Prakash (ECE 667, Spring 2011)
Divisibility and Modular Arithmetic
Binary Decision Diagrams Prof. Shobha Vasudevan ECE, UIUC ECE 462.
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect18: Multi Level Logic Minimization.
Logic Synthesis Boolean Division.
ECE/CS 352 Digital Systems Fundamentals
Reading: Hambley Chapters
A. Mishchenko S. Chatterjee1 R. Brayton UC Berkeley and Intel1
Reconfigurable Computing
Example of application: Decomposition
ECE 667 Synthesis and Verification of Digital Systems
ECE 667 Synthesis and Verification of Digital Circuits
EECS150 - Digital Design Lecture 7 - Boolean Algebra II
Binary Decision Diagrams
VLSI CAD Flow: Logic Synthesis, Placement and Routing Lecture 5
design entry (schematic capture, VHDL, truth table and etc.)
Canonical Computation without Canonical Data Structure
Alan Mishchenko Department of EECS UC Berkeley
Presentation transcript:

ECE 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

ECE 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

ECE 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.

ECE 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

ECE 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)

ECE 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

ECE 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

ECE 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.

ECE 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.

ECE Synthesis & Verification - Lecture 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’.

ECE Synthesis & Verification - Lecture 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’)

ECE Synthesis & Verification - Lecture 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

ECE Synthesis & Verification - Lecture 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.

ECE Synthesis & Verification - Lecture 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’

ECE Synthesis & Verification - Lecture 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 Q

ECE Synthesis & Verification - Lecture 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.

ECE Synthesis & Verification - Lecture 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

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

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

ECE Synthesis & Verification - Lecture Boolean Division Based on Generalized Dominator a f b b cc 0 0 D g d e a f b b cc F 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

ECE Synthesis & Verification - Lecture 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)

ECE Synthesis & Verification - Lecture 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

ECE Synthesis & Verification - Lecture 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

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

ECE Synthesis & Verification - Lecture 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

ECE Synthesis & Verification - Lecture 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

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

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

ECE Synthesis & Verification - Lecture Factoring Tree Processing:

ECE Synthesis & Verification - Lecture A Complete Synthesis Example

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

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

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

ECE Synthesis & Verification - Lecture 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)