Presentation is loading. Please wait.

Presentation is loading. Please wait.

ECE 667 - Synthesis & Verification 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Exact Two-level Minimization Quine-McCluskey Procedure.

Similar presentations


Presentation on theme: "ECE 667 - Synthesis & Verification 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Exact Two-level Minimization Quine-McCluskey Procedure."— Presentation transcript:

1 ECE 667 - Synthesis & Verification 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Exact Two-level Minimization Quine-McCluskey Procedure Slides adopted (with permission) from A. Kuehlmann, UC Berkeley, 2003

2 ECE 667 - Synthesis & Verification 2 Outline QM Theorem Generating all primes – –Single output functions – –Multiple output functions Setting up a covering table Solving the Unate Covering Problem – –Reduction rules – –Solving cyclic core

3 ECE 667 - Synthesis & Verification 3 Quine-McCluskey Theorem Theorem (Quine): There is a minimum cover that is prime Proof: Consider a minimum cover that is not prime. Each non-prime implicant can be replaced by a prime implicant that covers it. Thus the resulting set of implicants is a cover and has the same cardinality as the original cover. Hence, there is 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

4 ECE 667 - Synthesis & Verification 4 Quine-McCluskey Procedure (Exact) Q-M Procedure : 1. Generate all primes (f+d), call it {P i } 2. Generate all minterms of (f+d), call it {m i } 3. Build a covering (prime implicant) matrix B, where B ij = 1 if m i  P j = 0 otherwise = 0 otherwise 4. Solve the minimum column covering problem for B (unate covering problem), UCP.

5 ECE 667 - Synthesis & Verification 5 Covering table xyxy xyxy xyxy xyxy zwzw zwzw zw zwzw xzxz y’ w (on set) (don’t care set) Primes: y’ + w + x’z’ Example y’y’wx’z’ x y’z’w x’y zw x’y z’w x’y’z’w’

6 ECE 667 - Synthesis & Verification 6 Covering Table Recall: An essential prime is any prime that uniquely covers a minterm of f. Solution: {p 1,p 2 }   y + w is minimum prime cover. (Also w +  x  z) Possible approach (SAT): (p 1 +p 3 )(p 2 +p 3 )(p 1 +p 2 )p 2 Minterms of f y’y’wx’z’ x y’ z’w x’y z w x’y z’w x’y’ z’w’ Row singleton (essential minterm) Essential prime {p1 p2 p3} Primes of (f+d)

7 ECE 667 - Synthesis & Verification 7 Table reduction - Column Dominance Definition: A column P 1 whose 1-entries are a superset of another column P 2 is said to dominate P 2. Example: P 1 dominates P 2 (it has 1 everywhere P 2 has) P 1 P 2 1 0 0 1 0 1 We can remove dominated column P 2 since P 1 covers all those rows and more. We would never choose P 2 in a minimum cover since it can always be replaced by P 1.

8 ECE 667 - Synthesis & Verification 8 Row Dominance and equality Definition: A row m 1 whose set of primes contains the set of primes of row m 2 is said to dominate m 2.. Example: m 1 011110 m 2 011010 m 1 dominates m 2 : it has 1 everywhere m 2 has 1 Dominating row We can remove dominating row m 1 : any prime that covers m 2 also covers m 1 (covered automatically). Row Equality: In practice, many rows are identical. That is there exist minterms that are contained in the same set of primes.

9 ECE 667 - Synthesis & Verification 9 Difficulty The size of table: ~ 2 n minterms ~ 3 n /n primes We have O(2 n ) rows and O(3 n /n ) columns AND minimum covering problem is NP-complete. Hence it can probably be double exponential in size of input, i.e. difficulty is O(2 3 n ) 0 1 0 0 10 3 n /n minterms primes 2n2n

10 ECE 667 - Synthesis & Verification 10 Pruning the Covering Table 1.Remove all rows covered by essential primes (columns in row singletons). Put these primes in the cover G. 2. Group identical rows together and remove dominating rows. 3. Remove dominated columns. For equal columns, keep one prime to represent them. 4. Newly formed row singletons define essential primes. 5. Go to step 1 if covering table decreased. The resulting reduced covering table is called the cyclic core. This has to be solved (unate covering problem). A minimum solution is added to G (set of essential primes). The resulting G is a minimum cover.

11 ECE 667 - Synthesis & Verification 11 Example 0111 0110 0011 0101 1110 1000 3456 110 011 101 456 111 110 011 101 456 Cyclic Core Essential primes + column dominance: G = P1 + P3 Essential prime + column dominance G = P1 Row dominance 1234567 P4 dominates P7 P1 is essential P3 dominates P2 P3 is essential

12 ECE 667 - Synthesis & Verification 12 Solving the Cyclic Core Best known method (for unate covering) is branch and bound with some clever bounding heuristics. Independent Set Heuristic: – –Find a maximum set of “independent” rows I. – –Two rows B i, B k are independent if they have no column in common Example: Covering matrix B rearranged with independent sets first. I = Independent set of rows B = 11 1111 11 0 A 1 C

13 ECE 667 - Synthesis & Verification 13 Lemma: | Cover |  | I | Solving the Cyclic Core 11 1111 11 0 A 1 C I

14 ECE 667 - Synthesis & Verification 14 Heuristic Let I = { I 1, I 2, …, I k } be the independent set of rows 1. 1.Choose column j  I i which covers the most rows of A. 2. 2.Put j  J 3. 3.Eliminate all rows covered by column j 4. 4.Update I  I \ {I i } 5. 5.If | I |  0, go to step 1 6. 6.If B is empty, then done (in this case we have the guaranteed minimum solution, |J| = |I |) else, choose an independent set of B and go to 1 11 1111 11 0 A 1 C Can you think of some Improved heuristics? What about weighted optimization problem: min  w i ?

15 ECE 667 - Synthesis & Verification 15 Branch and Bound Algorithm (generic)

16 ECE 667 - Synthesis & Verification 16 Generating Primes - single output func. Tabular method (based on consensus operation): Start with all minterm canonical form of F Group pairs of adjacent minterms into cubes Repeat merging cubes until no more merging possible; mark (  ) + remove all covered cubes. Result: set of primes of f. Example: F = x’ y’ + w x y + x’ y z’ + w y’ z w’ x’ y’ z’  w’ x’ y’ z  w’ x’ y z’  w x’ y’ z’  w x’ y’ z  w x’ y z’  w x y z’  w x y’ z  w x y z  w’ x’ y’  w’ x’ z’  x’ y’ z’  x’ y’ z  x’ y z’  w x’ y’  w x’ z’  w y’ z w y z’ w x y w x z x’ y’ x’ z’ F = x’ y’ + w x y + x’ y z’ + w y’ z

17 ECE 667 - Synthesis & Verification 17 Generating Primes – multiple outputs Procedure similar to single-output function, except: – –include also the primes of the products of individual functions Example: x y z 0 – 0 0 1 1 1 – 1 f 1 f 2 0 1 1 1 0 x y z 0 – 0 0 1 – – 1 1 1 – 1 f 1 f 2 0 1 1 0 x y z 000100 110 010 111011 001 000100 110 010 111011 001 f1f1 f2f2 101

18 ECE 667 - Synthesis & Verification 18 Generating Primes - example Modification (w.r.t single output function): – –When two adjacent implicants are merged, the output parts are intersected There are five primes listed for this two-output function. - What is the min cover ? f2f2 000100 110 010 111011 001 000100 110 010 111011 001 f1f1 101 000 | 01  010 | 01  011 | 11 101 | 10  111 | 10  0 – 0 | 01 0 1 – | 01 – 1 1 | 10 1 – 1 | 10 x y z 0 – 0 0 1 – – 1 1 1 – 1 f 1 f 2 0 1 1 0

19 ECE 667 - Synthesis & Verification 19 Minimize multiple-output cover - example List multiple-output primes Create a covering table, solve f1f1 f2f2 000100 110 010 111011 001 000100 110 010 111 011 001 101 p 1 = 0 1 1 | 11 p 2 = 0 – 0 | 01 p 3 = 0 1 – | 01 p 4 = – 1 1 | 10 p 5 = 1 – 1 | 10 000 | 01 010 | 01 011 | 01 011 | 10 101 | 10 111 | 10 IMPORTANT: Multiple-output minterms must be split into individual, single-output cubes to solve covering 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 1 p 1 p 2 p 3 p 4 p 5 Min cover has 3 primes: F = { p 1, p 2, p 5 }

20 ECE 667 - Synthesis & Verification 20 Summary Q-M: 1. Generate cover of all primes 2. Make G irredundant (in optimum way) Note: Q-M is exact i.e., it gives an exact minimum Heuristic Methods: 1.Generate (somehow) a cover of F using some of the primes 2.Make G irredundant (maybe not optimally) 3.Keep best result - try again (go to 1)


Download ppt "ECE 667 - Synthesis & Verification 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Exact Two-level Minimization Quine-McCluskey Procedure."

Similar presentations


Ads by Google