



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of espresso, a popular heuristic algorithm used for boolean logic optimization. The algorithm utilizes local search techniques to expand and reduce implicants, aiming to find a good, if not optimal, solution. The expand, reduce, and irredundant operators, as well as additional concerns such as validity checks and which direction to expand or reduce.
Typology: Study notes
1 / 5
This page cannot be seen from the preview
Don't miss anything!




ECE 474a/575a Susan Lysecky
1 of 15
Lecture 9
ESPRESSO
ECE 474a/575a Susan Lysecky
2 of 15
Some Problems are Hard
ECE 474a/575a Susan Lysecky
3 of 15
Logic Optimization Techniques
ECE 474a/575a Susan Lysecky
4 of 15
Local Search
cost of a solution
possible solutions
x
F(x)
Different problems have different neighborhood definitions
ECE 474a/575a Susan Lysecky
5 of 15
Local Search
F(x)
x
local minimum
global/absolute minimum
ECE 474a/575a Susan Lysecky
6 of 15
Espresso
ECE 474a/575a Susan Lysecky
10 of 15
Espresso – Reduce Operator
0 1 1 1
00 01 11 10
1 1
0
1 0 1
F yz x
x’z x’y
xy’ xz’
Reduce x’y to x’yz’
No implicant can be expanded
Is it valid? Yes.
0 1 1 1
00 01 11 10
1 1
0
1 0 1
F yz x
x’z x’yz’
xy’ xz’
Is it valid? Yes.
Reduce xz’ to xyz’
Is it valid? Yes.
Expand x’yz’ to yz’
0 1 1 1
00 01 11 10
1 1
0
1 0 1
F yz x
x’z
xy’ yz’
F = x’z + yz’ + xy’
Reduction helped find a better solution!
0 1 1 1
00 01 11 10
1 1
0
1 0 1
F yz x
x’z x’yz’
xy’ xyz’
ECE 474a/575a Susan Lysecky
11 of 15
Espresso – Irredundant Operator
yz’ is redundant
x’y and xz’ cover all minterms contained in yz’
F yz x
x’z (^) x’y
xy’
yz’
xz’
F yz x
x’z x’y
xy’
xz’
ECE 474a/575a Susan Lysecky
12 of 15
Espresso – Irredundant Operator
F yz x
x’z x’y
xy’
xz’
F yz x
x’z
xy’
yz’
irredundant cover
irredundant cover
minimal cover
ECE 474a/575a Susan Lysecky
13 of 15
Espresso – Additional Concerns
F (^) bc a
(^0 1 0 0) ab
F (^) bc a abc
F (^) bc a bc
which way should we expand?
F yz x
x’z x’y
xy’
yz’
xz’
which implicant should we reduce? which literal should we add?
ECE 474a/575a Susan Lysecky
14 of 15
Espresso
espresso(F,D) { R = complement(F U D); F = expand(F,R); // initial expansion F = irredundant(F,D); // initial irredundant cover E = essentials(F,D); // detect essential prime implicants
F = F – E; // remove essential prime implicants from f D = D U E; // add essential prime implicants to D repeat { φ 1 = |F |; F = reduce(F,D);
F = expand(F,R); F = irredundant(F,D); } until (|F | ≥ φ 1 ); F = F U E; D = D – E;
RETURN F; }
repeated application of REDUCE, EXPAND, IRREDUNDANT operations while cost keeps decreasing
F is the on-set, D is the don’t care set
ECE 474a/575a Susan Lysecky
15 of 15
ESPRESSO, to be continued…