Title: Exact and heuristic minimization of Boolean functions
1Exact and heuristic minimization of Boolean
functionsÂ
a)Â Generation of all prime implicants b)
Selection of a minimum subset of prime
implicants, which will represent the original
function (cover)
? Combines many of the best heuristic
algorithms ? Uses iterative improvement strategy
2Algorithms used in ESPRESSO
F,D
Complement
The algorithms are fully detailed in
Expand
Essential primes
Irredundant-Cover
Reduce
F
M
Last-gasp
ESPRESSO is available as a public domain software
3Modified Expansion Method
Joins ideas of Quine McCluskey as well
as Espresso method
a)Â Generation of prime implicants (from
Espresso) b) Selection of prime implicants (from
Quine McCluskey)
The method has been implemented in program PANDOR
which is available on www.zpt.tele.pw.edu.pl
Navigate to SOFTWARE and then to PANDOR
4Basic notions
A cube is a row vector, which entries take
values 0, 1, ?.
The entry ? in the cube is referred to as input
dont care.
K (0?1?), means the set of binary vectors
(minterms) 0010 0011 0110 0111Â
A cube represents product of literalsK 0?1?
5Notations
For boolean function f, we define the on-set
fON, the set of input values x such that f(x)
1, the off-set fOFF, the set of input values x
such that f(x) 0, and the dont care-set
fDC, the set of input values x such that f(x) ?
.
The on-set fON, off-set fOFF, and dont care-set
fDC are also denoted as F, R, and D, respectively.
Then f (F, R)
6Example (EXTL)
7Expand
Ekspansja is the procedure which expands a cube
k ÃŽ F, into a prime implicant, in such a way
that the prime cube d be as large as possible
i.e. with the largest number of entries equal to
?. The EXPAND strategy is guided by a blocking
matrix, B.
Expand
8Blocking matrix
The blocking matrix B(k,R) is a binary matrix
determined by the cube k to be expanded and by
R, the cover of the off-set. The elements of
B(k,R) bij, are defined as follows bij
1, if kj 1 and rij 0 or kj 0 and rij
1 bij 0, otherwise.
The blocking matrix for a given k ? F arises from
matrix R by complementation the columns of R,
which entries are indicated by entries equal to 1
in the cube k.
9Creating a blocking matrix
Having matrices F and R we create blocking
matrix determined by the cube k1 (the first row
of F
As k1 (0100101), to create B it is enough to
invert the second, fifth and the seventh column
of matrix R. Thus B(k1,R)
10Column cover
The set L (L ? 1,...,n) columns of B is said a
column cover if for each row i there exists
column j ? L, such that bij 1.
Each row must have a 1 in at least one of the
columns which correspond to minimal column cover.
The set L is a minimum column cover of B, if
there does not exist the set LÂ (forming the
column cover) such, that L ? L.
11Finding a minimal column cover
Loking at the matrix B we can guess some covers
L 4,7 the minimal column cover.
L 2,3,6 the minimal column cover.
L 2,3 no,
L 2,6 no,
L 3,6 no.
12Finding a minimal column cover
L6, L7
L3, L4
L2, L4
L2, L3, L7
(L6 L7) (L3 L4) (L2 L4) (L2 L3 L7)
(L4 L2)(L4 L3)( L7 L6)(L7 L2 L3)
(L4 L2 L3)(L7 L6(L2 L3)) (L4 L2
L3)(L7 L2L6 L3L6) L4 L7 L2 L4L6 L3L4L6
L2 L3L7 L2 L3L6 L2 L3L6
13Generation of prime implicants
The blocking matrix B(k,R) allows finding
expanded cube denoted k(L,k) as follows all
entries of k belonging to L are not subject of
changing, whereas entries beyond the set L take
the value ?.
The expanded cube k is an implicant of function f
(F,R).
If L is a minimum column-cover of B(k,R), then
k(L,k) is a largest prime implicant of f (F,R)
containing k. ,
14Generation of prime implicants - example
Given k2 (1000110) and matrix B
set L 4,7 is a minimum column cover of B, so
k2 (1000110)
k(L, k2) (???0??0),
thus an implicant of F is
Whereas for L 2,3,6 (another column cover),
k(L,k) (?00??1?)
15Set of prime implicants
Expanding the input minterms one after the other
we obtain the following set of prime implicants
k4 the same as I3
Having a list of prime implicants F we can apply
the next step i.e. selection of a minimal subset
of them to cover all the 1s of the function.
16 but before an auxiliary notion
Cube c covers cube d (c ? d) if for each i such
that ci 0 or ci 1, the corresponding di ci.
17Prime implicant table
Recall the set of primary minterms
18Prime implicant table
Each entry is a bit that is 1 if the prime
implicant for that column covers the minterm for
that row, otherwise the entry is 0.
19Selection of prime implicants
Other description
I1, I2I3, I4I3, I5, I6, I7I3I2, I7
I1, I2I2, I7
Minimal cover
I2,I3
Minimal expression
20PANDOR
The method has been implemented in program PANDOR
which is available on www.zpt.tele.pw.edu.pl
Navigate to SOFTWARE and then to PANDOR