A New Approach to Structural Analysis and Transformation of Networks Alan Mishchenko November 29, 1999.

Slides:



Advertisements
Similar presentations
Introduction to Sequential Circuits
Advertisements

Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
Based on text by S. Mourad "Priciples of Electronic Systems" Digital Testing: Design Representation and Fault Detection
Planning based on Model Checking Dept. of Information Systems and Applied CS Bamberg University Seminar Paper Svetlana Balinova.
ECE Synthesis & Verification - L271 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Model Checking basics.
1 Don´t Care Minimization of *BMDs: Complexity and Algorithms Christoph Scholl Marc Herbstritt Bernd Becker Institute of Computer Science Albert-Ludwigs-University.
Weizmann Institute Deciding equality formulas by small domain instantiations O. Shtrichman The Weizmann Institute Joint work with A.Pnueli, Y.Rodeh, M.Siegel.
© 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.
CS 151 Digital Systems Design Lecture 6 More Boolean Algebra A B.
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
ECE Synthesis & Verification - Lecture 19 1 ECE 667 Spring 2009 ECE 667 Spring 2009 Synthesis and Verification of Digital Systems Functional Decomposition.
Computation Engines: BDDs and SAT (part 2) 290N: The Unknown Component Problem Lecture 8.
ECE Synthesis & Verification - L211 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Verification Equivalence checking.
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.
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
ECE 667 Synthesis & Verification - BDD 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Binary Decision Diagrams (BDD)
ECE 667 Synthesis and Verification of Digital Systems
Logic Functions and their Representation. Slide 2 Combinational Networks x1x1 x2x2 xnxn f.
State Minimization and Determinization EECS 290A Sequential Logic Synthesis and Verification.
Overview Part 2 – Circuit Optimization 2-4 Two-Level Optimization
Digitaalsüsteemide verifitseerimise kursus1 Formal verification: BDD BDDs applied in equivalence checking.
B. Alizadeh Advanced Logic Design (2008) 1 / 55 Decision Diagrams.
Binary Decision Diagrams (BDDs)
BOOLEAN ALGEBRA Saras M. Srivastava PGT (Computer Science)
Department of Computer Engineering
Combinatorial Algorithms Unate Covering Binate Covering Graph Coloring Maximum Clique.
Chapter 10 (Part 2): Boolean Algebra  Logic Gates (10.3) (cont.)  Minimization of Circuits (10.4)
CS 267: Automated Verification Lecture 6: Binary Decision Diagrams Instructor: Tevfik Bultan.
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.
Combinational Problems: Unate Covering, Binate Covering, Graph Coloring and Maximum Cliques Example of application: Decomposition.
Algorithmic Software Verification V &VI. Binary decision diagrams.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Unit 1 Minimization Techniques and Logic Gates. Introduction to Digital Systems Analog devices and systems process time-varying signals that can take.
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.
Mathematical Preliminaries
ENGIN112 L6: More Boolean Algebra September 15, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 6 More Boolean Algebra A B.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Multi-Level Logic Synthesis.
Verifying Programs with BDDs Topics Representing Boolean functions with Binary Decision Diagrams Application to program verification class-bdd.ppt
R. Johnsonbaugh Discrete Mathematics 5 th edition, 2001 Chapter 9 Boolean Algebras and Combinatorial Circuits.
C.S.Choy39 TERMINOLOGY Minterm –product term containing all input variables of a function in either true or complementary form Maxterm – sum term containing.
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.
Custom Computing Machines for the Set Covering Problem Paper Written By: Christian Plessl and Marco Platzner Swiss Federal Institute of Technology, 2002.
Standard & Canonical Forms COE 202 Digital Logic Design Dr. Aiman El-Maleh College of Computer Sciences and Engineering King Fahd University of Petroleum.
Lecture 5 More Boolean Algebra A B. Overview °Expressing Boolean functions °Relationships between algebraic equations, symbols, and truth tables °Simplification.
2009/6/30 CAV Quantifier Elimination via Functional Composition Jie-Hong Roland Jiang Dept. of Electrical Eng. / Grad. Inst. of Electronics Eng.
Binary Decision Diagrams Prof. Shobha Vasudevan ECE, UIUC ECE 462.
Decoders Zhijian John Wang. What are they? Overview of a decoder A device that reverses the process of an encoder Convert information from one format.
Dr. Nermin Hamza. Agenda Signed Numbers Properties of Switching Algebra.
Lecture 1 Gunjeet kaur Dronacharya group of institutions.
How CTL model checking works
CHAPTER 3 Simplification of Boolean Functions
EE465: Introduction to Digital Image Processing
Boolean Algebra.
Planning as model checking, (OBDDs)
A Boolean Paradigm in Multi-Valued Logic Synthesis
ECE 667 Synthesis and Verification of Digital Systems
17-Nov-18 Logic Algebra 1 Combinational logic.
Fast Computation of Symmetries in Boolean Functions Alan Mishchenko
Binary Decision Diagrams
Optimization Algorithm
Overview Part 2 – Circuit Optimization
Presentation transcript:

A New Approach to Structural Analysis and Transformation of Networks Alan Mishchenko November 29, 1999

Problem1: Locating Elements n Find all occurrences of the combination of AND-OR gate in the network of logic gates Network Element

Problem2: Replacing Elements Replace a given element with another one in all the places where is occurs. For example: c = a + b; d = ( a + b )&b = ab + b = b a b d c a b d c

November 11, 1999Logic, Design, and Learning Group Seminar4 Presentation Overview n Introduction n BDD basics ä Product and quantification ä Image computation ä Labels n Location of structural elements n Replacement of structural elements n Conclusions

Truth Table and Decision Tree x1x1 x3x3 x2x2 x3x3 x3x3 x3x3 10 x2x x1x x2x x3x F

Reduction of Decision Tree Rule 1: Nodes must be unique Rule 2: Redundant tests should not be present aa bb a bb a b b

Decision Tree Reduction: Example x1x1 x3x3 x2x2 x3x3 x3x3 x3x3 x2x2 10 x1x1 x3x3 x2x2 x3x3 x2x2 10 x1x1 x3x3 x2x2 10 BDD Decision tree Reduced Tree Rule 1 Rule 2

Introduction to BDDs n Canonicity n Compactness (with some exceptions) n BDDs represent various discrete objects ä Boolean functions ä Compositional sets ä Encodings and labels n BDDs facilitate symbolic methods ä Two-level minimization, state minimization, decomposition, ATPG, etc.

BDD Representation n Boolean functions n Characteristic functions ä Combinatorial sets n Relations ä FSM transition relations ä Covering tables, matrices, graphs

Characteristic Functions: Example n Problem: Given the set {p 1, p 2, p 3, p 4, p 5, p 6 }, create the characteristic function of the subset {p 1, p 3, p 4 } and represent it using BDDs n Step 1: Introduce an encoding of the set p 1 – p 2 – p 3 – p 4 – p 5 – p 6 – n Step 2: Define a function over the encoding variables (x 1, x 2, x 3 ) such that it will be equal to 1 for minterms encoding the subset {p 1, p 3, p 4 }.

Characteristic Functions: Example (continued)  {p1, p3, p4} ( x 0, x 1, x 2 ) = = + + n Step 3: Represent this function as a BDD x2 x0 x1 10

Labeling n To generate m unique labels ä Define k =  log 2 m  binary labeling variables ä Create m minterms, corresponding to the binary encoding of integers {0, 1, 2,… m-1} ä Represent the minterms as BDDs over the labeling variables n For any assignment of labeling variables, only one label can be equal to 1

Boolean Relations n A boolean relation is a boolean function over two domains of binary variables (x 1,x 2,x 3,…) and (y 1,y 2,y 3,…). The function is true for an assignment of variables (x 1,x 2,x 3,…,y 1,y 2,y 3,…) iff assignments (x 1,x 2,x 3,…) and (y 1,y 2,y 3,…) are in a certain relation. n Example: Assignments (x 1,x 2,x 3,…) and (y 1,y 2,y 3,…) may be the codes of a present state and a next state of a Finite State Machine

Relations for FSMs / 1 Transition Relation T(x 0,x 1,y 0,y 1,i 0,i 1 ) = 1- / 1 00 / 1 11 / 1 01 /

Relations for Graphs n a and n are in relation AND2-direct n n and a are in relation AND2-reverse n a and b are in relation AND2-adjacent, etc.

Relations for Graphs n Assign each signal (“cut point”), each type of gate and relation a unique binary code (label) a - b - n -, etc AND2 - OR2 - EXOR2 - Direct - Reverse - Adjacent – n Create products for each couple of objects (like nodes in the graph) and multiply these objects by labels, defining their relationship n Compute a bdd equal to the sum of these products

Relations for Graphs n Create a structural BDD of the network n R(x 2,x 1,x 0,y 2,y 1.y 0,g 1,g 0,a 1,a 0 ) =

Structural BDD Representation n Encodes all information about structure (complementary w.r.t. the sensitivity function) n Lead to a new “calculus” for structural analysis and transformations of encoded graphs (logic networks) based on the following operations efficiently implemented in the BDD package ä product/sum, ä quantification (existential, universal, unique) ä image/pre-image computation

Quantification n Given boolean function F(x 1, x 2, x 3 ) n Existential quantification of F w.r.t. x 1 is  x1 F(x 1, x 2, x 3 ) = F(0, x 2, x 3 ) + F(1, x 2, x 3 ) n Universal quantification of F w.r.t. x 1 is  x1 F(x 1, x 2, x 3 ) = F(0, x 2, x 3 ) & F(1, x 2, x 3 ) n Unique quantification of F w.r.t. x 1 is ! x1 F(x 1, x 2, x 3 ) = F(0, x 2, x 3 )  F(1, x 2, x 3 )

Image Computation n Given relation R(X, Y) and the set of assignments A(X), it is possible to compute the set of assignments B(Y) such that X and Y satisfy the relation R(X, Y). B(Y) =  x [ R(X, Y) & A(X) ] n B(Y) is called the forward image of the set A(X) in the relation R(X, Y). n Similarly, it is possible to compute the backward image A(X) of the set B(Y).

Problem1: Locating Elements n Find all occurrences of the combination of AND-OR gate in the network of logic gates Network Element

Problem2: Replacing Elements c = a + b; d = ( a + b )&b = ab + b = b a b d c a b d c

Solution of Problem 1: Idea n Given the structural representation of the network R( X, Y, A ), it is possible to find relations between any types of “cutpoints” a b d c

Solution of Problem 1 (cont.) n Cut-points b and c are in relations OR2-direct and AND2-adjacent n Relation between all possible occurrences of b and c throughout the network is R bc (X,Y) = R(X,Y,A OR2D ) & R(X,Y,A AND2A ) n The characteristic function of all occurrences of the structural element (located using b-type cut- points as references) is L b (X) =  y R bc (X,Y)

Solution of Problem 2: Ideas n Find the char. function L d of the d-type cut-points n Extract relations with d from R(X,Y,A) n Remove relations b-d-AND2D and d-c-AND2D from the extracted relation n Remove relations b-c-AND2A from R(X,Y,A) n Replace d-encoded cut-points for b-encoded cut- points in the remaining extracted relations n Add them to the structural bdd R(X,Y,A) a b d c a b d c

Solution of Problem 2 (cont.) n Characteristic function L d of d-type cut-points is L d (X) =  y [ R(X,Y,A AND2D ) & L b (Y) ] n Extract relations with d extracted from R(X,Y,A) R d (X,Y,A) = R(X,Y,A) & L d (X) n Remove b-d-AND2D and d-c-AND2D from R d R d * (X,Y,A) = R d (X,Y,A) & L b (X)’ & L c (X)’ n Remove b-c-AND2A from R(X,Y,A) R * (X,Y,A) = R(X,Y,A)&( R bc (X,Y) )’ n Replace d-type cut-points for b-type cut-points R ** (X,Y,A) =  z [R bd (X,Z) & R d * (Z,Y,A)] n Add this relation to the structural representation R(X,Y,A) = R(X,Y,A) + R d ** (X,Y,A)

Universal Search Algorithm n Step1: Traverse the fragment starting from the outputs and mark the overlapping cut-points n Step 2. Recursively call the search procedure for each output of the fragment

Recursive Procedure (sketch) n In this node ä Call the procedure for two (or more) siblings ä When they return the sets of cut-points –If the incoming sets of the node are disjoint, multiply their images –If the incoming sets are non-disjoint (the branches are symmetric or quasi-symmetric), apply the following transformation (see next slide) –At the meeting points of two overlapping branches, find the intersection of sets of possible cut-points ä Return the result

(Quasi-)Symmetric Branches n Computing the two related sets of ordered output cut-points R(Z 1,Z 2 ) =  Y [R(Y,Z 1,AND2R) & R(Y,Z 2,AND2R) & Z 1  Z 2 ] S 1 (Z 1 ) =  Z 2 [R(Z 1,Z 2 )] S 2 (Z 2 ) =  Z 1 [R(Z 1,Z 2 )] n Computing the “merged set” S(Y) =(  Z 1 [R(Y,Z 1,AND2R) & S 1 (Z 1 )]&  Z 2 [R(Y,Z 2,AND2R) & S 2 (Z 2 )]) + (  Z 1 [R(Y,Z 1,AND2R) & S 2 (Z 1 )]&  Z 1 [R(Y,Z 2,AND2R) & S 1 (Z 2 )]) Z2Z2 Z1Z1 Y