6.371
- 1 -
Two-Level Boolean Minimization
Two-Level Boolean Minimization
Two-level Boolean minimization is used to find a sum-of-products representation for a multiple-
output Boolean function that is optimum according to a given cost function.
The typical cost
functions used are the number of product terms in a two-level realization, the number of literals,
or a combination of both. The two steps in two-level Boolean minimization are:
1.
Generation of the set of
prime product-terms
for a given function.
2.
Selection
of a minimum set of prime terms to implement the function.
We will briefly describe the Quine-McCluskey method which was the first algorithmic method
proposed for two-level minimization and which follows the two steps outlined above.
State-of-
the-art logic minimization algorithms are all based on the Quine McCluskey method and also
follow the two steps above.
Prime Term Generation
The Quine-McCluskey method is best illustrated with an example.
Consider the completely
specified Boolean function shown in (1A).
It has been represented as a list of
0-terms
,
which are
fully specified product terms with no don't-care entries.
Next, each 0-term has an associated
decimal value obtained by converting the binary number represented by the 0-term into a decimal
number—for instance the value of
0000
is
0
and that of
1110
is
14
.
Each pair of 0-terms is
checked to see if they can be merged into a single 1-term.
Two 0-terms can be merged if they
differ in exactly one position.
The terms generated in our example by merging the pairs of 0-
terms are shown in (1B).
These terms are called 1-terms because they have exactly one “
—
“
entry.
Next, these l-terms are examined in pairs to see if they can be merged into 2-terms.
This
can only be done if the 1-terms differ in exactly one position and they have their “
—
“ literal in the
same position.
Two 2-terms can be formed as shown in (1C).
If a k-term is formed by merging
two (k-l)-terms, then the two (k-1) l-terms are not primes and are marked so that they can be
discarded later.
The process ends when no merging is possible in the final set of L-terms.
The
unmarked k-terms, where O <
k <
L, are the complete set of prime terms of the function.
The five
prime terms for the function in this example are in
bold
type and labelled [A] through [E].
In the
case of incompletely specified functions the initial list of 0-terms includes those 0-terms in the
ON-set
and the DC-set (don't-care set).
0
0000
0, 8
-000
[E]
8,9,10,11
10-- [B]
5
0101
5, 7
01-1 [D]
10,11,14,15
1-1- [A]
7
0111
7,15
-111 [C]
8
1000
8, 9
100-
9
1001
8,10
10-0
10
1010
9,11
10-1
11
1011
10,11
101-
14
1110
10,14
1-10
15
1111
11,15
1-11
14,15
111-
(1A) 0-terms
(1B) 1-terms
(1C) 2-terms
Prime Term Table
We now construct the prime term table as shown below.
The rows of the prime term table are the
0-terms of the ON-set
of the function (we do not need to choose 0-terms in the DC-set) and the
columns are the prime terms.
An "X" in the prime term table in row i and column j signifies that