Operations on Complementary Edge Binary Decision Diagrams EE 552 Instructor: Dr. James Ellison Kenny Liu July 22 nd, 2003.

Slides:



Advertisements
Similar presentations
Heuristic Search techniques
Advertisements

Chapter 8: Functions of Several Variables
Gaussian Elimination Matrices Solutions By Dr. Julia Arnold.
Prof. Sin-Min Lee Department of Computer Science
TOPIC : Reduced Ordered Binary Decision Diagrams UNIT 1: Modeling Digital Circuits Module 1 : Functional Modeling.
Intermediate Algebra Optional Pre-Final Exam Review
TECHNIQUES OF INTEGRATION
Key Stone Problem… Key Stone Problem… next Set 21 © 2007 Herbert I. Gross.
The ordered pair which is the
Section 7.4: Closures of Relations Let R be a relation on a set A. We have talked about 6 properties that a relation on a set may or may not possess: reflexive,
MVI Function Review Input X is p -valued variable. Each Input can have Value in Set {0, 1, 2,..., p i-1 } literal over X corresponds to subset of values.
Algebra Problems… Solutions Algebra Problems… Solutions © 2007 Herbert I. Gross Set 4 By Herb I. Gross and Richard A. Medeiros next.
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
TECHNIQUES OF INTEGRATION
Karnaugh Maps for Simplification
Logic gate level Part 3: minimizing circuits. Improving circuit efficiency Efficiency of combinatorial circuit depends on number & arrangement of its.
Building Suffix Trees in O(m) time Weiner had first linear time algorithm in 1973 McCreight developed a more space efficient algorithm in 1976 Ukkonen.
Lecture 3. Boolean Algebra, Logic Gates
Systems of Linear Equations
Solving Systems of Three Linear Equations in Three Variables
Algebra Problems… Solutions
Trigonometrical rules for finding sides and angles in triangles which are not right angled.
Lecture for Week Spring.  Numbers can be represented in many ways. We are familiar with the decimal system since it is most widely used in everyday.
SYSTEM OF EQUATIONS SYSTEM OF LINEAR EQUATIONS IN THREE VARIABLES
Copyright © Cengage Learning. All rights reserved. CHAPTER 2 THE LOGIC OF COMPOUND STATEMENTS THE LOGIC OF COMPOUND STATEMENTS.
Induction and recursion
Introduction and Vectors
Graph Theory Topics to be covered:
DECIDABILITY OF PRESBURGER ARITHMETIC USING FINITE AUTOMATA Presented by : Shubha Jain Reference : Paper by Alexandre Boudet and Hubert Comon.
Copyright © 2013, 2009, 2005 Pearson Education, Inc. 1 5 Systems and Matrices Copyright © 2013, 2009, 2005 Pearson Education, Inc.
Introduction Of Tree. Introduction A tree is a non-linear data structure in which items are arranged in sequence. It is used to represent hierarchical.
Created on 29/10/2008yahaya.wordpress.com1 Trees Another common nonlinear data structure is the tree. We have already seen an example of a tree when we.
The Pumping Lemma for Context Free Grammars. Chomsky Normal Form Chomsky Normal Form (CNF) is a simple and useful form of a CFG Every rule of a CNF grammar.
Prerequisites: Fundamental Concepts of Algebra
Previous Page Next Page EXIT Created by Professor James A. Sinclair, Ph.D. MMXI Working with Fractions Continued 3 4, Proper fractions Proper fractions.
Lecture 05: Theory of Automata:08 Kleene’s Theorem and NFA.
Tree Diagrams By Henry Mesa Use your keyboard’s arrow keys to move the slides forward ( ▬►) or backward ( ◄▬) Use the (Esc) key to exit.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
In section 11.9, we were able to find power series representations for a certain restricted class of functions. Here, we investigate more general problems.
CHAPTER 3: PRINCIPLES OF COMBINATIONAL LOGIC
CS1Q Computer Systems Lecture 7
Ahmad Almulhem, KFUPM 2010 COE 202: Digital Logic Design Combinational Logic Part 3 Dr. Ahmad Almulhem ahmadsm AT kfupm Phone: Office:
February 2, 2004CS 2311 Karnaugh maps Last time we saw applications of Boolean logic to circuit design. – The basic Boolean operations are AND, OR and.
ME 2304: 3D Geometry & Vector Calculus
1 BOOLEAN ALGEBRA Basic mathematics for the study of logic design is Boolean Algebra Basic laws of Boolean Algebra will be implemented as switching devices.
Karnaugh Maps (K-Maps)
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
June 10, 2002© Howard Huang1 Number systems To get started, we’ll discuss one of the fundamental concepts underlying digital computer design:
Solution of. Linear Differential Equations The first special case of first order differential equations that we will look is the linear first order differential.
CS 103 Discrete Structures Lecture 13 Induction and Recursion (1)
CS231 Boolean Algebra1 Summary so far So far: – A bunch of Boolean algebra trickery for simplifying expressions and circuits – The algebra guarantees us.
A. Abhari CPS2131 Chapter 2: Boolean Algebra and Logic Gates Topics in this Chapter: Boolean Algebra Boolean Functions Boolean Function Simplification.
Previous Page Next Page EXIT Created by Professor James A. Sinclair, Ph.D. MMXI Monomials, binomials, and Polynomials Monomials, binomials, and polynomials.
Solving Systems of Linear Equations Wait a minute! What’s a system of linear equations? –A system is a set of linear sentences which together describe.
June 12, 2002© Howard Huang1 Karnaugh maps Last time we saw applications of Boolean logic to circuit design. – The basic Boolean operations are.
BDDs1 Binary Tree Representation The recursive Shannon expansion corresponds to a binary tree Example: Each path from the root to a leaf corresponds to.
Complex Numbers and Equation Solving 1. Simple Equations 2. Compound Equations 3. Systems of Equations 4. Quadratic Equations 5. Determining Quadratic.
5.1 Exponential Functions
Lecture 3 Gunjeet Kaur Dronacharya Group of Institutions
Solving Systems of Equations
Chapter 8: Functions of Several Variables
Elementary Row Operations Gaussian Elimination Method
From now on: Combinatorial Circuits:
Copyright © Cengage Learning. All rights reserved.
ECE 352 Digital System Fundamentals
Arab Open University Faculty of Computer Studies Dr
Karnaugh maps Last time we saw applications of Boolean logic to circuit design. The basic Boolean operations are AND, OR and NOT. These operations can.
ECE 352 Digital System Fundamentals
Switching Lemmas and Proof Complexity
Presentation transcript:

Operations on Complementary Edge Binary Decision Diagrams EE 552 Instructor: Dr. James Ellison Kenny Liu July 22 nd, 2003

Introduction From the text, we are familiar with performing various operations in the ROBDD (Reduced Order Binary Decision Diagram) form. There were various notations mentioned in the text and we will be focusing on the CCE BDD (Canonical Complementary Edge Binary Decision Diagram) form. The presentation will show and prove methods of performing the operations we are already familiar with in the ROBDD form, but now in the CCE BDD form.

Introduction The operations mentioned will include: complementation finding the product of sums (POS) and sum of products (SOP) representation reordering variables dual cofactor representation tautology and satisfiability disjunctive composition

Conversion from ROBDD to CCEBDD x y z 01 1)Change all dotted lines (0-edges) into a line with a clear circle. Here we have our basic ROBDD form. We will be converting to CCE BDD form through a series of steps. ROBDD x y z 01 After Step 1 f = xz’+x’yz’f

Conversion from ROBDD to CCEBDD 2)All lines going to the 1- leaf are represented with leaf-less notation 3)All lines going to the 0- leaf are represented as leaf-less and with a solid dot on that branch. x y z 0 After Step 2 x y z After Step 3 f f

Conversion from ROBDD to CCEBDD x y z After Step 3 4) The next step is to remove all solid dots that are on lines without clear dots, in our example we have just one such case. We are only allowed to remove this solid dot if we add solid dots to all other branches of the node. x y z After Step 4 ff

Conversion from ROBDD to CCEBDD x y z After Step 4 f Repeat Step 4 x y z After Step 4 f

Conversion from ROBDD to CCEBDD x y z After Step 4 f 5) In this step, any edge with 2 solid dots can cancel out. The text also takes another step in which to represent an edge with a solid dot and clear dot as just a solid dot since we know it can only appear on zero edges anyways, but we will skip this step to make it easier to understand as we perform operations later. x y z After Step 5 f

Conversion from ROBDD to CCEBDD Here we have our final CCEBDD. We can see a major difference from an ROBDD in that it has a root edge which is the branch above the root node. Through this method of notation, the solid dots complement the portion of the function from the child node down. We will go into more detail of how this works later. x y z After Step 5 f

Summary of CCEBDD Basic Properties of CCEBDD form: 1)Has a root edge which may have a solid dot. 2)0-edges are represented as lines with clear dot. 3)There are only 1 leaves, 0-leaves are replaces with 1-leaves with a solid dot. 4)No solid dots may appear on positive edge. Cancel out with method shown previously. 5)Two solid dots on the same branch cancels each other out. 6)There is one unique CCEBDD for a boolean function for a particular ordering of its variables.

Basic Operation on CCEBDD x y z f The main operation we must be familiar with before we proceed is how to obtain the boolean function from a given CCEBDD. For Sum of Products in ROBDD, we are used to taking each possible path down to the 1-leaf, but here the process will be a little different. Instead, the path we are looking for must contain an even number of solid dots (ex. 0,2,4,6 etc.). If there is a solid dot on the root edge, we must take that into account for each path. We can verify our results with our original ROBDD.

Basic Operation on CCEBDD x y z f In our simple example there is only two such paths which is highlighted in red and pink. Each path contains 2 dots and each path represents part of the function. Sum of Products (even number of dots): (red highlight, 2-dots, path = x, z’) = xz’ (pink highlight, 2-dots, path = x’, y, z’) = x’yz’ Therefore f = xz’ + x’yz’

Complementation Complementation in ROBDD form is simple because all that needs to be done is to switch the 1- leaf with the 0-leaf. Actually complementation in CCEBDD form is just as easy but we will show the process with an example. Here we have a function in ROBDD and its complement. x y z 01 f = x+x’y+x’y’z’ x y z 10 f’ = x’y’z

Complementation We will now convert the ROBDD into a CCEBDD both regular and complemented functions to compare. x y z 01 f = x+x’y+x’y’z’ x y z f x y z f

Complementation x y z 10 f’ = x’y’z x y z x y z

Complementation By visually comparing the two CCEBDD’s, we can see that the complemented version just has the added solid dot on the root edge. With the solid dot representing the complementation of everything below it, it makes sense that a solid dot above the root node will complement the entire function. x y z f = x+x’y+x’y’z’ x y z f’ = x’y’z

Product of Sums We are already familiar with finding the Sum of Products function of a given CCEBDD in which we take each path that contains an even number of solid dots as a group of products with each group summed together. To find the Product of Sums function, it’s basically the same process, just with the 0-leaf, and so in CCEBDD form we look for paths with odd number of solid dots. We also need to complement each node as we did when finding Product of Sums for ROBDD’s.

Product of Sums x y z f Going back to our original example, we have 3 paths with an odd number of solid dots. Product of Sums (odd number of dots): (red highlight, 1-dot, path = x, z) = x’+z’ (pink highlight, 1-dot, path = x’, y, z) = x+y’+z’ (yellow highlight, 1-dot, path = x’, y’) = x+y Therefore f = (x’+z’)(x+y’+z’)(x+y)

Reordering of Variables The process in which we reorder variables in CCEBDD is very much the same as when we reorder variables in ROBDD. The leaves and nodes which involve the 2 variables to be reordered must be fully expanded keeping in mind that the 0-edge is always on the left. Afterwards, the variables can be switched along with the 2 leaf values in the expanded tree. a bb N1N2N3N4 After swap b aa N1N3N2N4

Reordering of Variables In the following example, we will swap the y and z variable. x y z f We first expand the CCEBDD x y z f y zzz

Reordering of Variables x y z f y zzz There are 2 sets of mini y-z trees, and so the process must be applied to each tree individually. After swapping the variables, we keep in mind that the middle 2 branches must also be swapped. The solid dots on the z-node branches represents 0-leaves and so that solid dot must swap to the opposite branch.

Reordering of Variables x z y f z yyy We apply the rule that no solid dots can be on a positive edge, and so we remove them by adding solid dots to each adjacent branch.

Reordering of Variables x z y f z yyy After the reordering process and applying basic CCEBDD rules, we have the following graph. We can verify that functionality wise it is the same. The 2 highlighted paths are the only paths that contain 2 solid dots for SOP. They represent xz’y and xz’ for the red and pink respectively. Therefore the equation is: f = xz’y + xz’ (matches previous)

Dual Function Conversion To perform the dual function, we are accustomed to switching the 1-leaves with the 0-leaves, and then swapping 0-edges with 1- edges, and swapping 1-edges with 0-edges. There are not any special rules we must taken into account when performing the dual function conversion for CCEBDD’s but by just applying what we already know it is a simple process. The following steps summarize the procedure: Step 1)Complement the entire function, effectively swapping the 1 and 0-leaves. In terms of CCEBDD, we add the solid dot at the root edge. Step 2)Switch complemented branches and positive branches, in CCEBDD, that means moving the clear-circle to the opposite branch of that node.

Dual Function Conversion x y z f x y z f After Step 1 x y z f After Step 2Initial CCEBDD

Dual Function Conversion x y z f After Step 2 x y z f We must remember that at the end of the series of steps, the CCEBDD must still uphold the rule that no solid dots can appear on a positive edge, therefore we must perform an additional step for our example. Final Answer!

Cofactor Representation x y z f For cofactor representation, we eliminate the opposing edge of the variable worked with. For example if we are looking for f z we will eliminate the 0-edge at the z-node, and if it was f z’ we eliminate the 1-edge at the z-node. We eliminate the z-node itself and link the remaining edge with the branch above the z-node. In the following example we will try to find f z’.

Cofactor Representation x y z f z’ x y The f z’ cofactor replaces the z- decision with a path down the 0- branch. 2 solid dots on one line cancel each other out.

Cofactor Representation x y f z’ Here is our final cofactor representation of f z. Let’s verify our answer. We have: f = x + x’y + x’y’ Our original function was f = x+x’y+x’y’z’. f z’ = f(x,y,0) = x + x’y + x’y’(0)’ = x + x’y + x’y’ This verifies our answer and also brings up another subject that we will discuss next.

Tautology and Satisfiability In CCEBDD notation, a tautology is represented as a graph with either no solid dots at all, or a graph that has all paths containing an even number of dots. The simplest possible CCEBDD, the single edge, is a CCEBDD that satisfies this criterion. The CCEBDD is “canonical”, that is, there is only one CCEBDD for a given function. Therefore, the CCEBDD for a tautology must be a single edge. The only case in which a graph is not satisfiable is when every individual path on the graph contains an odd number of solid dots. Thus, the CCEBDD consisting of the dotted root, with a single edge, is not satisfiable. Therefore, it is the only unsatisfiable CCEBDD.

Disjunctive Composition The process of Disjunctive Composition is quite a bit more complicated than the previous topics. The steps will be shown that illustrate the procedure, and then it will be verified by working with just the equations. There are some main differences we recognize immediately because we are used to see the 1’s and 0 leaves, but if we approach the problem with the following rules in mind, it is straightforward: 1) Any path can be thought of as having a 0-leaf at the end of it if it has an odd number of total dots for that path. 2) Any path can be thought of as having a 1-leaf at the end of it if it has an even number of total dots for that path.

Disjunctive Composition f(x,y,z) = xz’ + x’yz’ g(a,b) = a’ + ab’ x y z f a b g Our goal is to find f(x,g,z) Substituting g in for y.

Disjunctive Composition When trying to perform disjunctive composition, the node at which we will be performing the substitution has of course a 1 and 0 edge. The destination of the 1-edge for the y node in our case, is the destination of all branches that has a 1-leaf, in the function to be substituted. The 0-edge for the y node is then the destination for any branch in the function that has a 0-leaf

Disjunctive Composition x y z f The area highlighted is our focus for this part. The y-node’s 0-edge is just dangling, and so that will be the destination for all branches in the function g that has a 0-leaf. This will be called Destination-0. The 1-edge for the y-node is the z-node, and so that will be the destination for all branches in the function g that has a 1-leaf. This will be called Destination-1.

Disjunctive Composition a b g Now let us determine which leaves in the function are 1-leaves or 0-leaves. Following the rule that any path that contains an odd number of dots has a 0-leaf, and any path that contains an even number of dots has a 1-leaf, we can label our function. (red highlight, 2-dots) = even, 1-leaf (pink highlight, 2-dots) = even, 1-leaf (green highlight, 1-dot) = odd, 0-leaf 0-leafs go to Destination-0. 1-leafs go to Destination

Disjunctive Composition Now when substituting g back into f, we can remove all solid dots that had been on g. We have already used the solid dots to determine all paths down to the leaves, and so their destinations are set. By directing each branch to their correct destinations, we have the newly composed h function. Let us first find the formula of the new function in sum of products form. (red)(pink)(green) h = xz’ + x’a’z’ + x’ab’z’ x a z h(x,a,b,z) b

Disjunctive Composition Now let us verify our results by working with just function formulas. We have: f(x,y,z) = xz’ + x’yz’ g(a,b) = a’ + ab’ h(x,a,b,z) = xz’ + x’a’z’ + x’ab’z’ Let’s sub g in for y h(x,a,b,z) = xz’ + x’(a’ + ab’)z’ = xz’ + x’a’z’ + z’ab’z’ Which matches the equation we obtained from the composed CCEBDD, therefore verifying our answer.

Disjunctive Composition x y z f A case that we must consider that was not covered in the previous example, is if there is a solid dot on the 0-edge. This extra dot was added to our original f function to show what we must do in this situation. We automatically throw out the possibility of a solid dots on the 1-edge because we know it is not allowed. When substituting the g equation into f, we add that solid dot to any edge that ends with a 0-leaf.

Disjunctive Composition x a z h(x,a,b,z) b The final function has the extra highlighted solid dot because of the solid dot on the 0- edge of the original function. Because we only had that branch going to 0-leaf, we only have to add the solid dot to one place. Every other step remains the step in the procedure.

Conclusion We have covered how to perform many operations in CCEBDD form. Some of these operations were straightforward and basically followed steps as in ROBDD’s, while some operations were very different. It was interesting to see how some operations could become even simpler in the CCEBDD notation, while it also complicated others by forcing us to watch out for new rules and restrictions. The process in which these steps came about was by testing it in ROBDD first, and then converting to CCEBDD and observing changes that occurred.

References Techniques in Advanced Switching Theory by Professor Ellison BDD section