Grouping Heuristics for Word-Level Decision Diagrams Rolf DrechslerMarc HerbstrittBernd Becker Institute of Computer Science University of Freiburg 79110.

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

L3S Research Center University of Hanover Germany
Algorithms (and Datastructures) Lecture 3 MAS 714 part 2 Hartmut Klauck.
Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
Chapter Matrices Matrix Arithmetic
CS357 Lecture: BDD basics David Dill 1. 2 BDDs (Boolean/binary decision diagrams) BDDs are a very successful representation for Boolean functions. A BDD.
9-Oct-2002Prasad et al., ITC'021 A New Algorithm for Global Fault Collapsing into Equivalence and Dominance Sets A. V. S. S. Prasad Agere Systems, Bangalore.
Efficient Reachability Analysis for Verification of Asynchronous Systems Nishant Sinha.
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.
ECE 667 Student Presentation Gayatri Prabhu [1]. *PHDD: An Efficient Graph Representation for Floating Point Circuit Verification – Y. Chen, R. Bryant,
ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.
Department of Electrical and Computer Engineering M.A. Basith, T. Ahmad, A. Rossi *, M. Ciesielski ECE Dept. Univ. Massachusetts, Amherst * Univ. Bretagne.
Linear System of Equations MGT 4850 Spring 2008 University of Lethbridge.
DATE-2002TED1 Taylor Expansion Diagrams: A Compact Canonical Representation for Symbolic Verification M. Ciesielski, P. Kalla, Z. Zeng B. Rouzeyre Electrical.
Recent Development on Elimination Ordering Group 1.
Dynamic Programming1. 2 Outline and Reading Matrix Chain-Product (§5.3.1) The General Technique (§5.3.2) 0-1 Knapsack Problem (§5.3.3)
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
EE290A 1 Retiming of AND- INVERTER graphs with latches Juliet Holwill 290A Project 10 May 2005.
1 FRAIGs: Functionally Reduced And-Inverter Graphs Adapted from the paper “FRAIGs: A Unifying Representation for Logic Synthesis and Verification”, by.
DAG-Aware AIG Rewriting Alan Mishchenko, Satrajit Chatterjee, Robert Brayton Department of EECS, University of California Berkeley Presented by Rozana.
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.
Chapter 11 Limitations of Algorithm Power Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
 2001 CiesielskiBDD Tutorial1 Decision Diagrams Maciej Ciesielski Electrical & Computer Engineering University of Massachusetts, Amherst, USA
Equivalence Verification of Polynomial Datapaths with Fixed-Size Bit-Vectors using Finite Ring Algebra Namrata Shekhar, Priyank Kalla, Florian Enescu,
ECE 667 Synthesis & Verification - BDD 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Binary Decision Diagrams (BDD)
By Tariq Bashir Ahmad Taylor Expansion Diagrams (TED) Adapted from the paper M. Ciesielski, P. Kalla, Z. Zeng, B. Rouzeyre,”Taylor Expansion Diagrams:
1 Don´t Care Minimization of *BMDs: Complexity and Algorithms Christoph Scholl Marc Herbstritt Bernd Becker Institute of Computer Science Albert-Ludwigs-University.
Fast Spectral Transforms and Logic Synthesis DoRon Motter August 2, 2001.
Daniel Kroening and Ofer Strichman Decision Procedure
Digitaalsüsteemide verifitseerimise kursus1 Formal verification: BDD BDDs applied in equivalence checking.
Polynomial Datapaths Optimization Using Finite Abstract Algebra(I) Presenter: 陳炳元 Graduate Institute of Electronics Engineering Graduate Institute of Electronics.
Chapter 3: The Fundamentals: Algorithms, the Integers, and Matrices
Binary Decision Diagrams (BDDs)
Theory of Computing Lecture 17 MAS 714 Hartmut Klauck.
1 Lower Bounds Lower bound: an estimate on a minimum amount of work needed to solve a given problem Examples: b number of comparisons needed to find the.
SIMULATION BOUNDS FOR EQUIVALENCE VERIFICATION OF ARITHMETIC DATAPATHS WITH FINITE WORD-LENGTH OPERANDS Namrata Shekhar, Priyank Kalla, M. Brandon Meredith.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda Rolf Drechsler Alex Orailoglu Computer Science & Engineering Dept. University.
Multiple Valued Logic Currently Studied for Logic Circuits with More Than 2 Logic States –Intel Flash Memory – Multiple Floating Gate Charge Levels – 2,3.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Abstract To present a novel logic synthesis method to reduce the area of XOR-based logic functions. Idea: To exploit linear dependency between logic sub-
Verification & Validation By: Amir Masoud Gharehbaghi
Verifying Programs with BDDs Topics Representing Boolean functions with Binary Decision Diagrams Application to program verification class-bdd.ppt
Output Grouping Method Based on a Similarity of Boolean Functions Petr Fišer, Pavel Kubalík, Hana Kubátová Czech Technical University in Prague Department.
Foundation of Computing Systems
Dynamic Programming1. 2 Outline and Reading Matrix Chain-Product (§5.3.1) The General Technique (§5.3.2) 0-1 Knapsack Problem (§5.3.3)
1 Class Presentation on Binary Moment Diagrams by Krishna Chillara Base Paper: “Verification of Arithmetic Circuits with Binary Moment Diagrams” by Randal.
BDD-based Synthesis of Reversible Logic for Large Functions Robert Wille Rolf Drechsler DAC’09 Presenter: Meng-yen Li.
Unit 1 Introduction Number Systems and Conversion.
MTH108 Business Math I Lecture 20.
Lecture 3: Incompletely Specified Functions and K Maps
SINGLE-LEVEL PARTITIONING SUPPORT IN BOOM-II
Algorithms with numbers (1) CISC4080, Computer Algorithms
ECE 667 Synthesis and Verification of Digital Systems
Lecture 3: Incompletely Specified Functions and K Maps
Fast Computation of Symmetries in Boolean Functions Alan Mishchenko
Binary Decision Diagrams
Arithmetic and geometric sequences
Consensus Partition Liang Zheng 5.21.
Define evaluate and compare functions
Binary Decision Diagrams
Prime Factorization Prime factorization or integer factorization of a number is the determination of the set of prime numbers which multiply together to.
Verifying Programs with BDDs Sept. 22, 2006
Lecture 3: Incompletely Specified Functions and K Maps
Presentation transcript:

Grouping Heuristics for Word-Level Decision Diagrams Rolf DrechslerMarc HerbstrittBernd Becker Institute of Computer Science University of Freiburg Freiburg, Germany

Outline Introduction Word-Level Decision Diagrams (WLDDs) Variable Grouping Topology-based Heuristic Experimental results Conclusions

Motivation Formal verification is important task Very popular: Binary Decision Diagrams (BDDs)  Bryant 1986  Represent functions (bit-level)  Many extensions: FDDs, KFDDs,... But: not applicable to some important functions, i.e. arithmetic functions like multipliers Introduction of Word-Level Decision Diagrams  possible to verify large mutlipliers

Word-Level Decision Diagrams (WLDDs) Represent functions Directed acyclic graphs Variables are encountered in same order Canonical representation Graph size depends on variable ordering decomposition type choice grouping (in the case of multi-output circuits)

WLDD types EVBDDs:  Lay and Sastry 1992  additive weights, Shannon decomposition MTBDDs:  Clarke et. al 1993  Integer leaf values, Shannon decomposition *BMDs:  Bryant and Chen 1994  multiplicative weights, pos. Davio decomposition K*BMDs:  Drechsler et al  additive and multiplicative weights, Shannon/pos. Davio/neg. Davio decomposition

Decomposition Types Bit-Level: Word-Level: Shannon: pos. Davio: neg. Davio:

Example WLDD MTBDD EVBDD

Example WLDD MTBDD EVBDD *BMD

Variable Grouping 3 possibilities:  Consider only single primary outputs  Group all outputs by using a weighted sum  Divide the set of outputs in more than one set and group the individual sets by a weighted sum  reduction or blowup is obtained

Example Multiplier function as *BMD (Bryant 1995) grouped outputs: linear size bit-wise representation: exponential size

Example Consider MTBDDs for functions bit-wise representation: linear size weighted sum representation exponential size

Topology-based Heuristic Starting with the largest output largest output: the output with the largest support w.r.t. the primary inputs Group all outputs together that depend on the same variables (or on a subset) until no further grouping is possible Consider the next largest output until no output left Main idea: Group the outputs together that depend on the same variables

Step by step Initialization Evaluation of Support Matrix Variable Grouping  Heuristic H1  Heuristic H2 Notation: Netlist: G Number of primary inputs: #PI Number of primary outputs: #PO

Initialization Assign array of length #PI to each gate in the netlist G Compute the support by traversing the netlist in topological order. I.e. the support for the primary outputs is computed Runtime:

Evaluation of Support Matrix Compute the Output Correspondence Matrix (OCM)  Matrix dimensions:  Matrix is symmetric 1. Step: setting all entries to 0 Runtime: 2. Step: Compute which outputs are defined over the same support Runtime: Overall runtime:

OCM Computation for( i = 0; i < #PO; i++ ) for( j = 0; j < #PO; j++ ) for( l = 0; l < #PI; l++ ) if( i-th and j-th primary output is dependent on input l ) OCM[i][j] = OCM[i][j]+1;

Variable Grouping Heuristic H1: Include an output variable, if its support is contained in the largest one of the actual group Heuristic H2 : Include an output variable, if its support is contained in the support of all output variables that are in the actual group Group the output variables dependent on the OCM

Runtime Analysis Initialization: Evaluation of Support Matrix: Overall runtime:

Example H1 results in one group: (PO1, PO2, PO3) H2 results in two groups: (PO1, PO2), (PO3)

Experimental Results (1) Grouping results H1 is word-oriented H2 is bit-oriented

Experimental Results (2) Variable ordering: Interleaving H1 should be applied in Davio dominated WLDDs H2 should be used for Shannon-based WLDDs (Table entries denote number of nodes of the resulting WLDD)

Experimental Results (3)

Conclusions We presented heuristics for output grouping for Word-Level Decision Diagrams Due to this grouping large reductions are possible (up to an exponential factor) Grouping is dependent on the decomposition type choice Current and future work:  Incorporate output grouping in variable ordering and decomposition type choice process  Consideration of mixed DTLs for each group