You are on page 1of 104

By

Isaac Hanson
Eng Dept/GTUC

15/05/2008 18:10:18 Academic excellence in ICT Education


1
Simplification
of
Boolean Expressions

A. Cost Models
B. Reduction Techniques -
i. Karnaugh Map Method
The Simplification Problem: Requirements
 Simplification of complex circuits, starting from their
equivalent representation as complex Boolean expressions,
requires an understanding of cost.

 We will see that the typical goal is to arrive at Boolean


expressions that:
 are expressible in SOP (or POS) form
 involve minimal numbers of literals
 involve a minimal number of gate application levels

 To help us understand how to accomplish circuit minimization,


we will study one powerful reduction technique:
 Karnaugh maps
Concepts of Cost
 We focus on two types of cost model.

 Minimum time of completion of circuit logic


 both SOP and POS circuit representations are two-level designs with
all the gates at each level performing in parallel with the same time
characteristics.

 Minimum cost of circuit construction


 very often it is possible, starting with the SOP or POS forms, to
rewrite a near-optimal cost form involving pure nand or nor gates
only.

 This leads to four cost theorems.


Concepts of Cost
 Before stating the theorems we need some definitions of terms:

 Literal a variable or its complement (unique symbol)

 Implies F implies G, means that there does not exist a set


of N input literals such that both F=1 and G=0;
By contrast, if F=1 then G must be equal to 1.

 Subsumes A term T1 subsumes a term T2 if and only if (!)


all the literals in T2 are also found in T1.
If one term subsumes another in an expression,
then the subsuming term can always be deleted
with changing the function. In other words, if T 1
subsumes T2 then T1 may be ignored because the T2 terms
account for logic.
Concepts of Cost
 … and some more definitions of terms:

 Implicant a product term is said to be an implicant of a

complete function if the product term


implies
the function.

 Implicate a sum term is said to be an implicate of a


complete function if the sum term implies
the function.
Concepts of Cost
 … and some more definitions of terms:

 Prime Implicant an implicant is a prime implicant if it does not


subsume any other implicant with fewer literals.
This means that if any literal is removed from
the term, it no longer implies the function.

 Prime Implicate an implicate is a prime implicate if it does not


subsume any other implicate with fewer literals.
This means that if any literal is removed from
the term, it no longer implies the function.

Note the symmetry between the


definitions of implicant (product)
and implicate (sum).
Concepts of Cost
 Cost Theorem 1a.
When the cost, assigned by some criterion, for a minimal
Boolean formula is such that decreasing the number of literals
in the disjunctive normal formula does not increase the cost of
the formula, there is at least one minimal disjunctive normal
formula that corresponds to a sum of prime implicants.

 Cost Theorem 2a.


For any cost criterion such that the cost of a formula does not
increase when a literal is removed, at least one minimal
disjunctive normal formula describing a function is an
irredundant disjunctive normal formula (SOP).
Concepts of Cost
 Cost Theorem 1b.
When the cost, assigned by some criterion, for a minimal
Boolean formula is such that decreasing the number of literals
in the conjunctive normal formula does not increase the cost of
the formula, there is at least one minimal conjunctive normal
formula that corresponds to a product of prime implicates.

 Cost Theorem 2b.


For any cost criterion such that the cost of a formula does not
increase when a literal is removed, at least one minimal
conjunctive normal formula describing a function is an
irredundant conjunctive normal formula (POS).

 These theorems establish that implicates are dual to implicants.


Expression Simplification
 The algebraic techniques we have developed are too slow and
uncertain to apply in cases where the numbers of variables are
large.

 To meet the needs of modern circuit analysis and design


several methods have been developed that

 are somewhat scalable, and

 permit limited degrees of automation (ie. Programmability).


Karnaugh Maps
Karnaugh Maps
 The use of mapping, or tableau-based, techniques were
developed by Veitch and modified by Karnaugh.

 We will determine these techniques by studying examples in


order to establish the rules for map manipulation.
Karnaugh Maps
 1 variable map

x f(x)
0 f(0) Truth Table
1 f(1)
Karnaugh Maps
 1 variable map
Literal
x f(x)
0 f(0) Truth Table
1 f(1)

Function Values
Binary Values
Karnaugh Maps
 1 variable map
Literal
Literal x
x f(x) 0 1 Binary Values
0 f(0) Truth Table f(0) f(1) Function Values
1 f(1)

Function Values
Binary Values
Karnaugh Maps
 1 variable map
x
x f(x) 0 1
0 f(0) Truth Table f(0) f(1)
1 f(1)

1x2 Karnaugh Map


Karnaugh Maps
 2 variable map

x y f(x,y)
0 0 f(0,0)
0 1 f(0,1)
Truth Table
1 0 f(1,0)
1 1 f(1,1)
Karnaugh Maps
 2 variable map
y
x y f(x,y) 0 1
0 0 f(0,0)
0 1 f(0,1) f(0,0) f(0,1)
Truth Table 0
1 0 f(1,0)
x
1 1 f(1,1) 1 f(1,0) f(1,1)

2x2 Karnaugh Map


Karnaugh Maps
 3 variable map

x y z f(x,y,z)
yz
0 0 0 f(000) 00 01 11 10
0 0 1 f(001)
0 1 0 f(010) f(000) f(001) f(011) f(010)
0 1 1 f(011) 0
1 0 0 f(100) x
1 0 1 f(101) 1 f(100)
1 1 0 f(110)
f(101) f(111) f(110)
1 1 1 f(111)

2x4 Karnaugh Map


Karnaugh Maps
 3 variable map

x y z f(x)
yz
0 0 0 f(000) 00 01 11 10
0 0 1 f(001)
0 1 0 f(010) f(000) f(001) f(011) f(010)
0 1 1 f(011) 0
1 0 0 f(100) x
1 0 1 f(101) 1 f(100)
1 1 0 f(110)
f(101) f(111) f(110)
1 1 1 f(111)

2x4 Karnaugh Map


Note the way that the
column indices
change by only 1 bit
at a time from left to
right.
Karnaugh Maps
 3 variable map

x y z f(x,y,z)
y
0 0 0 f(000) 00 01 11 10
0 0 1 f(001)
0 1 0 f(010) f(000) f(001) f(011) f(010)
0 1 1 f(011) 0
1 0 0 f(100) x
1 0 1 f(101) 1 f(100)
1 1 0 f(110)
f(101) f(111) f(110)
1 1 1 f(111)
z
An alternative
labelling scheme is
2x4 Karnaugh Map
based on which
literal has value 1.
Karnaugh Maps
 3 variable map

x y z f(x,y,z)
y
0 0 0 f(000) 00 01 11 10
0 0 1 f(001)
0 1 0 f(010) 0 1 3 2
0 1 1 f(011) 0
1 0 0 f(100) x
1 0 1 f(101) 1
1 1 0 f(110)
4 5 7 6
1 1 1 f(111)
One final alternative
z
labelling scheme
replaces the function
value by the decimal 2x4 Karnaugh Map
minterm index value.
Karnaugh Maps
 4 variable map

w x y z f(w,x,y,z)
0 0 0 0 f(0000)
0 0 0 1 f(0001)
0 0 1 0 f(0010)
0 0 1 1 f(0011)
0 1 0 0 f(0100)
0 1 0 1 f(0101)
0 1 1 0 f(0110)
0 1 1 1 f(0111)
1 0 0 0 f(1000)
1 0 0 1 f(1001)
1 0 1 0 f(1010)
1 0 1 1 f(1011)
1 1 0 0 f(1100)
1 1 0 1 f(1101)
1 1 1 0 f(1110)
1 1 1 1 f(1111)
Karnaugh Maps
 4 variable map yz
00 01 11 10
w x y z f(w,x,y,z)
f(0000) f(0001) f(0011) f(0010)
0 0 0 0 f(0000)
0 0 0 1 f(0001) 00
0 0 1 0 f(0010) f(0100) f(0101) f(0111) f(0110)
0 0 1 1 f(0011) 01
0 1 0 0 f(0100) wx
0 1 0 1 f(0101) 11 f(1100) f(1101) f(1111) f(1110)
0 1 1 0 f(0110)
0 1 1 1 f(0111) 10
1 0 0 0 f(1000)
f(1000) f(1001) f(1011) f(1010)
1 0 0 1 f(1001)
1 0 1 0 f(1010)
1 0 1 1 f(1011)
1 1 0 0 f(1100)
1 1 0 1 f(1101)
1 1 1 0 f(1110)
1 1 1 1 f(1111)
Karnaugh Maps
 4 variable map yz
00 01 11 10
w x y z f(w,x,y,z)
0 0 0 0 f(0000) 0 1 3 2
0 0 0 1 f(0001) 00
0 0 1 0 f(0010)
01 4 5 7 6
0 0 1 1 f(0011)
0 1 0 0 f(0100) wx
0 1 0 1 f(0101) 11 12 13 15 14
0 1 1 0 f(0110)
0 1 1 1 f(0111) 10
1 0 0 0 f(1000) 8 9 11 10
1 0 0 1 f(1001)
1 0 1 0 f(1010)
1 0 1 1 f(1011)
Note the way that
1 1 0 0 f(1100)
both the row and
1 1 0 1 f(1101)
column indices
1 1 1 0 f(1110)
change by only 1 bit
1 1 1 1 f(1111)
at a time.
Karnaugh Maps
 4 variable map yz
00 01 11 10
w x y z f(w,x,y,z)
0 0 0 0 f(0000) 0 1 3 2
0 0 0 1 f(0001) 00
0 0 1 0 f(0010)
01 4 5 7 6
0 0 1 1 f(0011)
0 1 0 0 f(0100) wx
0 1 0 1 f(0101) 11 12 13 15 14
0 1 1 0 f(0110)
0 1 1 1 f(0111) 10
1 0 0 0 f(1000) 8 9 11 10
1 0 0 1 f(1001)
1 0 1 0 f(1010)
1 0 1 1 f(1011)
1 1 0 0 f(1100)
1 1 0 1 f(1101)
1 1 1 0 f(1110)
This implies that two rows, or columns, whose
1 1 1 1 f(1111)
indices differ by only 1 bit value, are adjacent.
Karnaugh Maps
 4 variable map yz
00 01 11 10
w x y z f(w,x,y,z)
0 0 0 0 f(0000) 0 1 3 2
0 0 0 1 f(0001) 00
0 0 1 0 f(0010)
01 4 5 7 6
0 0 1 1 f(0011)
0 1 0 0 f(0100) wx
0 1 0 1 f(0101) 11 12 13 15 14
0 1 1 0 f(0110)
0 1 1 1 f(0111) 10
1 0 0 0 f(1000) 8 9 11 10
1 0 0 1 f(1001)
1 0 1 0 f(1010)
1 0 1 1 f(1011)
1 1 0 0 f(1100)
WRAP-AROUND!
1 1 0 1 f(1101)
1 1 1 0 f(1110)
This implies that two rows, or columns, whose
1 1 1 1 f(1111)
indices differ by only 1 bit value, are adjacent.
Karnaugh Maps
 4 variable map y
00 01 11 10
w x y z f(w,x,y,z)
0 0 0 0 f(0000) 0 1 3 2
0 0 0 1 f(0001) 00
0 0 1 0 f(0010)
01 4 5 7 6
0 0 1 1 f(0011)
0 1 0 0 f(0100) x
0 1 0 1 f(0101) 11 12 13 15 14
0 1 1 0 f(0110)
0 1 1 1 f(0111) 10 w
1 0 0 0 f(1000) 8 9 11 10
1 0 0 1 f(1001)
1 0 1 0 f(1010)
1 0 1 1 f(1011) z
1 1 0 0 f(1100)
1 1 0 1 f(1101)
An alternative row/column
1 1 1 0 f(1110)
labelling, highlighting the literal
1 1 1 1 f(1111)
with value 1.
Karnaugh Maps
 Case Study: 1 variable map

 Ex.
x
X F(X)
0 1
0 0 0 1
1 1

Place function values


(from the defining
function truth table)
in the map positions.
Karnaugh Maps
 Case Study: 1 variable map
x
0 1
0 1

Circle all 1 entries that,


taken together, form a
subcube (i.e. rectangular
shape formed from 1-
boxes, without holes).
Karnaugh Maps
 Case Study: 1 variable map
x
0 1
0 1

Circle all 1 entries that,


taken together, form a
subcube (i.e. rectangle).

DEFINITION:
When constructing SOP forms, a 2N -subcube is a
rectangular region of a Karnaugh map consisting of
2N adjacent cells, each containing the same value 1
(or 0 for POS forms), and where N must be an
integer greater or equal to zero.
Karnaugh Maps
 Case Study: 1 variable map
x
0 1
0 1

The entry 1 in the second


column corresponds to
the prime implicant x.
Karnaugh Maps
 Case Study: 1 variable map
x
0 1
0 1

The entry 1 in the second


column corresponds to
the prime implicant x.

Recall that x is a prime implicant iff:


- x implies f(x) and,
- x does not subsume any other implicant:
Since, removing x from itself leaves
nothing, then x is clearly prime.
Karnaugh Maps
 Case Study: 1 variable map
x
0 1
0 1

Thus, the minimal


expression of the function
is:
F(x) = x
Karnaugh Maps
 Case Study: 1 variable map - Complementation
x
X F(X) 0 1
0 1
1 0
1 0

The entry 1 in the first


column corresponds to
the prime implicant x’.
Karnaugh Maps
 Case Study: 1 variable map - Complementation
x
X F(X) 0 1
0 1
1 0
1 0

The entry 1 in the first


column corresponds to
the prime implicant x’.
Thus, the minimal
expression of the function
is:
F(x) = x’
Karnaugh Maps
 Case Study: 1 variable map - 2nd variation
x
X F(X) 0 1
0 1
1 1
1 1

Circle all 1 entries that,


taken together, form a
subcube (i.e. rectangle).
Karnaugh Maps
 Case Study: 1 variable map - 2nd variation
x
X F(X) 0 1
0 1
1 1
1 1

We note that both x and x’ terms


are included in the rectangle. Their
individual “product” contributions
to the SOP expression must be
summed (or’ed):
x + x’
But, this reduces to 1.
Karnaugh Maps
 Case Study: 1 variable map - 2nd variation
x
X F(X) 0 1
0 1
1 1
1 0

Thus, the minimal


expression of the function
is:
F(x) = 1
Karnaugh Maps
 Case Study: 1 variable map - 2nd variation
x
X F(X) 0 1
0 1
1 1
1 0

Thus, the minimal


expression of the function
is:
f=1

In other words, when both 0 and 1 terms appear for a literal


referenced within the cells of a subcube, that literal is removed
from the implicant corresponding to that subcube, leaving a
prime implicant.
Karnaugh Maps
 3 variable map
yz
00 01 11 10

2x4 Karnaugh Map 0 1 1 0


0
x
1 1 0 1 0
X YZ F(X,Y,Z)
0 0 0 0
0 0 1 1
0 1 0 0 Place function values
0 1 1 1 (from the defining
function truth table)
1 0 0 1 in the map positions.
1 0 1 0
1 1 0 0
1 1 1 1
Karnaugh Maps
 3 variable map
yz
00 01 11 10

0 1 1 0
0
x
1 1 0 1 0
X YZ F(X,Y,Z)
0 0 0 0
0 0 1 1
0 1 0 0
•Circle all 1 entries that, taken together, form a
subcube (i.e. rectangle).
0 1 1 1
•Start with the largest subcubes, then proceed to
1 0 0 1 smaller subcubes
1 0 1 0 •Generally speaking, there will be more than one
1 1 0 0 independent subcube, each reflecting a different
prime implicant.
1 1 1 1
Karnaugh Maps
 3 variable map y’ z’
yz
00 01 11 10

0 1 1 0
0
x
x 1 1 0 1 0

•For each subcube, write its algebraic expression


using the variable name (eg. x) if the box occurs
in the row/column for which the variable is 1 –
otherwise, if the box occurs in the row/column
for which the variable (eg. y,z) is 0, use the
complemented variable (ie. y’, z’).
Karnaugh Maps
 3 variable map y’ z’
yz
Collecting 00 01 11 10
literals into a
product 0 1 1 0
gives: 0
xy’z’ x
x 1 1 0 1 0

1-subcubes are expressed using all


variable symbols
Karnaugh Maps
z y+y’=1
 3 variable map
yz
00 01 11 10

x’ 0 1 1 0
0
x
1 1 0 1 0

Circle all 1 entries that, taken


together, form a subcube (i.e.
rectangle). Generally speaking, there
will be more than one independent
subcube, each reflecting a different
prime implicant.
Karnaugh Maps
z y+y’=1
 3 variable map
yz
00 01 11 10
Collecting
literals into a x’ 0 1 1 0
product 0
gives: x
x’z 1 1 0 1 0

Circle all 1 entries that, taken


together, form a subcube (i.e.
rectangle). Generally speaking, there
will be more than one independent
subcube, each reflecting a different
prime implicant.
Karnaugh Maps
 3 variable map y z
yz
00 01 11 10

0 1 1 0
0
x+x’ = 1 x
1 1 0 1 0

Circle all 1 entries that, taken


together, form a subcube (i.e.
rectangle). Generally speaking, there
will be more than one independent
subcube, each reflecting a different
prime implicant.
Karnaugh Maps
 3 variable map y z
yz
00 01 11 10

0 1 1 0
0
x+x’ = 1 x
1 1 0 1 0

Collecting Circle all 1 entries that, taken


literals into a together, form a subcube (i.e.
product rectangle). Generally speaking, there
gives: will be more than one independent
yz subcube, each reflecting a different
prime implicant.
Karnaugh Maps
 3 variable map
yz
00 01 11 10

0 1 1 0
0
Each subcube (rectangle) x
corresponds to a prime 1
implicant term. 1 0 1 0

Gathering all terms in


SOP form,

f = xy’z’ + x’z + yz
Karnaugh Maps
 3 variable map
yz
00 01 11 10
f = xy’z’ + x’z + yz
0 1 1 0
0
x
1 1 0 1 0
Karnaugh Maps
 3 variable map
yz
00 01 11 10
f = xy’z’ + x’z + yz
0 1 1 0
0
x
1 1 0 1 0

Each subcube contains at least one 1-cell that can ONLY


be included within that subcube. Such 1-cells are called
essential 1-cells and their corresponding prime implicant is
called an essential prime implicant.
Karnaugh Maps
 3 variable map
yz
00 01 11 10
f = xy’z’ + x’z + yz
0 1 1 0
0
x
1 1 0 1 0

xy’z’ ( xy’z’ )
Essential 1-cell (essential prime implicant).
Each subcube contains at least one 1-cell that can ONLY
be included within that subcube. Such 1-cells are called
essential 1-cells and their corresponding prime implicant is
called an essential prime implicant.
Karnaugh Maps
 3 variable map
yz
00 01 11 10
f = xy’z’ + x’z + yz
0 1 1 0
0
x
1 1 0 1 0

x’y’z ( x’z )
Essential 1-cell (essential prime implicant).
Each subcube contains at least one 1-cell that can ONLY
be included within that subcube. Such 1-cells are called
essential 1-cells and their corresponding prime implicant is
called an essential prime implicant.
Karnaugh Maps
 3 variable map
yz
00 01 11 10
f = xy’z’ + x’z + yz
0 1 1 0
0
x
1 1 0 1 0

xyz ( yz )
Essential 1-cell (essential prime implicant).
Each subcube contains at least one 1-cell that can ONLY
be included within that subcube. Such 1-cells are called
essential 1-cells and their corresponding prime implicant is
called an essential prime implicant.
Karnaugh Maps
 3 variable map - 2nd variation
yz
00 01 11 10

1 1 1 1
0
x
1 1 0 0 1
Karnaugh Maps
 3 variable map - 2nd variation
yz
00 01 11 10

1 1 1 1
0
x
1 1 0 0 1

Circle all 1 entries that,


taken together, form a
subcube (i.e. rectangle) of
the largest size, but
containing 2N squares (for
all possible N).
Karnaugh Maps
 3 variable map - 2nd variation
yz
00 01 11 10

1 1 1 1
0
x
1 1 0 0 1

Circle all 1 entries that,


taken together, form a
subcube (i.e. rectangle) of
the largest size, but
containing 2N squares (for
all possible N).
Karnaugh Maps
 3 variable map - 2nd variation
yz
00 01 11 10

1 1 1 1
The “wrap-around” 0
technique. x
1 1 0 0 1

Circle all 1 entries that,


taken together, form a
subcube (i.e. rectangle) of
the largest size, but
containing 2N squares (for
all possible N).
Karnaugh Maps
 3 variable map - 2nd variation
yz
00 01 11 10

1 1 1 1
0
x’[yz + y’z + yz’ + y’z’] x
= x’[(y+y’)z + (y+y’)z’] 1 1 0 0 1
= x’[z+z’]
= x’

x’y’z’+x’yz’+xy’z’+xyz’
= x’(y’+y)z’ +x(y’+y)z’ Circle all 1 entries that,
= (x’+x)(y’+y)z’ taken together, form a
= z’ subcube (i.e. rectangle) of
the largest size, but
containing 2N squares (for
all possible N).
Karnaugh Maps
 3 variable map - 2nd variation
yz
00 01 11 10

1 1 1 1
0
x
1 1 0 0 1

Collecting
literals into a
product Circle all 1 entries that,
gives: taken together, form a
x’ + z’ subcube (i.e. rectangle) of
the largest size, but
containing 2N squares (for
all possible N).
Karnaugh Maps
 Case Study: 4 variable map

yz
00 01 11 10

1 0 0 1
00

01 1 1 0 0
wx Place function values
11 1 1 1 0 in the map positions.

10
1 0 1 1
Karnaugh Maps
 Case Study: 4 variable map

yz
00 01 11 10
Identify 2N subcubes
by decreasing
1 0 0 1 N=4,3,2,1,0; using
00 wraparound.

01 1 1 0 0
wx
11 1 1 1 0

10
1 0 1 1
Karnaugh Maps
 Case Study: 4 variable map

yz Identify 2N subcubes
00 01 11 10 by decreasing
N=4,3,2,1,0; using
wraparound.
1 0 0 1
00
1 1 0 0 There are no subcubes
01
of sizes:
wx
24 =16 or 23 = 8.
11 1 1 1 0

10
1 0 1 1
Karnaugh Maps
 Case Study: 4 variable map

yz
Identify 2N subcubes
00 01 11 10
by decreasing
N=4,3,2,1,0; using
1 0 0 1 wraparound.
00

01 1 1 0 0
Subcubes of size:
wx 22 =4.
11 1 1 1 0

10
1 0 1 1
Karnaugh Maps
 Case Study: 4 variable map

yz Identify 2N subcubes
00 01 11 10 by decreasing
N=4,3,2,1,0; using
1 0 0 1 wraparound.
00

01 1 1 0 0
Subcubes of size:
wx 22 =4.
11 1 1 1 0

10
1 0 1 1
Karnaugh Maps
 Case Study: 4 variable map

yz
00 01 11 10 Identify 2N subcubes
by decreasing
1 0 0 1 N=4,3,2,1,0; using
00 wraparound.

01 1 1 0 0
wx
Subcubes of size:
11 1 1 1 0
21 =2.
10
1 0 1 1
Karnaugh Maps
 Case Study: 4 variable map Identify 2N subcubes
by decreasing
N=4,3,2,1,0; using
yz
wraparound.
00 01 11 10

1 0 0 1
00

01 1 1 0 0
wx
Subcubes of size:
11 1 1 1 0
21 =2.
10
1 0 1 1
Karnaugh Maps
 Case Study: 4 variable map

yz
00 01 11 10 Identify 2N subcubes
by decreasing
1 0 0 1 N=4,3,2,1,0; using
00 wraparound.

01 1 1 0 0
wx No more subcubes!
11 1 1 1 0

10
1 0 1 1
Karnaugh Maps
 Case Study: 4 variable map Identify 2N subcubes
by decreasing
N=4,3,2,1,0; using
yz
wraparound.
00 01 11 10

1 0 0 1
00

01 1 1 0 0
wx
11 1 1 1 0

10
1 0 1 1 Now to identify the
prime implicants:

y’z’ + xy’ + x’z’ + wxz + wx’y


Karnaugh Maps
 Case Study: 4 variable map

yz
00 01 11 10 Identify 2N subcubes
by decreasing
1 0 0 1 N=4,3,2,1,0; using
00 wraparound.

01 1 1 0 0
wx
11 1 1 1 0

10
1 0 1 1 Now to identify the
prime implicants:

xy’ + x’z’ + wxz + wx’y


Karnaugh Maps
 Case Study: 4 variable map

yz
00 01 11 10
Identify 2N subcubes
by decreasing
1 0 0 1 N=4,3,2,1,0; using
00 wraparound.

01 1 1 0 0
wx
11 1 1 1 0

10
1 0 1 1 Now to identify the
prime implicants:

xy’ + x’z’ + wxz + wx’y


Karnaugh Maps
 Case Study: 4 variable map

yz
00 01 11 10
Identify 2N subcubes
by decreasing
1 0 0 1 N=4,3,2,1,0; using
00 wraparound.

01 1 1 0 0
wx
11 1 1 1 0

10
1 0 1 1 Now to identify the
prime implicants:

xy’ + x’z’ + wxz + wx’y


Karnaugh Maps
 Case Study: 4 variable map

yz
00 01 11 10 Identify 2N subcubes
by decreasing
N=4,3,2,1,0; using
1 0 0 1
wraparound.
00

01 1 1 0 0
wx
11 1 1 1 0

10
1 0 1 1 Now to identify the
prime implicants:

xy’ + x’z’ + wxz + wx’y


Karnaugh Maps
 Case Study: 4 variable map

yz
00 01 11 10 Identify 2N subcubes
by decreasing
1 0 0 1 N=4,3,2,1,0; using
00 wraparound.

01 1 1 0 0
wx
11 1 1 1 0

10
1 0 1 1 Now to identify the
prime implicants:

f(w,x,y,z) = xy’ + x’z’ + wxz + wx’y


Karnaugh Maps
 Using the procedure of identifying the largest possible
subcubes in the Karnaugh map first, then dealing with
smaller sized subcubes, we arrive at minimal representations
of SOP (POS) expressions for the function.

 These expressions may not be unique, however.


Karnaugh Maps
 Case Study: 4 variable map

yz
00 01 11 10
Previously, we had
presented this
1 0 0 1
example.
00

01 1 1 0 0
wx
11 1 1 1 0

10
1 0 1 1

f(w,x,y,z) = xy’ + x’z’ + wxz + wx’y


Karnaugh Maps
 Case Study: 4 variable map

yz
00 01 11 10
Consider these
1 0 0 1 subcubes ...
00

01 1 1 0 0
wx
11 1 1 1 0

10
1 0 1 1

f(w,x,y,z) = xy’ + x’z’ + wxz + wx’y


Karnaugh Maps
 Case Study: 4 variable map

yz
00 01 11 10 Now, choose the other,
alternative subcube
1 0 0 1 containing these 1-cells
00 …
…thereby, minimizing
01 1 1 0 0 the number of subcubes,
wx hence the number of
11 1 1 1 0 product terms in the
function.
10
1 0 1 1

f(w,x,y,z) = xy’ + x’z’ + wyz + wx’y


Karnaugh Maps
 Case Study: 4 variable map

f(w,x,y,z) = xy’ + x’z’ + wxz + wx’y


yz
00 01 11 10
f(w,x,y,z) = xy’ + x’z’ + wyz
1 0 0 1
00

01 1 1 0 0 Both solutions are


equivalent, but the
wx second one is
11 1 1 1 0 minimal.

10
1 0 1 1
Karnaugh Maps – Summary for SOP
 For a function of N variables (literals) draw the Karnaugh
map consisting of 2N cells
 1x2, 2x2, 2x4, 4x4, and so on
 we have not considered the cases of N=5, or 6 (See Textbook).

 Identify all rectangular subcubes of decreasing subcube size:


2L cells [L=N,N-1,...,1,0], using wraparound if possible.
 Always seek to minimize the degree of subcube overlap
 look for essential 1-cells to identify essential prime implicants and
minimize the number of subcubes

 For each subcube, assign a prime implicant algebraic


expression term by removing from the full implicant term all
literals for which both 0 and 1 row or column labels appear,
that is, keep only those literals that do not change.
Karnaugh Maps - POS
 The Karnaugh mapping technique can also be applied to
prime implicate (POS) forms.
Karnaugh Maps - POS
 The Karnaugh mapping technique can also be applied to
prime implicate (POS) forms.

 Instead of grouping 1-cells, we group 0-cells.


Karnaugh Maps - POS
 The Karnaugh mapping technique can also be applied to
prime implicate (POS) forms.

 Instead of grouping 1-cells, we group 0-cells.

 For each subcube of 0-cells we assign a sum expression,


removing all literals whose row/column indices are both 0 and
1, and listing the literal itself for index label 0, or its
complement for index label 1.
 Review this point with respect to algebraic representations
 Note the duality relationships
Karnaugh Maps - POS
 Case Study: 4 variable map

yz
00 01 11 10

1 0 0 1
00

01 1 1 0 0
wx
11 1 1 1 0

10
1 0 1 1
Karnaugh Maps - POS
 Case Study: 4 variable map

yz
Identify 2N subcubes
00 01 11 10
by decreasing
N=4,3,2,1,0; using
1 0 0 1 wraparound.
00

01 1 1 0 0
No subcubes of
wx sizes 16, 8 or 4.
11 1 1 1 0

10
1 0 1 1
Karnaugh Maps - POS
 Case Study: 4 variable map

yz
Identify 2N subcubes
00 01 11 10
by decreasing
N=4,3,2,1,0; using
1 0 0 1 wraparound.
00

01 1 1 0 0
Subcubes of size
wx 2.
11 1 1 1 0

10
1 0 1 1
Karnaugh Maps - POS
 Case Study: 4 variable map

yz
00 01 11 10 Identify 2N subcubes
by decreasing
1 0 0 1 N=4,3,2,1,0; using
00 wraparound.

01 1 1 0 0
wx
11 1 1 1 0 Note the
essential 0-cells
10 that denote
1 0 1 1 essential prime
implicates.
Karnaugh Maps - POS
 Case Study: 4 variable map Identify 2N subcubes
by decreasing
N=4,3,2,1,0; using
yz
wraparound.
00 01 11 10

1 0 0 1
00
This subcube contains
1 1 0 0 0-cells that may be
01
associated with other
wx
subcube choices,
11 1 1 1 0
hence they are not
essential 0-cells.
10
1 0 1 1 This choice minimizes
the number of
subcubes.
Karnaugh Maps - POS
 Case Study: 4 variable map
Identify 2N subcubes
yz by decreasing
00 01 11 10 N=4,3,2,1,0; using
wraparound.
1 0 0 1
00 Note there are no
smaller subcubes.
01 1 1 0 0
The subcube
wx choices reflect a
11 1 1 1 0 minimal POS
expression.
10
1 0 1 1
Karnaugh Maps - POS
 Case Study: 4 variable map Identify 2N subcubes
by decreasing
N=4,3,2,1,0; using
yz
wraparound.
00 01 11 10

1 0 0 1
00 Note there are no
smaller subcubes.
01 1 1 0 0
The subcube
wx choices reflect a
11 1 1 1 0 minimal POS
expression.
10
1 0 1 1

f(w,x,y,z) = (x+y+z’)(x’+y’+z)(w+y’+z’)
Karnaugh Maps
 Case Study: 4 variable map
 SOP: f(w,x,y,z) = xy’ + x’z’ + wxz
 the 7 literals provide input to the and gates (operators)
 the 3 terms provide input to the or gates
 there are 7+3=10 gate inputs for this expression (circuit)
Karnaugh Maps
 Case Study: 4 variable map
 SOP: f(w,x,y,z) = xy’ + x’z’ + wxz
 the 7 literals provide input to the and gates (operators)
 the 3 terms provide input to the or gates
 there are 7+3=10 gate inputs for this expression (circuit)

 POS: f(w,x,y,z) = (x+y+z’)(x’+y’+z)(w+y’+z’)


 the 9 literals provide input to the or gates
 the 3 terms provide input to the and gates
 there are 9+3=12 gate inputs for this circuit
Karnaugh Maps
 Case Study: 4 variable map
 SOP: f(w,x,y,z) = xy’ + x’z’ + wxz
 the 7 literals provide input to the and gates (operators)
 the 3 terms provide input to the or gates
 there are 7+3=10 gate inputs for this expression (circuit)

 POS: f(w,x,y,z) = (x+y+z’)(x’+y’+z)(w+y’+z’)


 the 9 literals provide input to the or gates
 the 3 terms provide input to the and gates
 there are 9+3=12 gate inputs for this circuit

 CONCLUSION: In this case, the SOP form is a minimal cost


circuit expression.
Karnaugh Maps
 Sometimes the logic for a circuit function is specified
incompletely
 Some possible inputs may not have a corresponding “fixed” output
value

 What do we do when the client does not care about these


special cases
Dealing with apathetic circuit specification
The case of
Don’t Care Conditions
Karnaugh Maps
 When an incompletely specified function is given, for which there exist “don’t care conditions”, we
indicate those terms by a hyphen (or other dc token).
Karnaugh Maps
 When an incompletely specified function is given, for which there exist “don’t care conditions”, we
indicate those terms by a hyphen (or other dc token).

yz
00 01 11 10

1 0 - 1
00

01 0 1 - 0
wx
11 1 1 1 0

10
- 0 0 1
Karnaugh Maps
 When an incompletely specified function is given, for which there exist “don’t care conditions”, we indicate those terms by a hyphen (or other dc token).

 We may treat those terms


as if they are 1’s OR 0’s,
whichever is more useful
in leading to a minimal
form of expression.

yz
00 01 11 10

1 0 -? 1
00

01 0 1 -? 0
wx
11 1 1 1 0

10
- ? 0 0 1
Karnaugh Maps
 When an incompletely specified function is given, for which there exist “don’t care conditions”, we indicate those terms by a hyphen (or other dc token).

 We may treat those terms


as if they are 1’s OR 0’s,
whichever is more useful
in leading to a minimal
form of expression.

yz
00 01 11 10

1 0 - 1
00

01 0 1 - 0
1
wx
11 1 1 1 0

10
- 0 0 1
1
Karnaugh Maps
 When an incompletely specified function is given, for which there exist “don’t care conditions”, we indicate those terms by a hyphen (or other dc token).

 We may treat those terms


as if they are 1’s OR 0’s,
whichever is more useful
in leading to a minimal
form of expression.

 Ignore all unused dc


conditions.

yz
00 01 11 10

1 0 - 1
00

01 0 1 - 0
1
wx
11 1 1 1 0

10
- 0 0 1
1
Karnaugh Maps
 When an incompletely specified function is given, for which there exist “don’t care conditions”, we indicate those terms by a hyphen (or other dc token).

 We may treat those terms


as if they are 1’s OR 0’s,
whichever is more useful
in leading to a minimal
form of expression.

PRIME IMPLICATES
yz
00 01 11 10

1 0 0- 1
00

01 0 1 - 0
wx
11 1 1 1 0

10
- 0 0 1
Karnaugh Maps
 When an incompletely specified function is given, for which there exist “don’t care conditions”, we indicate those terms by a hyphen (or other dc token).

 We may treat those terms


as if they are 1’s OR 0’s,
whichever is more useful
in leading to a minimal
form of expression.

PRIME IMPLICATES
yz
00 01 11 10

1 0 0- 1
00

01 0 1 - 0
wx
11 1 1 1 0

10
- 0 0 1
Karnaugh Maps
 When an incompletely specified function is given, for which there exist “don’t care conditions”, we indicate those terms by a hyphen (or other dc token).

 We may treat those terms


as if they are 1’s OR 0’s,
whichever is more useful
in leading to a minimal
form of expression.

 Ignore all unused dc


conditions.

PRIME IMPLICATES
yz
00 01 11 10

1 0 0- 1
00

01 0 1 - 0
wx
11 1 1 1 0

10
- 0 0 1
Summary
 We have studied and developed several techniques for
simplifying Boolean expressions.

 These are based on the axioms, definitions and theorems of the


Boolean Algebra, applied through the Boolean Calculus.

 Powerful tabular techniques have been developed for rapid


reduction to some minimal cost forms using
 Karnaugh maps

 An even more powerful technique has been developed by


Quine and McCluskey (and Petrick). Time prevents covering
this topic but it is described in advanced books on computer
engineering and logic design.
Thank You.

15/05/2008 18:10:18 Academic excellence in ICT Education


104

You might also like