Section 7.3: Minimization

Abstract:

The word ``minimization'' in the title of this section refers to our pursuit of simplified but equivalent Boolean expressions. Our objective is to start with the canonical form of a truth table, and reduce it to a simpler expression, which is easier to implement in hardware....

Overview

In Section 7.2, we discovered that there is a relatively simple way of passing back and forth between representations of a truth function (table), boolean expression, and logic network. In particular, we saw that, given a truth table, it is simple to construct a Boolean expression (the canonical form) which is a sum of products. Unfortunately, this expression is often much more complicated than necessary.

In this section, we discover two methods for dealing with truth tables, and turning them into simple Boolean expressions. The Karnaugh Map turns a truth table into an equivalent matrix, which we can operate on; the Quine-McCluskey procedure also operates on the truth table, and makes selective deletions to trim down to a manageable Boolean expression.

Simplification and the Karnaugh Map

A couple of simple equivalence rules make our life easy:

displaymath220

We demonstrate the utility of these two rules in the following simplification:

Example 17, p. 509. Consider the canonical form given by

displaymath221

We demonstrate how rule (1) works as follows:

displaymath222

Now we're set up for the use of rule (2):

displaymath223

To demonstrate rule (2) above, we get to use that wacky distributive rule:

displaymath224

Karnaugh Map Examples

Here's a two-variable example (XOR, from last time): tex2html_wrap_inline238

tabular72

Example 17: tex2html_wrap_inline248

tabular80

While the position of the boolean variables in the 2x2 example above is arbitrary, not so for the column labels of the 3x3 example above: notice that there is a single change in the Boolean expressions as you read across the top. Note also that the far left and right expressions are also only different by one change. We could wrap this table and put it onto a cylinder.

A four-variable example.

tabular92

In this case, there is nothing arbitrary about either row- or column-labels: you could wrap top to bottom and right to left, which means that this table could be wrapped onto a torus (or donut shape).

In this section we study a method for simplification, not just representation, so how do we simplify?

displaymath230

displaymath231

displaymath232

Check out this trick (idempotence):

displaymath233

Example 17: tex2html_wrap_inline248

tabular80

Note that we need to wrap to do this one; furthermore see how much more simply we simplify this expression than we did up top: we use idempotence, then the simplification rule (1) twice (not needing the second).

There may be multiple simplifications of a Boolean expression:

Exercise #1, p. 523

We may need to look for quads, rather than pairs:

Exercise #4, p. 523

Simplification and the Quine-McCluskey procedure

In this procedure, we do exactly the same thing as in Karnaugh, but we do it without the matrix (or table). We search for those elements of the truth table which differ by a single entry, and then reduce them.

We may have to do the reduction in several steps, as illustrated in Table 7.16, p. 520. Part (c) of that table represents a square of four 1s in the Karnaugh map.

In the end, we have to determine which of the resultant products is necessary to recreate the initial truth table. We do this with a second type of table, as illustrated in Table 7.17, p. 520.

Practice 19, p. 522.

Furthermore, it is sometimes easier to use the Quine-McCluskey procedure on the complement of the truth function, if the complement has fewer 1 entries.

Exercise 14, p. 526.



LONG ANDREW E
Tue Apr 16 19:16:04 EDT 2002