Binary Decision Diagrams Prof. Shobha Vasudevan ECE, UIUC ECE 462.

Slides:



Advertisements
Similar presentations
Model Checking Lecture 4. Outline 1 Specifications: logic vs. automata, linear vs. branching, safety vs. liveness 2 Graph algorithms for model checking.
Advertisements

Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
Appendix: Other ATPG algorithms 1. TOPS – Dominators Kirkland and Mercer (1987) n Dominator of g – all paths from g to PO must pass through the dominator.
BDDs & Theorem Proving Binary Decision Diagrams Dr. Eng. Amr T. Abdel-Hamid NETW 703 Winter 2012 Network Protocols Lectures are based on slides by: K.
CS357 Lecture: BDD basics David Dill 1. 2 BDDs (Boolean/binary decision diagrams) BDDs are a very successful representation for Boolean functions. A BDD.
IT University of Copenhagen Lecture 7: BDD Construction and Manipulation 1. BDD construction 2. Boolean operations on BDDs 3. BDD-Based configuration.
1 Don´t Care Minimization of *BMDs: Complexity and Algorithms Christoph Scholl Marc Herbstritt Bernd Becker Institute of Computer Science Albert-Ludwigs-University.
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.
Binary Decision Diagrams. ROBDDs Slide 2 Example Directed acyclic graph non-terminal node terminal node What function is represented by the graph?
ECE 667 Synthesis and Verification of Digital Systems
ECE 331 – Digital System Design
1 ROBDD’s represents a logic function by a graph (DAG). (many logic functions can be represented compactly - usually better than SOP’s)represents a logic.
Spring 07, Feb 13 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Binary Decision Diagrams Vishwani D. Agrawal James.
DATE-2002TED1 Taylor Expansion Diagrams: A Compact Canonical Representation for Symbolic Verification M. Ciesielski, P. Kalla, Z. Zeng B. Rouzeyre Electrical.
Equivalence Checking Using Cuts and Heaps Andreas Kuehlmann Florian Krohm IBM Thomas J. Watson Research Center Presented by: Zhenghua Qi.
Asynchronous Sequential Logic
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 11alt1 Lecture 11alt Advances in Combinational ATPG Algorithms  Branch and Bound Search  FAN – Multiple.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
ECE Synthesis & Verification - Lecture 18 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Word-level.
Boolean Functions and their Representations
A New Approach to Structural Analysis and Transformation of Networks Alan Mishchenko November 29, 1999.
Rolf Drechlser’s slides used
1 CSEP590 – Model Checking and Automated Verification Lecture outline for July 16, 2003.
Reachability Analysis using AIGs (instead of BDDs?) 290N: The Unknown Component Problem Lecture 23.
ECE Synthesis & Verification - Lecture 9b 1 ECE 697B (667) Fall 2004 ECE 697B (667) Fall 2004 Synthesis and Verification of Digital Systems Boolean.
Boolean Matching in Logic Synthesis. Equivalence of Functions Equivalence of two functions defined under l Negation of input variables l Permutation of.
Taylor Expansion Diagrams (TED): Verification EC667: Synthesis and Verification of Digital Systems Spring 2011 Presented by: Sudhan.
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
ECE 667 Synthesis & Verification - BDD 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Binary Decision Diagrams (BDD)
ENGG3190 Logic Synthesis “Binary Decision Diagrams” BDDs Winter 2014 S. Areibi School of Engineering University of Guelph.
 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
CS150 Newton5.2.1 Outline mLast time: ÜImplementation of logic functions: TTL, CMOS ÜDelay models: Transition time, propagation delay ÜHazards and "Glitches"
IT University of Copenhagen Lecture 8: Binary Decision Diagrams 1. Classical Boolean expression representations 2. If-then-else Normal Form (INF) 3. Binary.
1 ROBDD’s represents a logic function by a graph (DAG). (many logic functions can be represented compactly - usually better than SOP’s)represents a logic.
By Tariq Bashir Ahmad Taylor Expansion Diagrams (TED) Adapted from the paper M. Ciesielski, P. Kalla, Z. Zeng, B. Rouzeyre,”Taylor Expansion Diagrams:
1 CSC 6001 VLSI CAD (Physical Design) January
Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)
Digitaalsüsteemide verifitseerimise kursus1 Formal verification: BDD BDDs applied in equivalence checking.
B. Alizadeh Advanced Logic Design (2008) 1 / 55 Decision Diagrams.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Binary Decision Diagrams.
Identifying Reversible Functions From an ROBDD Adam MacDonald.
Binary Decision Diagrams (BDDs)
November,2000University of Southern California1 Introduction to Binary Decision Diagrams - Shesha Shayee K. Raghunathan.
CS 267: Automated Verification Lecture 6: Binary Decision Diagrams Instructor: Tevfik Bultan.
Two Level and Multi level Minimization
Algorithmic Software Verification V &VI. Binary decision diagrams.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Notes on Sequence Binary Decision Diagrams: Relationship to Acyclic Automata and Complexities of Binary Set Operations Shuhei Denzumi1, Ryo Yoshinaka2,
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda Rolf Drechsler Alex Orailoglu Computer Science & Engineering Dept. University.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Binary decision diagrams (BDD’s) Compact representation of a logic function ROBDD’s (reduced ordered BDD’s) are a canonical representation: equivalence.
BDDs1 Binary Tree Representation The recursive Shannon expansion corresponds to a binary tree Example: Each path from the root to a leaf corresponds to.
BDS – A BDD Based Logic Optimization System Presented by Nitin Prakash (ECE 667, Spring 2011)
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
IT 60101: Lecture #121 Foundation of Computing Systems Lecture 13 Trees: Part VIII.
BDD-based Synthesis of Reversible Logic for Large Functions Robert Wille Rolf Drechsler DAC’09 Presenter: Meng-yen Li.
ECE 667 Synthesis and Verification of Digital Systems
Binary Decision Diagrams
Binary Decision Diagrams
Formal Methods in software development
Binary Decision Diagrams
Formal Methods in software development
A logic function f in n inputs x1, x2, ...xn and
A logic function f in n inputs x1, x2, ...xn and
Boolean Algebra for CAD Applications
10 Design Verification and Test
Presentation transcript:

Binary Decision Diagrams Prof. Shobha Vasudevan ECE, UIUC ECE 462

Overview Binary decision diagrams (BDDs) can represent an arbitrary Boolean function

Motivation BDDs are efficient Easily represent large Boolean functions Ideal for synthesis algorithms BDDs are canonical Useful for checking Boolean function equivalence

Construction Choose a variable ordering Construct recursively using the Shannon Decomposition Theorem

Construction: Example f = abc + b’d + c’d b < c < d < a f b = ac + c’d f b’ = d + c’d

Construction: Example Child nodes are cofactors of parent nodes with respect to variable ordering (f b ) c = f bc = a f b’c = d f bc’ = d f b’c’ = d

Reductions Isomorphic subgraphs may be merged Redundant nodes may be eliminated

Reductions After reductions, the new graph is called a reduced ordered binary decision diagram (ROBDD)

Common Functions

f = abc + b’d + c’d Order Matters

Variable ordering significantly affects the size of the binary decision diagram Optimal ordering is difficult to determine

Order Matters

First variable ordering requires less information f = ab + cd + ef a < b < c < d < e < f Product terms are eliminated one by one If a product term is one, then the BDD is one Otherwise the BDD only records a zero product term Variable that caused product term to be zero is irrelevant

Design Considerations Practical BDD implementation requires careful design considerations Optimize for performance Memory utilization Computational complexity

Design Considerations: Unique Table Ultimately interested in reduced BDDs Avoid post-reduction Record newly added nodes to avoid adding the same node twice Function f has children a and b Function g has children a and b Prevent redundant addition of g Implemented as a hash table

Design Considerations: Computed Table Table of recently computed functions Different than unique table Unique table: do f and g have the same children? Computed table: did we already compute the AND of f and g? Avoid recomputing previous results

Algorithms: Binary Operators Combine BDDs for f and g using a binary operator Build a new BDD for f g Construct new BDD recursively f g = v(f v g v ) + v’(f v’ g v’ ) New node labelled v that points to solution of subproblems Cofactoring is easy If f does not depend on v, then f v = f v’ = f If v is the top variable of f, then the cofactors are the children of top node of f

Algorithms: If-Then-Else If-then-else (ITE) is a ternary operator Recursive formulation:

Algorithms: If-Then-Else Terminal cases of recursion:

ITE operations for Boolean functions

Algorithms: If-Then-Else

Without computed table every non-terminal ITE call generates two other calls Exponential in the number of variables With computed table, ITE called at most once for each distinct combination of nodes F, G, and H O(|F||G||H|) |F| is the number of nodes in the BDD for F Computed table drastically reduces complexity

Combinational Equivalence Checking If F and G are equivalent, then for the same ordering of variables their BDDs are isomorphic (identical) F = a’bc + abc +ab’c G = ac +bc

Boolean Satisfiability SAT: Find an assignment to the variables such that the function’s output is 1 In BDD, find a path to terminal node 1 for a satisfying assignment F = a’bc + abc +ab’c

Complement Edges Edges that carry the complement attribute function on this edge is the complement of the function on the ending node

Complement Edges Canonicity is not maintained. T edge does not carry complement attribute E edge with dot for complement edge, with circle for regular edge No need for terminal node 0