1 / 18

Computing and Using the Joint ROBDD

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.

malcolme
Download Presentation

Computing and Using the Joint ROBDD

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computing and Using the Joint ROBDD By: Stuti Shukla University Of Southern California July 2001

  2. 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.

  3. 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

  4. 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

  5. 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.

  6. 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 *

  7. 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

  8. 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

  9. ROBDD For AND Operation f.g Node c not making any decision Remove it a b b c c 0 1

  10. Final ROBDD after applying possible reductions f.g a b b c 0 1

  11. 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

  12. ROBDD For OR Operation after applying the reductions f+g a b c 1 0

  13. ROBDD For EXOR Operation f exor g a b b c c 1 0

  14. 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

  15. 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

  16. 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.

  17. 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

  18. 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.

More Related