Presentation is loading. Please wait.

Presentation is loading. Please wait.

ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.

Similar presentations


Presentation on theme: "ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions."— Presentation transcript:

1 ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions and their Representations Slides adopted (with permission) from A. Kuehlmann, UC Berkeley 2003

2 ECE 667 Synthesis & Verification - Boolean Functions 2 The Boolean Space B n B = { 0,1}, B 2 = {0,1} X {0,1} = {00, 01, 10, 11} B0B0B0B0 B1B1B1B1 B2B2B2B2 Karnaugh Maps:Boolean Cubes: B3B3B3B3 B4B4B4B4

3 ECE 667 Synthesis & Verification - Boolean Functions 3 Boolean Functions x2x2 x1x1

4 ECE 667 Synthesis & Verification - Boolean Functions 4 Boolean Functions Literal x 1 represents the logic function f, where f = {x| x 1 = 1} Literal x 1 represents the logic function g where g = {x| x 1 = 0} x1x1 x3x3 x2x2 f = x 1 x1x1 x2x2 x3x3 Notation: x’ = x

5 ECE 667 Synthesis & Verification - Boolean Functions 5 Set of Boolean Functions There are 2 n vertices in input space B n There are 2 2 n distinct logic functions. – –Each subset of vertices is a distinct logic function: f  B n x 1 x 2 x 3 0 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 0  1 1 0 1 1 0 1 1 1 1 0 x1x1 x2x2 x3x3 Truth Table or Function Table :

6 ECE 667 Synthesis & Verification - Boolean Functions 6 Boolean Operations - AND, OR, COMPLEMENT Given two Boolean functions : f : B n  B g : B n  B AND operation f  g = {x | f(x)=1  g(x)=1} The OR operation f  g = {x | f(x)=1  g(x)=1} The COMPLEMENT operation (^f or f’ ) f’ = {x | f(x) = 0}

7 ECE 667 Synthesis & Verification - Boolean Functions 7 Cofactor and Quantification Given a Boolean function: f : B n  B, with the input variables (x 1,x 2,…,x i,…,x n ) Positive Cofactor of function f w.r.t variable x i f xi = {x | f(x 1,x 2,…,1,…,x n )=1} Negative Cofactor of f w.r.t variable x i f xi’ = {x | f(x 1,x 2,…,0,…,x n )=1} Existential Quantification of function f w.r.t variable x i,  x i f = {x | f(x 1,x 2,…,0,…,x n )=1  f(x 1,x 2,…,1,…,x n )=1} Universal Quantification of function f w.r.t variable x i,  x i f = {x | f(x 1,x 2,…,0,…,x n )=1  f(x 1,x 2,…,1,…,x n )=1}

8 ECE 667 Synthesis & Verification - Boolean Functions 8 Representations of Boolean Functions We need representations for Boolean Functions for two reasons: – –to represent and manipulate the actual circuit we are “synthesizing” – –as mechanism to do efficient Boolean reasoning Forms to represent Boolean Functions – –Truth table – –List of cubes: Sum of Products, Disjunctive Normal Form (DNF) – –List of conjuncts: Product of Sums, Conjunctive Normal Form (CNF) – –Boolean formula – –Binary Decision Tree, Binary Decision Diagram – –Circuit (network of Boolean primitives) Canonicity – which forms are canonical?

9 ECE 667 Synthesis & Verification - Boolean Functions 9 Truth Table Truth table (Function Table): The truth table of a function f : B n  B is a tabulation of its values at each of the 2 n vertices of B n. (all mintems) Example: f = a’b’c’d + a’b’cd + a’bc’d + ab’c’d + ab’cd + abc’d + abcd’ + abcd (Notation for complement: a’ = a ) The truth table representation is - intractable for large n - canonical Canonical means that if two functions are the same, then the canonical representations of each are isomorphic (identical). abcd f 0 0000 0 1 0001 1 2 0010 0 3 0011 1 4 0100 0 5 0101 1 6 0110 0 7 0111 0 8 1000 0 9 1001 1 10 1010 0 11 1011 1 12 1100 0 13 1101 1 14 1110 1 15 1111 1

10 ECE 667 Synthesis & Verification - Boolean Functions 10 Boolean Formula A Boolean formula is defined as an expression with the following syntax: formula ::= ‘(‘ formula ‘)’ | |formula “+” formula(OR operator) |formula “  ” formula(AND operator) | ^ formula(complement) Example: f = (x 1  x 2 ) + (x 3 ) + ^^(x 4  (^x 1 )) typically the “  ” is omitted and the ‘(‘ and ‘^’ are simply reduced by priority, e.g. f = x 1 x 2 + x 3 + x 4 ^x 1

11 ECE 667 Synthesis & Verification - Boolean Functions 11 Cubes A cube is defined as the product (AND) of a set of literal functions (“conjunction” of literals). Example: C = x 1 x’ 2 x 3 represents the following function f = (x 1 =1)(x 2 =0)(x 3 =1) x1x1 x2x2 x3x3 c = x 1 x1x1 x2x2 x3x3 f = x 1 x 2 x1x1 x2x2 x3x3 f = x 1 x 2 x 3

12 ECE 667 Synthesis & Verification - Boolean Functions 12 Cubes If C  f, C a cube, then C is an implicant of f. If C  B n, and C has k literals, then |C| covers 2 n-k vertices. Example: C = xy  B 3 k = 2, n = 3 => |C| = 2 = 2 3-2. C = {100, 101} In an n-dimensional Boolean space B n, an implicant with n literals is a minterm.

13 ECE 667 Synthesis & Verification - Boolean Functions 13 List of Cubes - Cover Sum of Products (SOP) A function can be represented by a sum of cubes (products): f = ab + ac + bc Since each cube is a product of literals, this is a “sum of products” (SOP) representation A SOP can be thought of as a set of cubes F F = {ab, ac, bc} A set of cubes that represents f is called a cover of f. Sets: F 1 ={ab, ac, bc} and F 2 ={abc, a’bc, ab’c, abc’} are some of possible covers of Boolean function f = ab + ac + bc.

14 ECE 667 Synthesis & Verification - Boolean Functions 14 Binary Decision Diagram (BDD) f = ab+a’c+a’bd 1 0 c a bb cc d 0 1 c+bd b root node c+d d Graph representation of a Boolean function - vertices represent decision nodes for variables - two children represent the two subfunctions f(x = 0) and f(x = 1) (cofactors) - restrictions on ordering and reduction rules can make a BDD representation canonical - function is evaluated as sum of paths from root to constant node 1 - paths form disjoint cubes.

15 ECE 667 Synthesis & Verification - Boolean Functions 15 Boolean Networks Used for two main purposes – –as representation for Boolean reasoning engine – –as target structure for logic implementation which gets restructured in a series of logic synthesis steps until result is acceptable Efficient representation for most Boolean problems – –memory complexity is same as the size of circuits we are actually building Close to input representation and output representation in logic synthesis

16 ECE 667 Synthesis & Verification - Boolean Functions 16 Definitions – Boolean Network Definition: A Boolean network is a directed graph C(G,N) where G are the gates and N  G  G is the set of directed edges (nets) connecting the gates. Some of the vertices are designated: Inputs: I  G Outputs: O  G, I  O =  Each node g is assigned a Boolean function f g which computes the output of the gate in terms of its inputs.

17 ECE 667 Synthesis & Verification - Boolean Functions 17 Definitions – fanin, fanout, support The (immediate) fanin FI(g) of a gate g are all predecessor vertices of g: FI(g) = {g’ | (g’,g)  N} The transitive fanin FI T (g) is defined as follows: if a  FI(b) and b  FI(c) then a  FI T (c) The fanout FO(g) of a gate g are all successor vertices of g: FO(g) = {g’ | (g,g’)  N} The transitive fanout is defined similarly The cone CONE(g) of a gate g is the transitive fanin of g and g itself. The support SUPPORT(g) of a gate g are all inputs in its cone: SUPPORT(g) = CONE(g)  I

18 ECE 667 Synthesis & Verification - Boolean Functions 18 Example – Boolean Network I O FI(6) = {2,4} FO(6) = {7,9} CONE(6) = {1,2,4,6} SUPPORT(6) = {1,2} 6 1 5 3 4 7 8 9 2 Nodes = logic functions of arbitrary complexity

19 ECE 667 Synthesis & Verification - Boolean Functions 19 Boolean Network Representations Vertices can have arbitrary number of inputs and outputs – –typically single-output functions are used Vertices can represent any Boolean function stored in different ways, such as: – –other circuits (hierarchical representation) – –truth tables or cube representation – –Boolean expressions read from a library description – –BDDs, AIGs, etc. Data structure allow very general mechanisms for insertion and deletion of vertices, pins (connections to vertices), and nets

20 ECE 667 Synthesis & Verification - Boolean Functions 20 AND-INVERTER Circuits Base data structure uses two-input AND function for vertices and INVERTER attributes at the edges (individual bit) – –use De’Morgan’s law to convert OR operation etc. Hash table to identify and reuse structurally isomorphic circuits f g g f Means complement

21 ECE 667 Synthesis & Verification - Boolean Functions 21 Data Representation Vertex : – –pointers (integer indices) to left and right child and fanout vertices – –collision chain pointer – –other data Edge: – –pointer or index into array – –one bit to represent inversion Global hash table holds each vertex to identify isomorphic structures Garbage collection to regularly free un-referenced vertices

22 ECE 667 Synthesis & Verification - Boolean Functions 22 Data Representation 0456 left right next fanout 1345 …. 8456 …. 6423 …. 7463 …. 0 1 hash value left pointer right pointer next in collision chain array of fanout pointers complement bits Constant One Vertex zero one 0456 0455 0457... Hash Table 0456 left right next fanout 0 0


Download ppt "ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions."

Similar presentations


Ads by Google