










Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An in-depth exploration of ordered binary decision diagrams (obdd) and reduced ordered bdd (robdd) as presented by naresh shanbhag in his ece 598 sv course at the university of illinois at urbana-champaign. Topics such as the structure of obdd and robdd, variable ordering problem, efficient implementation of bdds, and the use of ite operator. It also includes examples and algorithms.
Typology: Study notes
1 / 18
This page cannot be seen from the preview
Don't miss anything!











Naresh Shanbhag, University of Illinois at Urbana-Champaign 1^1
Naresh Shanbhag, University of Illinois at Urbana-Champaign 2^2
Naresh Shanbhag, University of Illinois at Urbana-Champaign 3^3
Naresh Shanbhag, University of Illinois at Urbana-Champaign 4^4
Naresh Shanbhag, University of Illinois at Urbana-Champaign 7^7
Naresh Shanbhag, University of Illinois at Urbana-Champaign 8^8
» general scheme: control variables first » DFS order is pretty good for most cases
Naresh Shanbhag, University of Illinois at Urbana-Champaign 9^9
hash value of key
collision chain
hash value of key No collision chain
Naresh Shanbhag, University of Illinois at Urbana-Champaign 10^10
v 0 1
f
fv fv
Naresh Shanbhag, University of Illinois at Urbana-Champaign 13^13
ITE operator can implement any two variable logic function. There are 16 such functions corresponding to all subsets of vertices of B^2 : Table Subset Expression Equivalent Form 0000 0 0 0 0001 AND(f, g) fg ite(f, g, 0) 0010 f > g fg ite(f, g, 0) 0011 f f f 0100 f < g fg ite(f, 0, g) 0101 g g g 0110 XOR(f, g) f ⊕ g ite(f, g, g) 0111 OR(f, g) f + g ite(f, 1, g) 1000 NOR(f, g) f + g ite(f, 0, g) 1001 XNOR(f, g) f ⊕ g ite(f, g, g) 1010 NOT(g) g ite(g, 0, 1) 1011 f ≥ g f + g ite(f, 1, g) 1100 NOT(f) f ite(f, 0, 1) 1101 f ≤ g f + g ite(f, g, 1) 1110 NAND(f, g) fg ite(f, g, 1) 1111 1 1 1
Naresh Shanbhag, University of Illinois at Urbana-Champaign 14^14
hash index of key
collision chain
Naresh Shanbhag, University of Illinois at Urbana-Champaign 15^15
Where A, B are pointers to results of ite(fv,gv,hv) and ite(fv’,gv’,hv’})
Naresh Shanbhag, University of Illinois at Urbana-Champaign 16^16
Algorithm ITE (f, g, h) if (f == 1) return g if (f == 0) return h if (g == h) return g
if ((p = HASH_LOOKUP_COMPUTED_TABLE (f,g,h)) return p v = TOP_VARIABLE (f, g, h ) // top variable from f,g,h fn = ITE (fv,gv,hv) // recursive calls gn = ITE (fv,gv,hv) if (fn == gn) return gn // reduction if (!(p = HASH_LOOKUP_UNIQUE_TABLE (v,fn,gn)) { p = CREATE_NODE (v,fn,gn) // and insert into UNIQUE_TABLE } INSERT_COMPUTED_TABLE (p, HASH_KEY {f,g,h}) return p }
Naresh Shanbhag, University of Illinois at Urbana-Champaign 19^19
Naresh Shanbhag, University of Illinois at Urbana-Champaign 20^20
Algorithm ITE_CONSTANT (f,g,h) { // returns 0,1, or NC if ( TRIVIAL_CASE (f,g,h) return result (0,1, or NC) if ((res = HASH_LOOKUP_COMPUTED_TABLE (f,g,h))) return res v = TOP_VARIABLE (f,g,h) i = ITE_CONSTANT (fv,gv,hv) if (i == NC) { INSERT_COMPUTED_TABLE (NC, HASH_KEY {f,g,h}) //special table!! return NC } e = ITE_CONSTANT (fv,gv,hv) if (e == NC) { INSERT_COMPUTED_TABLE (NC, HASH_KEY {f,g,h}) return NC } if (e != i) { INSERT_COMPUTED_TABLE (NC, HASH_KEY {f,g,h}) return NC } INSERT_COMPUTED_TABLE (e, HASH_KEY {f,g,h}) return i; }
Naresh Shanbhag, University of Illinois at Urbana-Champaign 21^21
Compose( F , v , G ) : F ( v , x ) → F ( G ( x ), x ), means substitute v by G ( x )
Notes:
Algorithm COMPOSE (F,v,G) { if ( TOP_VARIABLE (F) > v) return F // F does not depend on v if ( TOP_VARIABLE (F) == v) return ITE (G,F 1 ,F 0 ) i = COMPOSE (F 1 ,v,G) e = COMPOSE (F 0 ,v,G) return ITE ( TOP_VARIABLE (F),i,e) // Why not CREATE_NODE... }
Naresh Shanbhag, University of Illinois at Urbana-Champaign 22^22
Naresh Shanbhag, University of Illinois at Urbana-Champaign 25^25
Naresh Shanbhag, University of Illinois at Urbana-Champaign 26^26
Naresh Shanbhag, University of Illinois at Urbana-Champaign 27^27
Naresh Shanbhag, University of Illinois at Urbana-Champaign 28^28
Naresh Shanbhag, University of Illinois at Urbana-Champaign 31^31
Naresh Shanbhag, University of Illinois at Urbana-Champaign 32^32
Naresh Shanbhag, University of Illinois at Urbana-Champaign 33^33
Naresh Shanbhag, University of Illinois at Urbana-Champaign 34^34
Function call Smc(ABP sender,EG (¬s^¬w))