200 likes | 337 Views
ECE 667 Spring 2013 Synthesis and Verification of Digital Systems. Boolean Functions SOP Representation. Slides adopted (with permission) from A. Kuehlmann, UC Berkeley 2003. Two-level logic (PLA). Multi-level logic (standard cells). Heuristic (espresso). Exact (QM). Boolean.
E N D
ECE 667Spring 2013Synthesis and Verificationof Digital Systems Boolean Functions SOP Representation Slides adopted (with permission) from A. Kuehlmann, UC Berkeley 2003
Two-level logic (PLA) Multi-level logic (standard cells) Heuristic (espresso) Exact (QM) Boolean Functional (BDD-based) Structural (SIS) Functional (AC, Kurtis) algebraic Logic Optimization Methods Logic Optimization Boolean ECE 667 - Synthesis & Verification
ac bc ab c = on-set minterm (f = 1) = off-set minterm (f = 0) = don’t care-set minterm (f = x) b a Cover and SOP representations • A function can be represented by a sum of products (cubes) SOP: f = ab + ac + bc • Definition: coverF of function f = set of implicants that cover all minterms of function f • Two-level minimization seeks a minimum size cover (least number of cubes). Reason: minimize number of product terms in PLA Note that each onset minterm is “covered” by at least one of the cubes! None of the offset minterms is covered ECE 667 - Synthesis & Verification
n=3, m=3 a a b b c c f1 f2 f3 PLAs - Multiple Output Functions • A PLA is a function f : BnBm represented in SOP form: OR plane Personality Matrix abc f1f2f3 10- 1 - - -11 1 - - 0-0 - 1 - 111 - 1 1 00- - - 1 AND plane ECE 667 - Synthesis & Verification
PLAs (cont.) • Each distinct cube appears just once in the AND-plane, and can be shared by (multiple) outputs in the OR-plane, e.g., cube abc. • Extensions from single output to multiple output minimization theory are straightforward. • Multi-level logic can be viewed mathematically as a collection of single output functions. ECE 667 - Synthesis & Verification
ac bc bc F\{ab} f ab ac c not covered, so ab is irredundant b a Irredundant Cubes • Definition: Let F = {c1, c2, …, ck} be a cover for f, i.e. f = ik=1ci A cube ci F is irredundant if F\{ci} f A cover is irredundant if all its cubes are irredundant. Example: f = ab + ac + bc ECE 667 - Synthesis & Verification
abc bd c b d cd a Prime, essential, irredundant • Definition: A cube is primeif it is not contained in any other cube. A cover is primeif all its cubes are prime. • Definition: A prime of f is essential if there is a minterm in that prime that is in no other prime. Example: f = abc + b’d + c’d is prime and irredundant. abcd abcd’ ECE 667 - Synthesis & Verification
Prime Cubes – another definition • A literalj of cube ci F ( cover of f ) is prime if (F \ {ci }) {c”i } f where c”i is ci with literal j of ci deleted. • A cube of F is prime if all its literals are prime. Example f = ab + ac + bc ci = ab; c”i =a (literal b deleted) F \ {ci } {c”i } = a + ac + bc F=ac + bc + a = F \{ci } {c”i } bc a ac c b Not equal to f since offset vertex is covered a ECE 667 - Synthesis & Verification
Orthogonal cubes • Definition: Two cubes are orthogonal if they do not have any minterm in common • Example: c1= ab c2= b’c are orthogonal c1= ab’ c2 = b’c are not orthogonal c1= ab’ c2 = ab are ? ECE 667 - Synthesis & Verification
abc bd c b d cd a Prime and Irredundant Covers Example:f = abc + b’d + c’d is prime and irredundant. abc is essential since abcd’abc, but not in b’d or c’d or ad Why is abcd not an essential vertex of abc? What is an essential vertex of abc? What other cube is essential? What prime is not essential? abcd abcd’ ECE 667 - Synthesis & Verification
Quine’s Theorem • Importance of having prime cubes: • minimum SOP solution can be composed of prime cubes only • Theorem(Quine): • There exists a minimum cover that is prime • Given initial cover for F = (f,d,r), find a minimum cover G of primes where: f G f+d • G is a prime cover of F ; f = on-set, r = off-set, d = don’t care set ECE 667 - Synthesis & Verification
f = abc + abc fa = bc c c b b a a Shannon (Boole) Cofactors Let f : Bn B be a Boolean function, and x= (x1, x2, …, xn) the variables in the support of f. The cofactorfa of f w.r.t literal a=xi or a=x’i is: fxi (x1, x2, …, xn) = f (x1, …, xi-1, 1, xi+1,…, xn) fx’i (x1, x2, …, xn) = f (x1, …, xi-1, 0, xi+1,…, xn) The computation of the cofactor is a fundamental operation in Boolean reasoning ! Example: ECE 667 - Synthesis & Verification
Generalized Cofactor • The generalized cofactorfC of f by a cube C is f with the fixed values indicated by the literals of C, e.g. if C=xi x’j, then xi =1, and xj =0. • if C= x1 x’4 x6 fC is just the function f restricted to the subspace where x1 =x6 =1 and x4 =0. • As a function, fC does not depend on x1,x4or x6 anymore (However, we still consider fC as a function of all n variables, it just happens to be independent of x1,x4and x6). • x1f fx1 Example: f = ac + a’c , af = ac, fa=c ECE 667 - Synthesis & Verification
Cofactor of Covers Definition: The cofactor of a coverF is the sum of the cofactors of each of the cubes of F. Note: If F={c1, c2,…, ck} is a cover of f, then Fc= {(c1)c, (c2)c,…, (ck)c} is a cover of fc. Suppose F(x) is a cover of f(x), i.e. Then for 1 j n, is a cover of fxj(x) ECE 667 - Synthesis & Verification
Cofactor of Cubes Definition: The cofactor Cxjof a cube C with respect to a literal xj is • C if xj and x’jdo not appear in C • C\{xj} if xj appears positively in C, i.e. xjC • if xj appears negatively in C, i.e. xj’C Example 1:C = x1 x’4 x6 Cx2 = C (x2 and x’2 do not appear in C ) Cx1 = x’4 x6(x1appears positively in C) Cx4 = (x4 appears negatively in C) Example 2:F = abc + b’d + c’d Fb = ac + c’d (Just drop b everywhere and delete cubes containing literalb) ECE 667 - Synthesis & Verification
f c Fundamental Theorem Theorem:Let c be a cube and f a function. Then c f fc 1. Proof.We use the fact that x fx = x f, and fx is independent of x. If : Suppose fc 1. Then cf =fcc = c. Thus, c f. ECE 667 - Synthesis & Verification
C=xz m= 000 m’= 101 m’ Proof (cont.) Only if. Assume c f Then c cf = cfc. But fc is independent of literals i c. If fc 1, then m Bn, fc(m)=0. We will construct a m’ from m and c in the following manner: mi’=mi, if xic and xic, mi’=1, if xi c, mi’=0, if xi c. i.e., we made the literals of m’ agree with c, i.e. m’ c Þ c(m’)=1 Also, fcis independent of literals xi,xi cÞfc(m’) =fc(m) = 0 Þ fc(m’) c(m’)= 0 contradicting c cfc. m ECE 667 - Synthesis & Verification
Application of Containment Test: c F ECE 667 - Synthesis & Verification
Shannon Expansion f : Bn B Shannon Expansion: Theorem: F is a cover of f. Then We say that f (F) is expanded about xi. xi is called the splitting variable. ECE 667 - Synthesis & Verification
ac bc ab c c b b a a Shannon Expansion (cont.) Example Cube bc ist split into two cubes ECE 667 - Synthesis & Verification