Chain Reduction for Binary and Zero-Suppressed Decision Diagrams

Slides:



Advertisements
Similar presentations
Hybrid BDD and All-SAT Method for Model Checking Orna Grumberg Joint work with Assaf Schuster and Avi Yadgar Technion – Israel Institute of Technology.
Advertisements

Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
An Introduction to the Model Verifier verds Wenhui Zhang September 15 th, 2010.
CS357 Lecture: BDD basics David Dill 1. 2 BDDs (Boolean/binary decision diagrams) BDDs are a very successful representation for Boolean functions. A BDD.
1 Integrating CSP Decomposition Techniques and BDDs for Compiling Configuration Problems Sathiamoorthy Subbarayan IT University of Copenhagen.
Faculty of Computer Science LCPC 2007 Using ZBDDs in Points-to Analysis Stephen Curial Jose Nelson Amaral Department of Computing Science University of.
1 Don´t Care Minimization of *BMDs: Complexity and Algorithms Christoph Scholl Marc Herbstritt Bernd Becker Institute of Computer Science Albert-Ludwigs-University.
Class Presentation on Binary Moment Diagrams by Krishna Chillara Base Paper: “Verification of Arithmetic Circuits using Binary Moment Diagrams” by.
Semi-Sparse Flow-Sensitive Pointer Analysis Ben Hardekopf Calvin Lin The University of Texas at Austin POPL ’09 Simplified by Eric Villasenor.
© 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.
Carnegie Mellon University Boolean Satisfiability with Transitivity Constraints Boolean Satisfiability with Transitivity Constraints
DATE-2002TED1 Taylor Expansion Diagrams: A Compact Canonical Representation for Symbolic Verification M. Ciesielski, P. Kalla, Z. Zeng B. Rouzeyre Electrical.
Binary Decision Diagrams1 BINARY DECISION DIAGRAMS.
Tirgul 9 Amortized analysis Graph representation.
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
Sanjit A. Seshia and Randal E. Bryant Computer Science Department
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.
On Proof Systems Behind Efficient SAT Solvers DoRon B. Motter and Igor L. Markov University of Michigan, Ann Arbor.
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)
 2000 M. CiesielskiPTL Synthesis1 Synthesis for Pass Transistor Logic Maciej Ciesielski Dept. of Electrical & Computer Engineering University of Massachusetts,
By Tariq Bashir Ahmad Taylor Expansion Diagrams (TED) Adapted from the paper M. Ciesielski, P. Kalla, Z. Zeng, B. Rouzeyre,”Taylor Expansion Diagrams:
Overview Part 2 – Circuit Optimization 2-4 Two-Level Optimization
Digitaalsüsteemide verifitseerimise kursus1 Formal verification: BDD BDDs applied in equivalence checking.
Binary Decision Diagrams (BDDs)
Department of Computer Engineering
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Logic and Computer Design.
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,
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Sets of Digital Data CSCI 2720 Fall 2005 Kraemer.
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.
ECEN 248: INTRODUCTION TO DIGITAL SYSTEMS DESIGN Lecture 4 Dr. Shi Dept. of Electrical and Computer Engineering.
1 Using Don’t Cares - full_simplify command Major command in SIS - uses SDC, ODC, XDC Key Questions: How do we represent XDC to a network? How do we relate.
1 Computing Abstractions by integrating BDDs and SMT Solvers Alessandro Cimatti Fondazione Bruno Kessler, Trento, Italy Joint work with R. Cavada, A. Franzen,
Binary Decision Diagrams Prof. Shobha Vasudevan ECE, UIUC ECE 462.
Honors Track: Competitive Programming & Problem Solving Seminar Topics Kevin Verbeek.
Hybrid BDD and All-SAT Method for Model Checking
Inference and search for the propositional satisfiability problem
Compactly Representing First-Order Structures for Static Analysis
Arithmetic Constraints and Automata
Alan Mishchenko University of California, Berkeley
Versatile SAT-based Remapping for Standard Cells
A Boolean Paradigm in Multi-Valued Logic Synthesis
ECE 667 Synthesis and Verification of Digital Systems
CSE 370 – Winter 2002 – Logic minimization - 1
Binary Decision Diagrams
Programmable Configurations
SAT-based Methods for Scalable Synthesis and Verification
Formal Methods in software development
Alan Mishchenko UC Berkeley (With many thanks to Donald Knuth,
Alan Mishchenko UC Berkeley (With many thanks to Donald Knuth for
Formal Methods in software development
Discrete Controller Synthesis
Overview Part 2 – Circuit Optimization
Binary Decision Diagrams
Verifying Programs with BDDs Sept. 22, 2006
SAT-based Methods: Logic Synthesis and Technology Mapping
SAT-Based Logic Synthesis
Real-Time Systems, COSC , Lecture 18
Presentation transcript:

Chain Reduction for Binary and Zero-Suppressed Decision Diagrams Randal E. Bryant Carnegie Mellon University http://www.cs.cmu.edu/~bryant

Overview Decision Diagrams BDDs (Bryant, 1986) vs ZDDs (Minato, 1992) Representations of Boolean functions Here: over n variables Canonical in reduced form, totally ordered variables BDDs (Bryant, 1986) vs ZDDs (Minato, 1992) BDDs: General Boolean functions ZDDs: Encoding sparse sets Within n/2× of each other for any function Chain Reduction: Unify BDDs and ZDDs CBDDs: Within 3× of (C)ZDDs CZDDs: Within 2× of BDDs Implemented via modifications of standard DD algorithms

BDDs vs ZDDs How should level-skipping edges be interpreted? Reduced Form x1 How should level-skipping edges be interpreted? x2 x3 1

Interpretations Reduced Form BDD Interpretation ZDD Interpretation x1 x2 x3 x1 x1 x2 x2 x3 x2 x2 x3 x3 x3 x3 x3 1 1 Level skipping  Don’t care Level skipping  One leads to zero

Interpretations Reduced Form BDD Interpretation ZDD Interpretation x1 1 1 1 Level skipping  Don’t care Level skipping  One leads to zero

Single Variable Function f(x1, x2, x3, x4, x5) = x3 1 x3 x1 x2 x3 x5 x4 1 BDD: 3 nodes ZDD: n + 2 nodes

Single Minterm Function f(x1, x2, x3, x4, x5) = x1 x2 x3 x4 x5 1 x3 x1 x2 x4 x5 1 x3 x2 ZDD: p + 2 nodes p = # positive literals BDD: n + 2 nodes

Encoding q-Queens Solutions 1-Hot Encoding Binary Encoding 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0

q-Queens Complexity Variables Nodes to Encode Single Solution

q-Queens Node Counts

q-Queens Node Count Ratios

Size Ratio Bounds Knuth, TAOCP 4A (2011) BDD ZDD n/2

Chain Types t f t+1 b–1 b Zero-Chain (exploited by ZDDs) t f g t+1 b–1 Zero-Chain (exploited by ZDDs) t f g t+1 b–1 b Or-Chain

Chain BDD t f g t+1 b–1 b f g t : b Or-Chain Every node has two variable levels

 CBDD Reduction Rule Reduced Form General Form f g f g t : m t : b m+1 : b f g t : b 

CBDD Examples 1:1 Single Minterm: ≤ 2p + 3 nodes Single variable 2:2 1:1 2:2 3:3 4:5 1 3:3 Single Minterm: ≤ 2p + 3 nodes Single variable

Chain ZDD t f g t+1 b–1 b f g t : b Every node has two variable levels Don’t Care-Chain Exploited by BDDs

 CZDD Reduction Rule Reduced Form General Form f g t : m m+1 : b f g t : b 

CZDD Examples 1:3 4:5 2:2 3:3 Single variable ≤ 4 nodes Single Minterm 1 1:3 4:5 1 2:2 3:3 Single variable ≤ 4 nodes Single Minterm p + 2 nodes

Size Ratios From CZDD to CBDD From BDD to CZDD From CBDD to CZDD CBDD node for each CZDD node + for each CZDD edge At most 3X larger From BDD to CZDD CZDD node for each BDD edge At most 2X larger From CBDD to CZDD No direct translation for general Or-chain

Worst Case for CZDD  CBDD 6k+2 nodes 2k+3 nodes

Worst Case for BDD  CZDD 4k+3 nodes 2k+3 nodes

Size Ratios BDD ZDD CBDD CZDD n/2 1 3 2

Implementation Modified versions of Apply and other algorithms Next hash table entry High child Low child index Reference Count CUDD Node Representation Negation flags Next hash table entry High child Low child index Reference Count Negation flags Chain-CUDD Node Representation bindex Modified versions of Apply and other algorithms

q-Queens Node Counts

q-Queens Node Count Ratios

Utility CBDDs All advantages of BDDs + ability to represent sparse sets At most 3× larger than ZDD CZDDs Possible replacement for BDDs At most 2× larger Avoids risks of ZDDs Blow-up of intermediate results Often have functions that depend on only subset of variables Excessive operations due to long don’t-care chains

Related Work van Dijk, Wille, Mieolic, FMCAD 2017 Associate additional variable “tag” with each edge Allows single level-skipping edge to encode two intepretations Above tag: Implicit don’t care chain At and below tag: Implicit zero-chain

Tagged BDD Example Unreduced form Tagged BDD x3 x4 x2 x1 zero chain x2 x1 zero chain don’t care x4 x2 1 x1 ∞

Possible Implementation of Tags CUDD Node Representation Next hash table entry High child Low child index Reference Count Negation flags Tagged-CUDD Node Representation index Reference Count Next hash table entry High tag High child Negation flags Low tag Low child

Comparisons Traditional BDD/ZDD Chained DDs Tagged BDDs Encode one variable in each node Possible n/2× size difference Chained DDs Encode two variables in each node Possible 2–3× size difference For CUDD: Minor change to API Tagged BDDs Encode three variables in each node Guaranteed 1× size difference For CUDD: Major change to API

Future Work Extending all of CUDD to Chaining Dynamic variable ordering Quantification ... Extension to ADDs / MTBDDs Symbolic representation of hybrid systems Partially implemented Symbolic Model Checking of Sparse Systems Work with functions over disjoint sets of variables Present state / next state Lots of don’t-care variables