Professional Documents
Culture Documents
Definitions
Heuristic two-level minimization
Espresso algorithm
Homework
Espresso phases
Goal: two-level logic realizations with fewest gates and fewest number Upper bound on number of prime implicants grows 3n/n where n is the
of gate inputs number of inputs
Algebraic Given > 16 inputs, can be intractable
Karnaugh map However, there have been advances in complete solvers for many
Quine–McCluskey functions
Optimal solutions are possible for some large functions
Espresso heuristic
5 Robert Dick Advanced Digital Logic Design 6 Robert Dick Advanced Digital Logic Design
For difficult and large functions, solve by heuristic search Generate only a subset of prime implicants
Multi-level logic minimization is also best solved by search Carefully select prime implicants in this subset covering on-set
The general search problem can be introduced via two-level Guaranteed to be correct
minimization May not be minimal
Examine simplified version of the algorithms in Espresso
Usually high-quality in practice
7 Robert Dick Advanced Digital Logic Design 9 Robert Dick Advanced Digital Logic Design
10 Robert Dick Advanced Digital Logic Design 11 Robert Dick Advanced Digital Logic Design
Review of logic minimization Review of logic minimization
Definitions Definitions
Heuristic two-level minimization Heuristic two-level minimization
Espresso algorithm Espresso algorithm
Homework Homework
Espresso phases Espresso phases
Tautology checking Tautology checking
f (a, b , c ) ab
00 01 11 10
0 1 0 1
If a formula contains AB and B , AB ⊆ B ⇒ AB is redundant c
Sometimes redundancy is difficult to observe 1 1 1 1 1
If f = BC + AB + AC , then AB is redundant
12 Robert Dick Advanced Digital Logic Design 14 Robert Dick Advanced Digital Logic Design
f (a, b , c ) ab f (a, b , c ) ab
00 01 11 10 00 01 11 10
0 1 0 1 0 0 0 0 1
c c
1 1 1 1 1 1 1 1 0 1
B C + A C + AB C
Reduce: AB C + A C + AB C
Sometimes necessary to increase cost to escape local minima
Expand: AB + A C + AB C
Add a literal to a cube (reduction)
Irredundant cover: AB + A C
To later allow expansion in another dimension
15 Robert Dick Advanced Digital Logic Design 16 Robert Dick Advanced Digital Logic Design
17 Robert Dick Advanced Digital Logic Design 18 Robert Dick Advanced Digital Logic Design
21 Robert Dick Advanced Digital Logic Design 22 Robert Dick Advanced Digital Logic Design
23 Robert Dick Advanced Digital Logic Design 25 Robert Dick Advanced Digital Logic Design
26 Robert Dick Advanced Digital Logic Design 27 Robert Dick Advanced Digital Logic Design
c is a 1-cube a b c f
Check to see whether the union of 1-cubes and don’t-care cubes 0 X X 1
minus c, cofactored by c, is a tautology X 0 X 1
X X 1 1
Let A be the set of 1-cubes
1 X 1 1
Let D be the set of don’t-care cubes 1 0 0 X
((A ∪ D) − c)c 6= 1 ⇔ c is relatively essential
That’s it: You can use tautology checking to determine whether Find the relatively essential cubes
a cube is relatively essential Find totally redundant cubes
Of course, an example would make it clearer Find partially redundant cubes
29 Robert Dick Advanced Digital Logic Design 30 Robert Dick Advanced Digital Logic Design
Review of logic minimization Review of logic minimization
Definitions Definitions
Heuristic two-level minimization Heuristic two-level minimization
Espresso algorithm Espresso algorithm
Homework Homework
Espresso phases Espresso phases
Tautology checking Tautology checking
31 Robert Dick Advanced Digital Logic Design 32 Robert Dick Advanced Digital Logic Design
33 Robert Dick Advanced Digital Logic Design 34 Robert Dick Advanced Digital Logic Design
35 Robert Dick Advanced Digital Logic Design 36 Robert Dick Advanced Digital Logic Design
a b c f
0 0 X 1
Unate functions are difficult to identify X 1 1 1
A cover is unate as long as the complemented and X 1 0 1
uncomplimented literals for the same variable do not both appear 0 1 1 X
Identifying unate covers is easy
Scan the columns for the presence of a 0 and 1
Note, some unate functions can have non-unate covers
Unate covers always express a unate function
39 Robert Dick Advanced Digital Logic Design 40 Robert Dick Advanced Digital Logic Design
Unate cover tautology checking Fast tautology checking using unate covers
41 Robert Dick Advanced Digital Logic Design 42 Robert Dick Advanced Digital Logic Design
43 Robert Dick Advanced Digital Logic Design 44 Robert Dick Advanced Digital Logic Design
Assume
a c + bc + a b c
C = x1 · F1 (x2 , . . . , xn ) + F2 (x2 , . . . , xn )
Cover unate only in a
Then the Cx1 cofactor is ¡ ¢
F1 (x2 , . . . , xn ) + F2 (x2 , . . . , xn ) a c + bc + a b c a = bc
¡ ¢
and the Cx1 cofactor is a c + bc + a b c a = c + bc + b c
F2 (x2 , . . . , xn ) F1 = c + b c
F2 = bc
45 Robert Dick Advanced Digital Logic Design 46 Robert Dick Advanced Digital Logic Design
Review of logic minimization Review of logic minimization
Definitions Definitions
Heuristic two-level minimization Heuristic two-level minimization
Espresso algorithm Espresso algorithm
Homework Homework
Espresso phases Espresso phases
Tautology checking Tautology checking
Fast tautology checking using unate covers Tautology checking final version
47 Robert Dick Advanced Digital Logic Design 48 Robert Dick Advanced Digital Logic Design
a b c f
Identify unate covers
0 X 0 1
No columns with 1s and zeros
1 0 X 1
If unate, scan for an XXX |1 row X 1 1 1
If not unate, cofactor on (preferable) unate variable 1 X 1 1
Only need to consider uncomplemented or uncomplemented X 0 0 1
cofactor 1 0 0 X
Why? F2 ≤ F1 + F2 Relatively essential check for 0X 0|1?
Full check on c.
49 Robert Dick Advanced Digital Logic Design 50 Robert Dick Advanced Digital Logic Design
51 Robert Dick Advanced Digital Logic Design 52 Robert Dick Advanced Digital Logic Design
CAD Questions
53 Robert Dick Advanced Digital Logic Design 54 Robert Dick Advanced Digital Logic Design
Review of logic minimization
Definitions
Heuristic two-level minimization Heuristic two-level minimization
Espresso algorithm
Homework Homework
Espresso phases
Tautology checking
55 Robert Dick Advanced Digital Logic Design 57 Robert Dick Advanced Digital Logic Design