ECE 3060 VLSI and Advanced Digital Design

Similar documents
Logic Synthesis in a Nutshell

1. Nondeterministically guess a solution (called a certificate) 2. Check whether the solution solves the problem (called verification)

Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams

Data Structure [Question Bank]

3. The Junction Tree Algorithms

Data Structures and Algorithms Written Examination

Index Terms Domain name, Firewall, Packet, Phishing, URL.

Full and Complete Binary Trees

Analysis of Algorithms I: Binary Search Trees

1. True or False? A voltage level in the range 0 to 2 volts is interpreted as a binary 1.

Incremental Reduction of Binary Decision Diagrams

1 Definitions. Supplementary Material for: Digraphs. Concept graphs

Binary Search Trees. Data in each node. Larger than the data in its left child Smaller than the data in its right child

Karnaugh Maps & Combinational Logic Design. ECE 152A Winter 2012

Outline. NP-completeness. When is a problem easy? When is a problem hard? Today. Euler Circuits

Binary Search Trees CMPSC 122

Lecture 7: NP-Complete Problems

1. Relational database accesses data in a sequential form. (Figures 7.1, 7.2)

Boolean Algebra Part 1

Lecture 1: Course overview, circuits, and formulas

Analysis of Algorithms, I

Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs

Guessing Game: NP-Complete?

2. (a) Explain the strassen s matrix multiplication. (b) Write deletion algorithm, of Binary search tree. [8+8]

GRAPH THEORY LECTURE 4: TREES

5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.

United States Naval Academy Electrical and Computer Engineering Department. EC262 Exam 1

Why? A central concept in Computer Science. Algorithms are ubiquitous.

CORRELATED TO THE SOUTH CAROLINA COLLEGE AND CAREER-READY FOUNDATIONS IN ALGEBRA

Mathematics for Algorithm and System Analysis

Converting a Number from Decimal to Binary

Mathematical Induction. Lecture 10-11

Vector storage and access; algorithms in GIS. This is lecture 6

CSC 373: Algorithm Design and Analysis Lecture 16

Generating models of a matched formula with a polynomial delay


Structural Cloud Audits that Protect Private Information

A Logical Approach to Factoring Belief Networks

V. Adamchik 1. Graph Theory. Victor Adamchik. Fall of 2005

IE 680 Special Topics in Production Systems: Networks, Routing and Logistics*

Discrete Mathematics & Mathematical Reasoning Chapter 10: Graphs

Tree-representation of set families and applications to combinatorial decompositions

CSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) Total 92.

Graph Theory Lecture 3: Sum of Degrees Formulas, Planar Graphs, and Euler s Theorem Spring 2014 Morgan Schreffler Office: POT 902

CS711008Z Algorithm Design and Analysis

Hierarchical Data Visualization

Ordered Lists and Binary Trees

BOOLEAN ALGEBRA & LOGIC GATES

Bounded Treewidth in Knowledge Representation and Reasoning 1

Analysis of Algorithms I: Optimal Binary Search Trees

Approximation Algorithms

On the k-path cover problem for cacti

Verification of Triple Modular Redundancy (TMR) Insertion for Reliable and Trusted Systems

CMPSCI611: Approximating MAX-CUT Lecture 20

Scheduling Shop Scheduling. Tim Nieberg

A New Marketing Channel Management Strategy Based on Frequent Subtree Mining

The common ratio in (ii) is called the scaled-factor. An example of two similar triangles is shown in Figure Figure 47.1

Binary Adders: Half Adders and Full Adders

A Fast Algorithm For Finding Hamilton Cycles

PES Institute of Technology-BSC QUESTION BANK

root node level: internal node edge leaf node Data Structures & Algorithms McQuain

A binary search tree or BST is a binary tree that is either empty or in which the data element of each node has a key, and:

Data Structures and Algorithms

Mathematics Review for MS Finance Students

Problem Set 7 Solutions

CSC2420 Fall 2012: Algorithm Design, Analysis and Theory

Genetic Algorithms for the Variable Ordering Problem of Binary Decision Diagrams

Discuss the size of the instance for the minimum spanning tree problem.

1 = (a 0 + b 0 α) (a m 1 + b m 1 α) 2. for certain elements a 0,..., a m 1, b 0,..., b m 1 of F. Multiplying out, we obtain

Firewall Policy Change-Impact Analysis

CS510 Software Engineering

Algorithms and Data Structures

Complexity Classes P and NP

Binary Search Trees (BST)

Complexity Theory. Jörg Kreiker. Summer term Chair for Theoretical Computer Science Prof. Esparza TU München

Sum of Degrees of Vertices Theorem

Automata Theory. Şubat 2006 Tuğrul Yılmaz Ankara Üniversitesi

Web Data Extraction: 1 o Semestre 2007/2008

Implementation Of Clock Gating Logic By Matching Factored Forms A.kirankumari 1, P.P. Nagaraja Rao 2

Extra Credit Assignment Lesson plan. The following assignment is optional and can be completed to receive up to 5 points on a previously taken exam.

TIgeometry.com. Geometry. Angle Bisectors in a Triangle

On the Relationship between Classes P and NP

2 Temporal Logic Model Checking

Compact Representations and Approximations for Compuation in Games

Resources, process calculi and Godel-Dummett logics

Digital Logic Design. Basics Combinational Circuits Sequential Circuits. Pu-Jen Cheng

6.3 Conditional Probability and Independence

Discrete Mathematics Problems

Formal Verification of Software

Complexity Theory. IE 661: Scheduling Theory Fall 2003 Satyaki Ghosh Dastidar

Atmiya Infotech Pvt. Ltd. Data Structure. By Ajay Raiyani. Yogidham, Kalawad Road, Rajkot. Ph : ,

NP-Completeness. CptS 223 Advanced Data Structures. Larry Holder School of Electrical Engineering and Computer Science Washington State University

Lecture 13 - Basic Number Theory.

a 11 x 1 + a 12 x a 1n x n = b 1 a 21 x 1 + a 22 x a 2n x n = b 2.

A binary search tree is a binary tree with a special property called the BST-property, which is given as follows:

Efficient Computation of Multiple Group By Queries Zhimin Chen Vivek Narasayya

Data Structure with C

Database Design Patterns. Winter Lecture 24

Introduction to Logic in Computer Science: Autumn 2006

Reducing Clocks in Timed Automata while Preserving Bisimulation

Transcription:

ECE 3060 VLSI and Advanced Digital Design Lecture 11 Binary Decision Diagrams

Outline Binary Decision Diagrams (BDDs) Ordered (OBDDs) and Reduced Ordered (ROBDDs) Tautology check Containment check ECE 3060 Lecture 11 2

History Efficient representation of logic functions Proposed by Lee and Akers Popularized by Bryant (canonical form) Used for Boolean manipulation Applicable to other domains Set and relation representation Formal verification Simulation, finite-system analysis,... ECE 3060 Lecture 11 3

Definitions Directed Acyclic Graph (DAG) vertex set V edge set E (each edge has a head and tail => a direction) no cycles exist in G(V,E) Binary Decision Diagram (BDD) tree or rooted DAG where each vertex denotes a binary decision Example: F = ( a+ b)c index=1 a 0 1 a 0 1 a 0 1 index=2 0 b 1 b 0 1 0 c 1 c 0 1 b 0 1 index=3 c 0 1 0 1 c b 0 1 c 0 1 0 1 0 0 1 0 0 1 0 1 0 1 (a) (b) (c) ECE 3060 Lecture 11 4

Definition of OBDD Ordered Binary Decision Diagram (OBDD) the tree (or rooted DAG) can be levelized, so that each level corresponds to a variable Implementation: each non-leaf vertex v has a pointer index( v ) to a variable two children low(v) and high(v) Each leaf vertex v has a value (0 or 1) Ordering: index(v) < index(low(v)) index(v) < index(high(v)) ECE 3060 Lecture 11 5

Properties of an OBDD Each OBDD with root v defines a function : if v is a leaf with value( v) = 1, then f v = 1 if v is a leaf with value( v) = 0, then f v = 0 if v is not a leaf and index( v) = i, then f v = x i f low( v) + x i f high v OBDDs are not unique therefore a function may have many OBDDs The size of an OBDD depends on the variable order f v ( ) ECE 3060 Lecture 11 6

Cofactor and Boolean expansion Function f( x 1, x 2,, x i,, x n ) ) Definition: cofactor of fwith respect to : f xi = f( x 1, x 2,, 1,, x n ) Definition: cofactor of f with respect to : f xi = f( x 1, x 2,, 0,, x n ) Theorem: Let f :B n B. Then f( x 1, x 2,, x i,, x n ) = x i f xi + x i f xi x i x i ECE 3060 Lecture 11 7

Example Function Cofactors: Expansion: f = ab + bc + ac f a = b + c and f = bc a f = a f + a f a a = abc + a( b + c) ECE 3060 Lecture 11 8

ROBDDs Reduced Ordered Binary Decision Diagrams have no redundant subtrees: no vertex with low( v) = high( v) no pair { u, v} with isomorphic subgraphs rooted in u and v Reduction can be achieved in time polynomial with respect to the number of vertices However the number of vertices may be exponential in the number of input variables ROBDDs can be such by construction An ROBDD is a canonical form Example: OBDD (c) on slide 4 ECE 3060 Lecture 11 9

Features Canonical form allows us to verify logic equivalence in constant time check for tautology and perform logic operations in time proportional to the graph size Drawback: ROBDD graph size depends heavily on variable order ROBDD size bounds Multiplier: exponential size Adders: exponential to linear size Sparse logic: good heuristics exist to keep size small ECE 3060 Lecture 11 10

Tabular representation of ROBDDs Represent multi-rooted graphs multiple-output functions multiple-level logic forms Unique table one row per vertex identifier key: (variable, left child, right child) ECE 3060 Lecture 11 11

Example: Unique Table Identifier Key Variable Left Child Right Child 6 d 1 4 5 a 4 3 4 b 1 2 3 c 1 2 ECE 3060 Lecture 11 12

Tautology Checking Check if a function is always TRUE Recursive method: expand about a variable appearing both complemented (in an implicant) and uncomplemented (in another implicant) if all cofactors are TRUE then the function is a tautology if any cofactor is not a tautology (i.e., not TRUE), then the function is not a tautology A function is a tautology iff all of it s cofactors are tautologies A function is a tautology iff all of the leaves of it s BDD are TRUE This can be accomplished by traversing the BDD ECE 3060 Lecture 11 13

Containment Checking Theorem: A cover F contains an implicant α iff F α is a tautology. Consequence: containment can be verified by computing the cofactor and checking if it is a tautology. In general, how do we compute a cofactor? ECE 3060 Lecture 11 14

Cofactor Computation An arbitrary cofactor of F can be computed from a BDD of F. Suppose we have an ROBDD for F and we wish to i α compute F α, where α = x i. First we note that F xi x = ( F so we compute the j xi ) x j cofactor with respect to a product of literals by considering the literals one at a time. Consider the cofactor wrt : For each node at index i, trim the BDD by removing the edge associated with, and move the edge associated with to the parent. x i x i x i ECE 3060 Lecture 11 15

Example Consider Construct an ROBDD for Is a contained in F? Is b contained in F? Is c contained in F? F = abc + abc + ab + bc F ECE 3060 Lecture 11 16

Other Uses of BDDs Further uses of BDDs Can efficiently calculate complement f( x 1, x 2,, x i,, x n ) = x i f xi + x i f xi Can efficiently calculate union, intersection Equivalence checking ECE 3060 Lecture 11 17

Summary: BDDs Used mainly in multiple-level logic minimization Also used in formal verification Very efficient algorithms: most manipulations (tautology check, complementation, etc.) can be done in time polynomial in the size of the BDD ECE 3060 Lecture 11 18