Simplification of
Boolean Functions Using K-Map
|
Since there are an infinite variety of boolean functions of n
variables but only a finite number of unique boolean functions of those n
variables you might wonder if there is some method that will simplify a given
boolean function to produce the optimal form. Of course you can always use
algebraic transformations to produce the optimal form but using heuristics does
not guarantee an optimal transformation. There are however two methods that
will reduce a given boolean function to its optimal form: the map method and
the prime implicants method. In this text we will only cover the mapping method
see any text on logic design for other methods.
Since for any logic function some optimal form must exist you may
wonder why we don't use the optimal form for the canonical form. There are two
reasons. First there may be several optimal forms. They are not guaranteed to
be unique. Second it is easy to convert between the canonical and truth table
forms.
Using the map method to optimize boolean functions is practical only
for functions of two three or four variables. With care you can use it for
functions of five or six variables but the map method is cumbersome to use at
that point. For more than six variables attempting map simplifications by hand
would not be wise.
The first step in using the map method is to build a
two-dimensional truth table for the function:
Warning: Take a careful look at these truth tables. They do not
use the same forms appearing earlier in this chapter. In particular the
progression of the values is 00 01 11 10 not 00 01 10 11. This is very
important! If you organize the truth tables in a binary sequence the mapping
optimization method will not work properly. We will call this a truth map to
distinguish it from the standard truth table.
Assuming your boolean function is
in canonical form (sum of minterms) insert ones for each of the truth map
entries corresponding to a minterm in the function. Place zeros everywhere
else. For example consider the function of three variables F=C'B'A + C'BA' + C'BA + CB'A' + CB'A + CBA' + CBA. The
figure below shows the truth map for this function.
The next step is to draw rectangles around rectangular groups of
ones. The rectangles you enclose must have sides whose lengths are powers of
two. For functions of three variables the rectangles can have sides whose
lengths are one two and four. The set of rectangles you draw must surround all
cells containing ones in the truth map. The trick is to draw all possible
rectangles unless a rectangle would be completely enclosed within another. Note
that the rectangles may overlap if one does not enclose the other. In the truth
map below there are three such rectangles:
Each rectangle represents a term in the simplified boolean
function. Therefore the simplified boolean function will contain only three
terms. You build each term using the process of elimination. You eliminate any
variables whose primed and unprimed form both appear within the rectangle.
Consider the long skinny rectangle above that is sitting in the row where C=1.
This rectangle contains both A and B in primed and unprimed form. Therefore we
can eliminate A and B from the term. Since the rectangle sits in the C=1 region
this rectangle represents the single literal C.
Now consider the solid square above. This rectangle includes C C'
B B' and A. Therefore it represents the single term A. Likewise the square with
the dotted line above contains C C' A A' and B. Therefore it represents the
single term B.
The final optimal function is the sum (logical OR) of the terms
represented by the three squares. Therefore F= A + B + C. You do
not have to consider squares containing zeros.
When enclosing groups of ones in the truth map you must consider
the fact that a truth map forms a torus (i.e. a doughnut shape). The right edge
of the map wraps around to the left edge (and vice-versa). Likewise the top
edge wraps around to the bottom edge. This introduces additional possibilities
when surrounding groups of ones in a map. Consider the boolean function F=C'B'A' + C'BA' + CB'A' + CBA'. The figure below shows the
truth map for this function.
At first glance you would think that there are two possible
rectangles here as the figure below shows.
However because the truth map is a continuous object with the
right side and left sides connected we can form a single square rectangle as
shown below:
So what? Why do we care if we have one rectangle or two in the
truth map? The answer is because the larger the rectangles are the more terms
they will eliminate. The fewer rectangles that we have the fewer terms will
appear in the final boolean function. For example the former example with two
rectangles generates a function with two terms. The first rectangle (on the
left) eliminates the C variable leaving A'B' as its term. The second rectangle
on the right also eliminates the C variable leaving the term BA'. Therefore
this truth map would produce the equation F=A'B' + A'B. We know this is not
optimal see Th 13. Now consider the second truth map above. Here we have a
single rectangle so our boolean function will only have a single term.
Obviously this is more optimal than an equation with two terms. Since this
rectangle includes both C and C' and also B and B' the only term left is A'.
This boolean function therefore reduces to F=A'.
There are only two cases that the truth map method cannot handle
properly: a truth map that contains all zeros or a truth map that contains all
ones. These two cases correspond to the boolean functions F=0 and F=1
respectively. These functions are easy to generate by inspection of the truth
map.
An important thing you must keep in mind when optimizing boolean
functions using the mapping method is that you always want to pick the largest rectangles
whose sides' lengths are a power of two. You must do this even for overlapping
rectangles (unless one rectangle encloses another). Consider the boolean
function F = C'B'A' + C'BA' + CB'A' + C'AB + CBA'
+ CBA. This produces the truth map appearing below:
The initial temptation is to create one of the sets of rectangles
found below:
However the correct mapping is
All three mappings will produce a boolean function with two terms.
However the first two will produce the expressions F= B + A'B' and F = AB + A'. The
third form produces F = B + A'.
Obviously this last form is more optimal than the other two forms (see theorems
11 and 12).
For functions of three variables the size of the rectangle
determines the number of terms it represents:
- A rectangle
enclosing a single square represents a minterm. The associated term will
have three literals.
- A rectangle
surrounding two squares containing ones represents a term containing two
literals.
- A rectangle
surrounding four squares containing ones represents a term containing a
single literal.
- A rectangle
surrounding eight squares represents the function F = 1.
Truth maps you create for functions of four variables are even
trickier. This is because there are lots of places rectangles can hide from you
along the edges. The Figures below show some possible places rectangles can
hide.
This list of patterns doesn't even begin to cover all of them! For
example these diagrams show none of the 1x2 rectangles. You must exercise care
when working with four variable maps to ensure you select the largest possible
rectangles especially when overlap occurs. This is particularly important with
you have a rectangle next to an edge of the truth map.
As with functions of three variables the size of the rectangle in
a four variable truth map controls the number of terms it represents:
- A rectangle
enclosing a single square represents a minterm. The associated term will
have four literals.
- A rectangle
surrounding two squares containing ones represents a term containing three
literals.
- A rectangle
surrounding four squares containing ones represents a term containing two
literals.
- A rectangle
surrounding eight squares containing ones represents a term containing a
single literal.
- A rectangle
surrounding sixteen squares represents the function F=1.
This last example demonstrates an optimization of a function
containing four variables. The function is F = D'C'B'A' +
D'C'B'A + D'C'BA + D'C'BA' + D'CB'A + D'CBA + DCB'A + DCBA + DC'B'A' + DC'BA' the
truth map appears below:
Here are two possible sets of maximal rectangles for this function
each producing three terms
Both functions are equivalent; both are as optimal as you can get.
Either will suffice for our purposes.
First let's consider the term represented by the rectangle formed
by the four corners. This rectangle contains B B' D and D'; so we can eliminate
those terms. The remaining terms contained within these rectangles are C' and
A' so this rectangle represents the term C'A'.
The second rectangle common to both maps in the figure is the
rectangle formed by the middle four squares. This rectangle includes the terms
A B B' C D and D'. Eliminating B B' D and D' (since both primed and unprimed
terms exist) we obtain CA as the term for this rectangle.
The map on the left in the figurehas a third term represented by
the top row. This term includes the variables A A' B B' C' and D'. Since it
contains A A' B and B' we can eliminate these terms. This leaves the term C'D'.
Therefore the function represented by the map on the left is F=C'A' + CA + C'D'.
The map on the right in the figure has a third term represented by
the top/middle four squares. This rectangle subsumes the variables A B B' C C'
and D'. We can eliminate B B' C and C' since both primed and unprimed versions
appear this leaves the term AD. Therefore the function represented by the
function on the right is F=C'A' + CA + AD'.
Since both expressions are equivalent contain the same number of
terms and the same number of operators either form is equivalent. Unless there
is another reason for choosing one over the other you can use either form.
Free Web Counter
6 comments:
Denizli
Ankara
Antep
Bursa
Eskişehir
J047H
Maraş Lojistik
Hatay Lojistik
Tokat Lojistik
Elazığ Lojistik
Aksaray Lojistik
6K67H
van evden eve nakliyat
sivas evden eve nakliyat
çankırı evden eve nakliyat
bartın evden eve nakliyat
erzincan evden eve nakliyat
7H0Z35
2A94D
Gümüşhane Şehirler Arası Nakliyat
Tokat Şehir İçi Nakliyat
Burdur Şehirler Arası Nakliyat
Tokat Evden Eve Nakliyat
Aksaray Şehirler Arası Nakliyat
Clysterum Coin Hangi Borsada
Tesla Coin Hangi Borsada
AAX Güvenilir mi
Altındağ Fayans Ustası
5F4BB
Artvin Lojistik
Çanakkale Şehirler Arası Nakliyat
Trabzon Şehirler Arası Nakliyat
Kripto Para Borsaları
Çerkezköy Halı Yıkama
Malatya Parça Eşya Taşıma
Sivas Şehirler Arası Nakliyat
Ankara Fayans Ustası
Rize Evden Eve Nakliyat
DF3F4
Hakkari Parça Eşya Taşıma
Sincan Boya Ustası
Ankara Parke Ustası
Ceek Coin Hangi Borsada
Etlik Boya Ustası
Urfa Şehirler Arası Nakliyat
Hamster Coin Hangi Borsada
Aksaray Evden Eve Nakliyat
Batıkent Boya Ustası
Post a Comment