180 likes | 191 Views
Computing and Using the Joint ROBDD. By: Stuti Shukla University Of Southern California July 2001. Introducing the Joint ROBDD. This is a graph algorithm that implements symbolic operations on Boolean functions.
E N D
Computing and Using the Joint ROBDD By: Stuti Shukla University Of Southern California July 2001
Introducing the Joint ROBDD • This is a graph algorithm that implements symbolic operations on Boolean functions. • This enables implementation of a complex manipulation through a series of simpler manipulations, with the restriction that the OBDDs that the algorithm operates on obey the same ordering.
The Joint ROBDD Algorithm • The Joint ROBDD Algorithm generates Boolean functions obtained through algebraic operations to other functions. • Thus the input to the Joint ROBDD Algorithm would be two or more Boolean functions. In this presentation, we work with two Boolean functions, f and g • The output of the Joint ROBDD Algorithm, then, is the joint ROBDD for f*g, where * represents an unspecified binary Boolean operator. • This operator can be “AND”, “OR”, “XOR”, or any other two-input operation
Applying the Algorithm • The best way to understand the algorithm is to actually apply it. • We start off with a simple three variable example in order to demonstrate the concept
Applying the Algorithm • The two functions that need to be operated upon are: • f = ab’ + bc a < b < c • g = a’ + ab’c • We need to find: f * g • Where * is the operator • * could be AND, OR, exor, or any other two-input operator. • We will first solve this in complete generality for any operator and later plug in the operator.
Building the joint ROBDD for f*g b’+bc – a cofactor of f b’c – a cofactor of g bc – a’ cofactor of f 1 – a’ cofactor of g f*g a (bc)*1 (b’+bc)*(b’c) 1 – ab’ cofactor of f c – ab’ cofactor of g b b c – ab cofactor of f 0 – ab cofactor of g c – a’b cofactor of f 1 – a’b cofactor of g c*0 c*1 1*c c c c 0*1 1*1 0*1 1*1 0*0 0*1 Final leaves – These are 0 or 1, depending on the operator *
Analyzing the joint OBDD for possible reductions f*g a (bc)*1 (b’+bc) * (b’c) Both c nodes make same decisions. Combine them b b c*0 c*1 1*c c c c Combine redundant leaves of the nodes 0*1 1*1 0*1 1*1 0*0 0*1
The joint ROBDD after applying the reduction operations f*g a (b’+bc) * (b’c) (bc)*1 b c*1 b 1*c c c 0*0 0*1 1*1
ROBDD For AND Operation f.g Node c not making any decision Remove it a b b c c 0 1
Final ROBDD after applying possible reductions f.g a b b c 0 1
ROBDD For OR Operation On removing node c, a’b and a’b’ cofactors both lead to node 1. So b is no longer making any decision. Remove it f+g a Node c not making decision Remove it b b c c 1 0
ROBDD For OR Operation after applying the reductions f+g a b c 1 0
ROBDD For EXOR Operation f exor g a b b c c 1 0
Summarizing the Joint ROBDD Algorithm • Thus in a nutshell we do the following: • Take cofactors of the variables involved in the Boolean functions to build the generic ROBDD. • Since we are building the generic ROBDD for f*g, we take the cofactors for f and the corresponding cofactors for g, then simply insert the operation, *, between the two cofactors obtained
Summarizing the Joint ROBDD Algorithm • We continue this process until we thus obtain a generic OBDD for the function f*g • Next, we reduce this generic OBDD to an ROBDD using the usual reduction rules • We use the resulting generic ROBDD for f*g to obtain a partially reduced OBDD for any specific two-input function by calculating the value of each leaf • We complete the reduction of partially reduced OBDD to obtain the ROBDD for specific function
Acknowledgement • I would like to thank Professor Ellison for the guidelines he provided during the course of this presentation. His inputs and feedback helped me a lot in refining this presentation. • I would also like to thank our TA Kun Young (Ken) Chung for his detailed explanation of the Apply algorithm, from which our example was taken.
References • Randall Bryant’s paper: “Symbolic Boolean Manipulation with Ordered Binary Decision Diagrams” • Explanation given in class for the Apply Algorithm • The example is one taken from the Discussion session
Statement of Honor I solemnly declare that I and I alone worked on this PowerPoint presentation, entitled “The Apply Algorithm”. I have received no help from any one else and was the only one to prepare this extra credit project.