Quine-McCluskey (Tabular) Minimization
Two step process utilizing tabular listings to: • Identify prime implicants (implicant tables)
• Identify minimal PI set (cover tables)
All work is done in tabular form • Number of variables is not a limitation
• Basis for many computer implementations
• Don’t cares are easily handled
Proper organization and term identification are key factors for correct results
2
Difficulty
Note: Can be 2n minterms ~ 3n/n primes
Thus O(2n) rows and O(3n/n ) columns AND minimum covering problem is NP-complete. Hence can probably be double exponential in size of input, i.e. difficulty is O(23n)
0
1
0
0
1 0
3n/n
minterms
primes
2n
3
Example
Primes: y + w +xz
Covering Table
Solution: {1,2} y + w is minimum prime cover.
(also w +xz)
F xyzw xyzw xyzw xyzw
D yz xyw xyzw xyw xyzw
dd
ddd
dd
dd
00
1
11
01xy xy xy xy
zw
z w
z w
zw
xz
w Karnaugh map
010
011
110
101
y w xz
xyz w
x y z w
x yz w
xyzw
y
4
Covering Table
Definition: An essential prime is any prime that uniquely covers a minterm of f.
010
011
110
101
y w xz
xyz w
x y z w
x yz w
xyzw
Primes of f+d
Minterms of f
Essential prime
Row singleton (essential minterm)
Quine-McCluskey Minimization (cont.)
Terms are initially listed one per line in groups • Each group contains terms with the same number of true
and complemented variables
• Terms are listed in numerical order within group
Terms and implicants are identified using one of three common notations • full variable form
• cellular form
• 1,0,- form
Example of Different Notations
F(A, B, C, D) = m(4,5,6,8,10,13)
1 ABCD 4 0100
ABCD 8 1000
2 ABCD 5 0101
ABCD 6 0110
ABCD 10 1010
3 ABCD 13 1101
Full variable Cellular 1,0,-
Notation Forms
Full variable form - variables and complements in algebraic form • hard to identify when adjacency applies
• very easy to make mistakes
Cellular form - terms are identified by their decimal index value • Easy to tell when adjacency applies; indexes must differ by
power of two (one bit)
1,0,- form - terms are identified by their binary index value • Easier to translate to/from full variable form
• Easy to identify when adjacency applies, one bit is different
• shows variable(s) dropped when adjacency is used
Different forms may be mixed during the minimization
Implication Table (1,0,-)
Quine-McCluskey Method • Tabular method to systematically
find all prime implicants
• ƒ(A,B,C,D) = Σ m(1,2.5,6,7,9,10) +
Σ d(0,13,15)
• Part 1: Find all prime implicants
• Step 1: Fill Column 1 with active-set and DC-set minterm indices. Group by number of true variables (# of 1’s).
NOTE THAT DCs ARE INCLUDED IN THIS STEP!
Implication Table Column I 0000 0001 0010 0101 0110 1001 1010 0111 1101 1111
Minimization - First Pass (1,0,-)
Quine-McCluskey Method • Tabular method to systematically find
all prime implicants
• ƒ(A,B,C,D) = Σ m(1,2.5,6,7,9,10) +
Σ d(0,13,15)
• Part 1: Find all prime implicants
• Step 2: Apply Adjacency - Compare elements of group with N 1's against those with N+1 1's. One bit difference implies adjacent. Eliminate variable and place in next column.
E.g., 0000 vs. 0100 yields 0-00
0000 vs. 1000 yields -000
When used in a combination, mark with a check. If cannot be combined, mark with a star. These are the prime implicants.
Repeat until nothing left.
Implication Table Column I 0000 0001 0010 0101 0110 1001 1010 0111 1101 1111
Column II 000- 00-0 0-01 -001 0-10 -010 01-1 -101 011- 1-01 -111 11-1
Minimization - Second Pass (1,0,-)
Implication Table Column I 0000 0001 0010 0101 0110 1001 1010 0111 1101 1111
Column II 000- * 00-0 * 0-01 -001 0-10 * -010 * 01-1 -101 011- * 1-01 -111 11-1
Column III - -01 * - 1-1 *
Quine-McCluskey Method • Step 2 cont.: Apply Adjacency -
Compare elements of group with N 1's against those with N+1 1's. One bit difference implies adjacent. Eliminate variable and place in next column.
E.g., 0000 vs. 0100 yields 0-00
00-0 vs. 10-0 yields -0-0
When used in a combination, mark with a check. If cannot be combined, mark with a star. THESE ARE THE PRIME IMPLICANTS.
Repeat until nothing left.
The set of constitutes the Complete Sum c
Prime Implicants
Prime Implicants:
C B A - 000
D C A 10-0
D B A 0-00
D C B 010-
C B A - 011 D B 1-1-
D C 01 --
X 1 0 1
0 1 1 1
0 X X 0
0 1 0 1
C D 00 01 11
01
11
10 A
A B
C
B
D
00
10
Stage 2: find smallest set of prime implicants that cover the active-set Note that essential prime implicants must be in
final expression
rows = prime implicants columns = ON-set elements (minterms)
place an "X" if ON-set element is covered by the prime implicant
Coverage Chart
0,1 000- 0,2 00-0 2,6 0-10 2,10 -010 6,7 011- 1,5,9,13 --01 5,7,13,15 -1-1
1 X X
2 X X X
5 X X
6 X X
7 X X
9 X
10 X
Coverage Table
NOTE: DON’T INCLUDE DCs IN COVERAGE TABLE; THEY DON’T HAVE COVERED BY THE FINAL LOGIC EXPRESSION!
14
Row and Column Dominance
Definition: Given two rows i1 and i2, a row i1 is said to dominate i2 if it has checks in all columns in which i2 has checks, i.e. it is a superset of i2
Example: i1 x x x x x x i2 x x x x i1 dominates i2
We can remove row i2, because we would never choose i2 in a
minimum cover since it can always be replaced by i1 (i2 is anymore a prime implicant).
DOMINATED ROWS CAN BE ELIMINATED
15
Row and Column Dominance
Definition: Given two colums j1 and j2, if the set of primes of column j2 is contained in the set of primes of column j1 is said to be dominated by j1.
Example: j1 dominates j2 We can remove column j1 since we have to choose a prime to cover
j2, any such prime also covers j1, that would result covered as well.
DOMINATING COLUMNS CAN BE ELIMINATED
j1 j2 x x x
x x x
16
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 dominated rows. 3. Remove dominating columns. For equal columns, keep just one
to represent them. 4. Newly formed row singletons define n-ary essential primes. 5. Go to 1 if covering table decreased. The algorithm may terminate successfully with a set of
primes and an emty table. In case it terminate with a non empty table, the resulting reduced covering table is called the cyclic core. This has to be solved. A minimum solution for the cyclic core must be added to the resulting G.
Coverage Table (cont.)
rows = prime implicants columns = ON-set elements place an "X" if ON-set element is covered by the prime implicant
Coverage Chart
0,1 000- 0,2 00-0 2,6 0-10 2,10 -010 6,7 011- 1,5,9,13 --01 5,7,13,15 -1-1
1 X X
2 X X X
5 X X
6 X X
7 X X
9 X
10 X
If column has a single X, than the implicant associated with the row is essential. It must appear in minimum cover
0,1 000- 0,2 00-0 2,6 0-10 2,10 -010 6,7 011- 1,5,9,13 --01 5,7,13,15 -1-1
1 X X
2 X X X
5 X X
6 X X
7 X X
9 X
10 X
Coverage Table (cont.)
F = BCD + ABC + CD
Eliminate all columns covered by essential primes
0,1 000- 0,2 00-0 2,6 0-10 2,10 -010 6,7 011- 1,5,9,13 --01 5,7,13,15 -1-1
1 X X
2 X X X
5 X X
6 X X
7 X X
9 X
10 X
Find minimum set of rows that cover the remaining columns
0,1 000- 0,2 00-0 2,6 0-10 2,10 -010 6,7 011- 1,5,9,13 --01 5,7,13,15 -1-1
1 X X
2 X X X
5 X X
6 X X
7 X X
9 X
10 X
Quine Mc Clunskey: Cyclic Core example
F=5(0,1,3,16,18,19,23,28,30,31)
F=v’w’y’x’+v’w’x’z+w’x’y’z’+w’x’yz+vw’x’z’+vw’x’y+vwxz’+vwxy+vw’yz+vxyz A B C D E F G H I J
X
Y
Z
W
V = 0
X
Z
W
V = 1 Y
1 1 1 1 1 1
1
1 1 1
Implication Table (1,0,-)
Quine-McCluskey Method • Tabular method to systematically
find all prime implicants
• ƒ(v,w,x,y,z) = Σm(0,1,3,16,18,19,23,28,30,31)
• Part 1: Find all prime implicants
• Step 1: Fill Column 1 with active-set and DC-set minterm indices. Group by number of true variables (# of 1’s).
Implication Table Column I
00000
0 0 001 1 0000
0 0 01 1 1 0 01 0
1 0 0 1 1 1 1 10 0
10 1 1 1 1 1 1 1 0
1 1 11 1
Column II
0000- * -0000 *
000-1 * 100-0 * -0011 * 1001- *
10-11 * 111-0 *
1-111 * 1111- *
A: 0 1 C: 0 16
B: 1 3 E:16 18
D: 3 19 F: 18 19
I: 19 23 G: 28 30
J: 23 31 H: 30 31
F=v’w’y’x’+v’w’x’z+w’x’y’z’+w’x’yz+vw’x’z’+vw’x’y+vwxz’+vwxy+vw’yz+vxyz
A B C D E F G H I J
Quine Mc Clunskey
F=5(0,1,3,16,18,19,23,28,30,31)
0 1 3 16 18 19 23 28 30 31
A x x
B x x
C x x
D x x
E x x
F x x
G x x
H x x
I x x
J x x
G+J+A+D+E; G+J+B+C+F; G+J+C+B+F; G+J+D+A+E; G+J+E+A+D; G+J+B+C+F.
Quine Mc Clunskey: Cyclic Core example
F=5(0,1,3,16,18,19,23,28,30,31)
F=v’w’y’x’+v’w’x’z+w’x’y’z’+w’x’yz+vw’x’z’+vw’x’y+vwxz’+vwxy+vw’yz+vxyz A B C D E F G H I J
X
Y
Z
W
V = 0
X
Z
W
V = 1 Y
1 1 1 1 1 1
1
1 1 1
PRIME ESSENTIAL
f2
000 100
110
010
111 011
001
000 100
110
010
111 011
001
f1
101 101
23
Generating Primes – multiple outputs
Example: f1(x, y, z) = m(3,5,7), f2(x, y, z) = m(0,2,3)
x y z
- 1 1
1 – 1
f1=yz+zx
x
y z
x z
y x
z
x
f1
f2
–
– – z
x
z y
z
x y
f1
f2 x – – z
–
The idea is that we can
share terms: using
separate optimizations 6
gates, sharing a term 5
gates.
x y z
0 – 0
0 1 –
f2=xz+xy
- - -
f1 f2= (yz+zx)(xz+xy)
f1 f2 = xyz
- - -
-
24
Generating Primes – multiple outputs
Theorem: if p1 is a prime implicant for f1, and p2 is a prime implicant for f2, then if p1.p20, p1.p2 is a prime implicant of f1.f2
Theorem: if p3 is a prime implicant for f1.f2, then there exist p1 for f1, and p2 for f2, such that p3=p1.p2
We can conclude that all prime implicants of f1.f2, are minimal sharable products for f1 and f2: and that all prime implicants for f1.f2 are created by products of prime implicants for f1.f2
The way to use this is to make the prime implicants of f1.f2 available to the minimizations of f1 and f2 by extending the table concept
Generating Primes – multiple outputs
Procedure similar to single-output function, except: include also the primes of the products of individual functions
f1 minterms f2 minterms
Rows for f1 prime implicants: mark only f1 columns
Rows for f2 prime implicants: mark only f2 columns
Rows for f1f2 prime implicants: mark both f1f2 columns
26
Minimize multiple-output cover
Example, cont.
f1 f2
000 100
110
010
111 011
010
000 100
110
010
111 011
010
101 101 Min cover has 3 primes:
F = { p2, p4, p5 }
-
m3 = 0 1 1
m5 = 1 0 1
m7 = 1 1 1
m0 = 0 0 0
m2 = 0 1 0
m3 = 0 1 1
m3 = 0 1 1
p1 = y z
p2 = x z
p3 = x y
p4 = x z
p5 = x y z
-
-
-
f1
f2
f1 f2
m3 m5 m7 m0 m2 m3
p1
p2
p3
p4
p5
m3 m3
p1
p3
p5
Note that selecting p5 and removing all columns the marks
coverage is complete