1 / 29

ECE 667 Spring 2013 Synthesis and Verification of Digital Systems

ECE 667 Spring 2013 Synthesis and Verification of Digital Systems. Binary Decision Diagrams (BDD). Outline. Background Canonical representations BDD’s Reduction rules Construction of BDD’s Logic manipulation of BDD’s Application to verification and SAT Reading:

bethan
Télécharger la présentation

ECE 667 Spring 2013 Synthesis and Verification of Digital Systems

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. ECE 667Spring 2013Synthesis and Verificationof Digital Systems Binary Decision Diagrams (BDD)

  2. Outline • Background • Canonical representations • BDD’s • Reduction rules • Construction of BDD’s • Logic manipulation of BDD’s • Application to verification and SAT • Reading: read one of the BDD tutorials available on class web site • Anderson, or • Somenzi ECE 667 Synthesis & Verification - BDD

  3. Common Representations • Boolean functions ( f : B  B ) • Truth table, Karnaugh map • SoP, PoS, ESoP • Reed-Muller expansions (XOR-based) • Decision diagrams (BDD, ZDD, etc.) • Each minimal, canonical representation is characterized by • Decomposition type • Shannon, Davio, moment decomposition, Taylor exp., etc. • Reduction rules • Redundant nodes, isomorphic sub-graphs, etc. • Composition method (“Apply”, compose rule) • What they represent • Boolean functions (f : B  B) • Arithmetic functions (f : B  Int ) • Algebraic expressions (f : Int Int ) ECE 667 Synthesis & Verification - BDD

  4. Binary Decision Diagrams (BDD) • Based on recursive Shannon expansion f = x fx + x’ fx’ • Compact data structure for Boolean logic • can represents sets of objects (states) encoded as Boolean functions • Canonical representation • reduced ordered BDDs (ROBDD) are canonical • essential for verification ECE 667 Synthesis & Verification - BDD

  5. ROBDD’s • Directed acyclic graph (DAG) • One root node, two terminal nodes 0, 1 (sinks) • Each node has exactly two children, associated with a variable • Shannon co-factoring tree, except reduced and ordered (ROBDD) • Reduced: • any node with two identical children is removed • two nodes with isomorphic BDD’s are merged • Ordered: • Co-factoring variables (splitting variables) always follow the same order along all paths xi1 < xi2 < xi3 < … < xin ECE 667 Synthesis & Verification - BDD

  6. Root node a a c+bd b c c+bd b b d*b c+d c d c c b b d d 0 1 0 1 BDD Example Two different orderings, same function. f = ab+a’c+bc’d 1 0 ECE 667 Synthesis & Verification - BDD

  7. Notreduced ! a a c c c b b b c 1 1 0 0 ROBDD Ordered BDD (OBDD): Input variables are ordered - each path from root to sink visits nodes with labels (variables) in the same order. not ordered ordered {a,c,b} Reduced Ordered BDD (ROBDD) - reduction rules: • if the two children of a node are the same, the node is eliminated: f = v f + v’ f • if two nodes have isomorphic graphs, they are replaced by one of them These two rules make it so that each node represents a distinct logic function. ECE 667 Synthesis & Verification - BDD

  8. f v 0 1 fv fv Efficient Implementation of BDD’s • BDDs is a compressed Shannon co-factoring tree: • f = v fv + v fv • leafs are constants “0” and “1” • Three components make ROBDDs canonical (Proof: Bryant 1986): • unique nodes for constant “0” and “1” • identical order along each path • hash table that ensures: • (node(fv) = node(gv)) Ù (node(fv) = node(gv)) Þ node(f) = node(g) • provides recursive argument that node(f) is unique when using the unique hash-table ECE 667 Synthesis & Verification - BDD

  9. Onset is Given by all Paths to “1” F = b’+a’c’ = ab’+a’cb’+a’c’BDD encodesall paths to the 1 node Notes: • By tracing paths to the 1 node, we get a cover of pairwise disjoint cubes. • The power of the BDD representation is that it does not explicitly enumerate all paths; rather it represents paths by a graph whose size is measured by the number of the nodes, and not paths. • A DAG can represent an exponential number of paths with a linear size (number of nodes) in terms of its variables. • BDDs can be used to efficiently represent sets • interpret elements of the onset as elements of the set • f is called the characteristic function of that set f a 0 1 fa = cb’+c’ c 1 fa= b’ b 0 0 1 0 1 ECE 667 Synthesis & Verification - BDD

  10. b is top variable of f f a f b reduced b 0 1 0 1 v is top variable of f f f v 1 0 MUX v 0 1 g h g h Implementation • Variables are totally ordered: If v < w then v occurs “higher” up in the ROBDD Top variable of a function f is a variable associated with its root node. Reduction (redundant node) fa = b, fa = b f does not depend on a sincefa = fa . • Each node is written as a triple: f = (v,g,h), where g = fv and h = fv . We read this triple as: f = if v then g else h = ite (v,g,h) = vg+v ’ h ECE 667 Synthesis & Verification - BDD

  11. f = ac + bc f 1 edge a b c f 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 edge a b b c c c c 0 0 0 0 0 1 1 1 Truth table Decision tree BDD Construction – naïve way • Reduced Ordered BDD ECE 667 Synthesis & Verification - BDD

  12. f a f = a g(b) + a’ g(b) = g(b) g g b b BDD Reduction Rules -1 • Eliminate redundant nodes (with both edges pointing to same node) ECE 667 Synthesis & Verification - BDD

  13. f f1 f2 a a a h g h g b c b c f1 = fa’ g(b) + fa h(c) = f2 f = f1 = f2 BDD Reduction Rules -2 • Merge duplicate nodes (isomorphic subgraphs) • Nodes must be unique ECE 667 Synthesis & Verification - BDD

  14. f f f = (a+b)c a a a b b b b b c c c c c c c 0 0 0 1 1 1 • 2. Merge duplicate nodes 3. Remove redundant nodes 1. Merge terminal nodes BDD Construction – cont’d ECE 667 Synthesis & Verification - BDD

  15. BDD Construction – the right way f = (a + b) c ECE 667 Synthesis & Verification - BDD

  16. F F’ ¬ • Complement ¬ F = F’ • (switch the terminal nodes) F(y) F(y) F(x,y) F(x,y) Restrict Restrict x=b x=b 0 0 0 0 0 1 1 1 0 1 1 1 Logic Manipulation using BDDs Useful operators • Complement ¬ F = F’ • (switch the terminal nodes) • Restrict: F|x=b = F(x=b)where b = const • Restrict: F|x=b = F(x=b)where b = const • To restrict variable x to 1, reconnect all incoming edges to nodes x to their1-nodes • To restrict variable x to 0, reconnect all incoming edges to nodes x to their0-nodes • To restrict variable x to 1, reconnect all incoming edges to nodes x to their1-nodes • To restrict variable x to 0, reconnect all incoming edges to nodes x to their0-nodes ECE 667 Synthesis & Verification - BDD

  17. a a a d c d d b b b b b b b c c c 0 0 0 0 1 1 1 1 Restrict Operator ( f (c=0, d=1) ) f = (a+d)(b+c)+a’d’bc fc’ = (a+d)b fc’d= (a+1)b = b fc’d = b Original BDD • Set c = 0 • Set d = 1 Restricted BDD ECE 667 Synthesis & Verification - BDD

  18. Useful BDD Operators – Apply Operation • Basic operator for efficient BDD manipulation (structural) • Based on recursive Shannon expansion F <op> G = x (Fx<op> Gx) + x’(Fx’<op> Gx’) where<op> = binary operations: OR, AND, XOR, etc ECE 667 Synthesis & Verification - BDD

  19. F G G F =   0 0 1 1 0 1 APPLY Operator • Useful in constructing BDD for arbitrary Boolean logic • Any logic operation can be expressed using Apply (ITE) • Efficient algorithms, work directly on BDD graphs • Apply: F G, any Boolean operation (AND, OR, XOR, ) ECE 667 Synthesis & Verification - BDD

  20. F G G F =   0 0 1 1 0 1 Apply Operation (cont’d) • Apply: F G where stands for any Boolean operator (AND, OR, XOR, etc) • Apply: F G where stands for any Boolean operator (AND, OR, XOR, etc)  • Any logic operation can be expressed using only Restrict and Apply • Efficient algorithms, work directly on BDDs • Apply can be used to construct a BDD bottom-up • From primary inputs, through internal logic gates, to output ECE 667 Synthesis & Verification - BDD

  21. a AND c ac a 2 a a = = c 3 1.3 2.3 AND c c 03 10 0 0 0 11 1 1 1 Apply Operation - AND • F  G = x (FxGx) + x’(Fx’Gx’) ECE 667 Synthesis & Verification - BDD

  22. ac f = ac+bc bc 4 a 6 b a a OR b 5 7 = = b 4+6 7+5 0+6 0+7 0+5 6+5 c c c c 0+0 0 0 0 0 1 1 1 1 Apply Operation - OR • F + G = x (Fx+Gx) + x’(Fx’+Gx’) ECE 667 Synthesis & Verification - BDD

  23. a a F = a’bc + abc +ab’c G = ac +bc b b  c c 0 0 1 1 Application to Verification • Equivalence Checking of combinational circuits • Canonicity property of BDDs: • if F and G are equivalent, their BDDs are identical (for the same ordering of variables) ECE 667 Synthesis & Verification - BDD

  24. H a ab b c 1 0 ab’c Application to SAT • Functional test generation • SAT, Boolean satisfiability analysis • to test for H = 1 (0), find a path in the BDD to terminal 1 (0) • the path, expressed infunction variables, gives a satisfying solution (test vector) • Problem: size explosion ECE 667 Synthesis & Verification - BDD

  25. Efficient Implementation of BDD’s Unique Table: key = (v,G,H), where F = ITE(v,G,H). • avoids duplication of existing nodes • Hash-Table: hash-function(key) = value • identical to the use of a hash-table in AND/INVERTER circuits hash value of key collision chain • Computed Table: key = (F,G,H) • avoids re-computation of existing results hash value of key No collision chain ECE 667 Synthesis & Verification - BDD

  26. Unique Table - Hash Table • Before a node (v, g, h ) is added to BDD data base, it is looked up in the “unique-table”. If it is there, then existing pointer to node is used to represent the logic function. Otherwise, a new node is added to the unique-table and the new pointer returned. • Thus a strong canonical form is maintained. The node for f = (v, g, h ) exists iff(v, g, h ) is in the unique-table. There is only one pointer for (v, g, h ) and that is the address to the unique-table entry. • Unique-table allows single multi-rooted DAG to represent all users’ functions: hash index of key collision chain ECE 667 Synthesis & Verification - BDD

  27. Computed Table Keep a record of (F, G, H ) triplets already computed by the ITE operator • software cache ( “cache” table) • simply hash-table without collision chain (lossy cache) ECE 667 Synthesis & Verification - BDD

  28. G G two different DAGs 0 1 0 1 G G only one DAG using complement pointer 0 1 Extension - Complement Edges Combine inverted functions by using complemented edge • similar to circuit case • reduces memory requirements • BUT MORE IMPORTANT: • makes some operations more efficient (NOT, ITE) ECE 667 Synthesis & Verification - BDD

  29. V V V V V V V V Extension - Complement Edges To maintain strong canonical form, need to resolve 4 equivalences: Solution: Always choose one on left, i.e. the “then” leg must have no complement edge. ECE 667 Synthesis & Verification - BDD

More Related