Binary Decision Diagrams. ROBDDs Slide 2 Example Directed acyclic graph non-terminal node terminal node What function is represented by the graph?

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.
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.
Planning based on Model Checking Dept. of Information Systems and Applied CS Bamberg University Seminar Paper Svetlana Balinova.
TOPIC : Reduced Ordered Binary Decision Diagrams UNIT 1: Modeling Digital Circuits Module 1 : Functional Modeling.
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.
Introduction Combining two frameworks
Class Presentation on Binary Moment Diagrams by Krishna Chillara Base Paper: “Verification of Arithmetic Circuits using Binary Moment Diagrams” by.
© 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.
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.
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
Rolf Drechlser’s slides used
1 CSEP590 – Model Checking and Automated Verification Lecture outline for July 16, 2003.
A Compressed Breadth-First Search for Satisfiability DoRon B. Motter and Igor L. Markov University of Michigan, Ann Arbor.
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
IT University of Copenhagen Lecture 8: Binary Decision Diagrams 1. Classical Boolean expression representations 2. If-then-else Normal Form (INF) 3. Binary.
Logic Verification 2 Outline –Ordered Binary Decision Diagrams –Verification using OBDDs –OBDD Data Structures –OBDD Operations –Verification Example Goal.
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
Binary Decision Diagrams for First Order Predicate Logic By: Jan Friso Groote Afsaneh Shirazi.
Digitaalsüsteemide verifitseerimise kursus1 Formal verification: BDD BDDs applied in equivalence checking.
Athens 2004 Symposium on Innovation of Computer Science Curriculum in Higher Education Athens 2004 Decision Diagrams: Principles of Programming Dragan.
B. Alizadeh Advanced Logic Design (2008) 1 / 55 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.
Week 11 - Wednesday.  What did we talk about last time?  Graphs  Euler paths and tours.
CS 267: Automated Verification Lecture 6: Binary Decision Diagrams Instructor: Tevfik Bultan.
CTL Model Checking 张文辉
EMIS 8373: Integer Programming NP-Complete Problems updated 21 April 2009.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
5.5.3 Rooted tree and binary tree  Definition 25: A directed graph is a directed tree if the graph is a tree in the underlying undirected graph.  Definition.
Notes on Sequence Binary Decision Diagrams: Relationship to Acyclic Automata and Complexities of Binary Set Operations Shuhei Denzumi1, Ryo Yoshinaka2,
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.
2017/4/26 Rethinking Packet Classification for Global Network View of Software-Defined Networking Author: Takeru Inoue, Toru Mano, Kimihiro Mizutani, Shin-ichi.
Author: Haoyu Song, Murali Kodialam, Fang Hao and T.V. Lakshman Publisher/Conf. : IEEE International Conference on Network Protocols (ICNP), 2009 Speaker:
1 Class Presentation on Binary Moment Diagrams by Krishna Chillara Base Paper: “Verification of Arithmetic Circuits with Binary Moment Diagrams” by Randal.
BDDs1 Binary Tree Representation The recursive Shannon expansion corresponds to a binary tree Example: Each path from the root to a leaf corresponds to.
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
Digitaalsüsteemide verifitseerimise kursus1 Exercises Binary decision diagrams ROBDD generation. Shannon expansion Finding an optimal ordering Dynamic.
Binary Decision Diagrams Prof. Shobha Vasudevan ECE, UIUC ECE 462.
1 Schnyder’s Method. 2 Motivation Given a planar graph, we want to embed it in a grid We want the grid to be relatively small And we want an efficient.
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.
Reconfigurable Computing
Binary Decision Diagrams
Automatic Verification of Industrial Designs
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
Binary Decision Diagrams
Example: Verification
Bridges and Articulation Points
A logic function f in n inputs x1, x2, ...xn and
Boolean Algebra for CAD Applications
Switching Lemmas and Proof Complexity
Presentation transcript:

Binary Decision Diagrams

ROBDDs Slide 2 Example Directed acyclic graph non-terminal node terminal node What function is represented by the graph?

ROBDDs Slide 3 Shannon Decomposition ABC +  A  C BC CC Apply the decomposition recursively high edge low edge

ROBDDs Slide 4 Ordered BDD ABC +  A  C

ROBDDs Slide 5 Reduced Ordered BDD Merge isomorphic subtrees

ROBDDs Slide 6 Reduced Ordered BDD Remove redundant nodes X X

ROBDDs Slide 7 ROBDD

ROBDDs Slide 8 ROBDD

ROBDDs Slide 9 BDD A Binary Decision Diagram (BDD) is a rooted, directed acyclic graph with one or two terminal nodes of out-degree zero labeled 0 or 1, and a set of variable nodes u of out-degree two. The two outgoing edges are given by two functions low(u) and high(u). (In pictures, these are shown as dotted and solid lines, respectively.) A variable var(u) is associated with each variable node.

ROBDDs Slide 10 ROBDD A BDD is Ordered (OBDD) if on all paths through the graph the variables respect a given linear order x 1 < x 2 < … < x n. An OBDD is Reduced (ROBDD) if 1.(uniqueness) no two distinct nodes u and v have the same variable name and low- and high- successor, i.e., var(u) = var(v); low(u) = low(v); high(u) = high(v) implies u = v; and 2.(non-redundant tests) no variable node u has identical low- and high-successor, i.e., low(u) = high(u)

ROBDDs Slide 11 Canonicity For any function f : B n  B there is exactly one ROBDD u with variable ordering x 1 < x 2 < … < x n such that f u = f(x 1, …, x n ). Proof:

ROBDDs Slide 12 Consequences of Canonicity How do you represent a tautology? (i.e. all variable assignments yield 1) How do you know that the function is satisfiable? (i.e. there is at least one assignment for the variables such that the function evaluates to 1)

ROBDDs Slide 13 Variable Order x1x2y1y2  x1x2y1y2  x1x2y1y2 x1x2y1y2x1x2y1y2  x1x2y1y2  x1x2y1y2 x1x2y1y2

ROBDDs Slide 14 Constructing and manipulating BDDs Nodes will be represented as numbers 0, 1, 2, … with 0 and 1 reserved for the terminal nodes. The variables in the ordering x 1 < x 2 < … < x n are represented by their indices 1, 2, …, n. The ROBDD is stored in a table T:u  (i, l, h) which maps a node u to its three attributes var(u) = i, low(u) = l, and high(u) = h.

ROBDDs Slide 15 Example

ROBDDs Slide 16 The H Table In order to ensure that the OBDD being constructed is reduced, it is necessary to determine from a triple (i, l, h) whether there exists a node u with var(u) = i, low(u) = l, and high(u) = h. For this purpose we assume the presence of a table H : (i, l, h)  u mapping triples (i, l, h) of variable indices i, and nodes l, h to nodes u. The table H is the “inverse" of the table T, i.e., for variable nodes u, T(u) = (i, l, h), if and only if, H(i, l, h) = u.

ROBDDs Slide 17 Operations on T and H

ROBDDs Slide 18 The Function Mk What is the complexity of Mk?

ROBDDs Slide 19 The Build Function

ROBDDs Slide 20 Example Show build Build(A  B  C) What is the running time of Build? Can it be improved? How?

ROBDDs Slide 21 Apply

ROBDDs Slide 22 The Function Apply Complexity?

ROBDDs Slide 23 The Function Apply Complexity? Dynamic programming

ROBDDs Slide 24 Example f = A  BCD add function g =  ABCD ivlh

ROBDDs Slide 25 Example f = A  BCD g =  ABCD ivlh

ROBDDs Slide 26 Example APPLY(f,g,+) ivlh How many nodes can a forest have? This is a forest (many trees)

ROBDDs Slide 27 Restrict x2 = 0

ROBDDs Slide 28 Restrict

ROBDDs Slide 29 SatCount Count the number of assignment for which the function is true

ROBDDs Slide 30 AnySat Find an assignment for which the function is true

ROBDDs Slide 31 AllSat Find all assignments for which the function is true

ROBDDs Slide 32 Simplify

ROBDDs Slide 33 Optimizations deleted nodes –memory management negated edges variable reordering –sifting