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 dfs 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 dfs c 1
Final ROBDD after applying possible reductions f.g a b b dfs c 1
ROBDD For OR Operation 1 f+g a b b c c 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 dfs c c 1
ROBDD For OR Operation after applying the reductions f+g a b c dfs 1
ROBDD For EXOR Operation f exor g a b b c dfs c 1
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.