Example Verification e g inputoutput specification of multiplier

  • Slides: 39
Download presentation
Example: Verification e. g. , input/output specification of multiplier A B e. g. ,

Example: Verification e. g. , input/output specification of multiplier A B e. g. , multi-level logic representation

Binary Decision Diagrams Graph-based Representation of Boolean Functions • Introduced by Lee (1959). •

Binary Decision Diagrams Graph-based Representation of Boolean Functions • Introduced by Lee (1959). • Popularized by Bryant (1986). 1 0 • compact (functions of 50 variables) • efficient (linear time manipluation) Widely used; has had a significant impact on the CAD industry. 0 1

Binary Decision Diagrams Graph-based Representation of Boolean Functions x 1 x 2 x 3

Binary Decision Diagrams Graph-based Representation of Boolean Functions x 1 x 2 x 3 f 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 BDD is defined as Directed Acyclic Graph 1 0 0 1

Analysis of Digital Circuits Large domain, small range. inputs output Digital Circuit

Analysis of Digital Circuits Large domain, small range. inputs output Digital Circuit

Analysis of Digital Circuits Large domain, small range. inputs output Digital Circuit 2 m

Analysis of Digital Circuits Large domain, small range. inputs output Digital Circuit 2 m possibilities 2 possibilities

Data Structures Truth Tables Example x 1 x 2 x 3 f 0 0

Data Structures Truth Tables Example x 1 x 2 x 3 f 0 0 1 1 0 1 0 1 0 0 0 1 0 1 m variables 2 variables 3 variables 2 m rows 4 rows 8 rows 64 variables 264 rows

Data Structures Decision Diagrams Example S x 1 x 2 x 3 f 0

Data Structures Decision Diagrams Example S x 1 x 2 x 3 f 0 0 1 1 0 1 0 1 0 0 0 1 0 1 x 1 0 x 2 0 0 0 x 3 1 0 1 1 0 0 x 2 0 x 3 1 0 1 0 x 3 1 1

Data Structures Decision Diagrams S Optimize by merging nodes: 0 x 2 0 0

Data Structures Decision Diagrams S Optimize by merging nodes: 0 x 2 0 0 0 x 3 0 1 0 x 1 1 1 0 0 x 2 0 x 3 0 1 0 01 x 3 1 1 1 0 x 3 1 1 1

Data Structures Decision Diagrams S Optimize by merging nodes: 0 x 2 0 0

Data Structures Decision Diagrams S Optimize by merging nodes: 0 x 2 0 0 x 3 0 1 x 1 1 1 0 x 3 0 0 1 x 3 0 1 1 x 2 1 x 3 1

Data Structures Decision Diagrams S Optimize by merging nodes: 0 x 2 00 x

Data Structures Decision Diagrams S Optimize by merging nodes: 0 x 2 00 x 1 1 x 2 00 11 1 1 x 3 0 01 0 x 3 01 1 1 x 3 1

Data Structures Decision Diagrams S Optimize by merging nodes: 0 x 1 1 1

Data Structures Decision Diagrams S Optimize by merging nodes: 0 x 1 1 1 x 2 0 1 1 0 0 0 x 3 1 1

Data Structures Logic Operations 0 x 2 S T U x 1 x 1

Data Structures Logic Operations 0 x 2 S T U x 1 x 1 1 0 0 x 3 1 x 2 = 0 1 1 0 x 3 1 0 1 AND 0 0 1 x 3 0 1 0 0 1 1

Decision Diagrams Properties: • Canonical: unique up to variable ordering • Compact: represent functions

Decision Diagrams Properties: • Canonical: unique up to variable ordering • Compact: represent functions of up to 1000 variables • Efficient: perform logic operations in linear-time

Ordered Binary Decision Diagrams (a. k. a. Branching Programs) Example: 0 0 0 1

Ordered Binary Decision Diagrams (a. k. a. Branching Programs) Example: 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 Directed Acyclic Graph; variables are inspected in order.

Reducing OBDDs “Terminal” Rule: eliminate duplicate terminals. 1 0 0 0 1 1

Reducing OBDDs “Terminal” Rule: eliminate duplicate terminals. 1 0 0 0 1 1

Reducing OBDDs “Elimination” Rule: eliminate a node if its 0 and 1 edges lead

Reducing OBDDs “Elimination” Rule: eliminate a node if its 0 and 1 edges lead to the same node.

Reducing OBDDs “Merging” Rule: merge two nodes that reference the same variable and point

Reducing OBDDs “Merging” Rule: merge two nodes that reference the same variable and point to the same successors.

Reduced OBDDs Question: What is the optimal strategy for eliminate and merge operations?

Reduced OBDDs Question: What is the optimal strategy for eliminate and merge operations?

Reduced OBDDs Strategy: eliminate and merge nodes repeatedly, in any order, until no further

Reduced OBDDs Strategy: eliminate and merge nodes repeatedly, in any order, until no further simplifications are possible. Is the result unique? For a given variable ordering, the Reduced OBDD representation of a function is unique (up to isomorphism).

Uniqueness (proof) By induction on the number of variables. Base Case: 0 nodes. 0

Uniqueness (proof) By induction on the number of variables. Base Case: 0 nodes. 0 or 1 Induction Hypothesis: Assume that any two ROBDDs for a function with k – 1 variables, k > 0, are isomorphic. Inductive Step: Show that any two ROBDDs for a function with k variables are isomorphic.

Inductive Step Let and be two ROBDDs for a function. be the roots, respectively.

Inductive Step Let and be two ROBDDs for a function. be the roots, respectively. implement same function; implement same function. depend on at most k – 1 variables. isomorphic, isomorphic.

Inductive Step isomorphic to Argue that according to some mapping s 1. is obtained

Inductive Step isomorphic to Argue that according to some mapping s 1. is obtained from by the mapping Show that this mapping is well-defined and one-to-one.

Inductive Step well-defined: If a vertex u is in both low (v) and high(v)

Inductive Step well-defined: If a vertex u is in both low (v) and high(v) then the graphs rooted at are both isomorphic to the graph rooted at u. Since is reduced, one-to-one: If there were distinct vertices in f having , then f would not be reduced.

Mapping Well-Defined low(v) high(v) 0 1 Counter Example (Unreduced BDDs)

Mapping Well-Defined low(v) high(v) 0 1 Counter Example (Unreduced BDDs)

Mapping One-To-One 0 1 Counter Example (Unreduced BDDs)

Mapping One-To-One 0 1 Counter Example (Unreduced BDDs)

Logic Operations For any binary operation * : where

Logic Operations For any binary operation * : where

Logic Operations Apply recursively, expanding around each of the variables

Logic Operations Apply recursively, expanding around each of the variables

Logic Operations Compute 0 1

Logic Operations Compute 0 1

Logic Operations

Logic Operations

Logic Operations

Logic Operations

Logic Operations

Logic Operations

Logic Operations

Logic Operations

Logic Operations 0 1

Logic Operations 0 1

Logic Operations 0 1

Logic Operations 0 1

Logic Operations 0 1

Logic Operations 0 1

Logic Operations 0 1

Logic Operations 0 1

Logic Operations Simplify 0 1

Logic Operations Simplify 0 1

Logic Operations Simplify 0 For any operation 1 , computing is .

Logic Operations Simplify 0 For any operation 1 , computing is .

Variable Ordering

Variable Ordering