1 / 28

ECE 667 Spring 2011 Synthesis and Verification of Digital Systems

hanh
Download Presentation

ECE 667 Spring 2011 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. 1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Unate Recursive Paradigm

    2. ECE 667 - Synthesis & Verification 2 Shannon Expansion Boolean function 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.

    3. ECE 667 - Synthesis & Verification 3 Example Cube bc ist split into two cubes Shannon Expansion (cont.)

    4. ECE 667 - Synthesis & Verification 4 List of Cubes (Cover Matrix) We often use matrix notation to represent a cover: Example: F = ac + cd + bcd a b c d a b c d a c 1 2 1 2 1 - 1 - cd 2 2 0 1 or - - 0 1 bcd 2 1 1 0 - 1 1 0 Each row represents a cube 1 means that the positive literal appears in the cube 0 means that the negative literal appears in the cube The 2 (or -) represents that the variable does not appear in the cube Finding cofactors from matrix representation is easy. TRY it !

    5. ECE 667 - Synthesis & Verification 5 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 = c fc = c. Thus, c ? f.

    6. ECE 667 - Synthesis & Verification 6 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 xi?c and xi?c, 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, fc is independent of literals xi,xi ? c fc(m) = fc(m) = 0 fc(m) c(m)= 0 contradicting c ? cfc.

    7. ECE 667 - Synthesis & Verification 7 Application of Containment Test: c ? F

    8. ECE 667 - Synthesis & Verification 8 Definition: A function f : Bn ? B is symmetric with respect to variables xi and xj iff f(x1,,xi,,xj,,xn) = f(x1,,xj,,xi,,xn) Definition: A function f : Bn ? B is totally symmetric iff any permutation of the variables in f does not change the function Some Special Functions

    9. ECE 667 - Synthesis & Verification 9 Definition: A function f : Bn ? B is positive unate in variable xi iff This is equivalent to monotone increasing in xi: for all minterm pairs (m-, m+) where For example, m-3=1001, m+3=1011 (where i =3) Unate Functions

    10. ECE 667 - Synthesis & Verification 10 Similarly for negative unate monotone decreasing: A function is unate in xi if it is either positive unate or negative unate in xi. Definition: A function is unate if it is unate in each variable. Definition: A cover F is positive unate in xi iff ?xi ? cj for all cubes cj?F Unate Functions

    11. ECE 667 - Synthesis & Verification 11 Example - unateness

    12. ECE 667 - Synthesis & Verification 12 The Unate Recursive Paradigm Key pruning technique based on exploiting the properties of unate functions based on the fact that unate leaf cases can be solved efficiently New case splitting heuristic splitting variable is chosen so that the functions at lower nodes of the recursion tree become unate

    13. ECE 667 - Synthesis & Verification 13 Unate covers F have many extraordinary properties: If a cover F is minimal with respect to single-cube containment, all of its cubes are essential primes. In this case F is the unique minimum cube representation of its logic function. A unate cover represents the tautology iff it contains a cube with no literals (constant 1). Positive unate: f = x fx + fx Negative unate: f = fx + xfx This type of implicit enumeration applies to many sub-problems (prime generation, reduction, complementation, etc.).

    14. ECE 667 - Synthesis & Verification 14 Unate Recursive Paradigm Create cofactoring tree stopping at unate covers choose, at each node, the most binate variable for splitting recurse until no binate variable left (unate leaf) Operate on the unate cover at each leaf to obtain the result for that leaf. Return the result At each non-leaf node, merge (appropriately) the results of the two children. Main idea: Operation on unate leaf is computationally less complex Operations: complement, simplify, tautology, generate-primes,...etc.

    15. ECE 667 - Synthesis & Verification 15 Two Useful Theorems - Tautology Theorem: Checking for tatutology for is simplified for unate functions Positive unate (f = x fx + fx ) f ? 1 ? fx = 1 Negative unate (f = fx + xfx) f ? 1 ? fx = 1 Theorem: Let A be a unate cover matrix. Then A?1 if and only if A has a row of all -s (dont cares, or 2s). Proof: If. A row of all -s is the tautology cube. Only if. Assume no row of all -s. Without loss of generality, suppose function is positive unate. Then each row has at least one 1 in it. Consider the point (0,0,,0). This is not contained in any row of A. Hence A?1.

    16. ECE 667 - Synthesis & Verification 16 Recursive Tautology termination rules

    17. ECE 667 - Synthesis & Verification 17 Recursive Tautology - example

    18. ECE 667 - Synthesis & Verification 18 Recursive Complement Operation

    19. ECE 667 - Synthesis & Verification 19 COMPLEMENT Operation

    20. ECE 667 - Synthesis & Verification 20 Recursive Complement termination rules

    21. ECE 667 - Synthesis & Verification 21 Recursive Complement example (split)

    22. ECE 667 - Synthesis & Verification 22 Recursive Complement example (merge)

    23. ECE 667 - Synthesis & Verification 23 Incompletely Specified Boolean Functions F = (f, d, r) : Bn ? {0, 1, *} where * represents a dont care. f = onset function - f(x)=1 ? F(x)=1 r = offset function - r(x)=1 ? F(x)=0 d = dont care function - d(x)=1 ? F(x)=* (f,d,r) forms a partition of Bn, i.e. f + d + r = Bn fd = fr = dr = ? (pairwise disjoint)

    24. ECE 667 - Synthesis & Verification 24 A completely specified Boolean function g is a cover for F = (f,d,r) if f ? g ? f+d Note: g r = ? if x?d , then g(x) = 0 or 1 (dont care) if x?f , then g(x)=1 if x?r , then g(x)=0. Also: r = fd ? g ? f Incompletely Specified Boolean Functions

    25. ECE 667 - Synthesis & Verification 25 Example: Logic Minimization (single output) Consider F(a,b,c)=(f,d,r), where f={abc, abc, abc} and d ={abc, abc}, and the sequence of covers illustrated below:

    26. ECE 667 - Synthesis & Verification 26 Two-level minimization (multiple-outputs)

    27. ECE 667 - Synthesis & Verification 27

    28. ECE 667 - Synthesis & Verification 28

More Related