Transcript Document
Computer Architecture I: Digital Design
Dr. Robert D. Kent
Lecture 3 Simplification of Boolean Expressions
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 – Implies a variable or its complement (unique symbol) 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 T 1 subsumes a term T 2
if and only if
(!) all the literals in T 2 are also found in T 1 .
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 T 2 then T 1 may be ignored because the T 2 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) 1 f(1)
Truth Table
Karnaugh Maps
• 1 variable map
Literal
x f(x) 0 f(0) 1 f(1)
Truth Table Function Values Binary Values
Karnaugh Maps
• 1 variable map
Literal
x f(x) 0 f(0) 1 f(1)
Truth Table
x 0 1 f(0) f(1)
Function Values Binary Values Literal Binary Values Function Values
Karnaugh Maps
• 1 variable map x f(x) 0 f(0) 1 f(1)
Truth Table
x 0 1 f(0) 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) 1 0 f(1,0) 1 1 f(1,1)
Truth Table
Karnaugh Maps
• 2 variable map x y f(x,y) 0 0 f(0,0) 0 1 f(0,1) 1 0 f(1,0) 1 1 f(1,1)
Truth Table
y 0 1 0 x 1 f(0,0) f(1,0) f(0,1) f(1,1)
2x2 Karnaugh Map
• 3 variable map
x y z f(x,y,z) 0 0 0 f(000) 0 0 1 f(001) 0 1 0 f(010) 0 1 1 f(011) 1 0 0 f(100) 1 0 1 f(101) 1 1 0 f(110) 1 1 1 f(111)
Karnaugh Maps
yz 00 01 11 10 0 f(000) f(001) f(011) f(010) x 1 f(100) f(101) f(111) f(110)
2x4 Karnaugh Map
Karnaugh Maps
• 3 variable map
x y z f(x) 0 0 0 f(000) change by only 1 0 0 1 f(001) bit at a time from 0 1 0 f(010) 0 1 1 f(011) 1 0 0 f(100) 1 0 1 f(101) 1 1 0 f(110) 1 1 1 f(111)
0 x yz 00 01 11 10 f(000) f(001) f(011) f(010) 1 f(100) f(101) f(111) f(110)
2x4 Karnaugh Map
• 3 variable map
x y z f(x,y,z) 0 0 0 f(000) 0 0 1 f(001) 0 1 0 f(010) 0 1 1 f(011) 1 0 0 f(100) 1 0 1 f(101) 1 1 0 f(110) 1 1 1 f(111)
Karnaugh Maps
00 0 1 1 1 y 1 0 0 f(000) f(001) f(011) f(010) x 1 f(100) f(101) f(111) f(110) z
2x4 Karnaugh Map
Karnaugh Maps
• 3 variable map
x y z f(x,y,z) 0 0 0 f(000) 0 0 1 f(001) 0 1 0 f(010) 0 1 1 f(011) 1 0 0 f(100) 1 0 1 f(101) 1 1 0 f(110) 1 1 1 f(111) One final alternative labelling scheme replaces the function value by the decimal minterm index value.
0 x 1 00 0 1 z 1 1 y 1 0 0 1 3 2 4 5 7 6
2x4 Karnaugh Map
• 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
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
yz 00 01 11 10 00
f(0000) f(0001) f(0011) f(0010)
01 wx 11
f(0100) f(0101) f(0111) f(0110) f(1100) f(1101) f(1111) f(1110)
10
f(1000) f(1001) f(1011) f(1010)
• 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
yz 00 01 11 10 00 0 1 3 2 01 wx 11 10 4 5 7 6 12 13 15 14 8 9 11 10
• 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
yz 00 01 11 10 00 0 1 3 2 01 wx 11 10 4 5 7 6 12 13 15 14 8 9 11 10
This implies that two rows, or columns, whose indices differ by only 1 bit value, are adjacent.
• 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
yz 00 01 11 10 00 0 1 3 2 01 wx 11 10 4 5 7 6 12 13 15 14 8 9 11 10
WRAP-AROUND!
This implies that two rows, or columns, whose indices differ by only 1 bit value, are adjacent.
• 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
y 00 01 11 10 00 0 1 3 2 01 x 11 10 4 5 7 6 12 13 15 14 8 9 11 10 z
An alternative row/column labelling, highlighting the literal with value 1.
w
Karnaugh Maps
• Case Study: 1 variable map • Ex.
X
0 1
F(X)
0 1 x 0 1 0 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
2 N
subcube
is a rectangular region of a Karnaugh map consisting of 2 N 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 nothing, then x from itself leaves 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 F(X)
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 F(X)
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 F(X)
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 F(X)
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
prime implicant.
, that literal is removed from the implicant corresponding to that subcube, leaving a
• 3 variable map
2x4 Karnaugh Map
Karnaugh Maps
0 x 1 yz 00 01 11 10 0 1 1 0 1 0 1 0
X Y Z
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
F(X,Y,Z)
0 1 0 1 1 0 0 1
Place function values (from the defining function truth table) in the map positions.
• 3 variable map
Karnaugh Maps
0 x 1 yz 00 01 11 10 0 1 1 0 1 0 1 0
X Y Z
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
F(X,Y,Z)
0 1 0 1 1 0 0 1 • Circle all 1 entries that, taken together, form a
subcube
(i.e. rectangle). • Start with the largest subcubes, then proceed to smaller subcubes • Generally speaking, there will be more than one independent subcube, each reflecting a different prime implicant.
• 3 variable map
x
Karnaugh Maps
y’ z’
yz 00 01 11 10 0 1 1 0 0 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’).
• 3 variable map Collecting literals into a product gives:
x y’z’ x
Karnaugh Maps
y’ z’
yz 00 01 11 10 0 x 1 0 1 1 0 1 0 1 0 1-subcubes are expressed using all variable symbols
• 3 variable map
Karnaugh Maps
z y+y’=1
yz 00 01 11 10
x’
0 x 1 0 1 1 0 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.
• 3 variable map Collecting literals into a product gives: x’z
Karnaugh Maps
z y+y’=1
yz 00 01 11 10
x’
0 x 1 0 1 1 0 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.
• 3 variable map
x+x’ = 1
Karnaugh Maps
y z
yz 00 01 11 10 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.
• 3 variable map
x+x’ = 1
Karnaugh Maps
y z
yz 00 01 11 10 0 1 1 0 0 x 1 1 0 1 0 Collecting literals into a product gives: yz 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 Each subcube (rectangle) corresponds to a prime implicant term.
0 x 1 Gathering all terms in SOP form, yz 00 01 11 10 0 1 1 0 1 0 1 0
f = xy’z’ + x’z + yz
• 3 variable map
f = xy’z’ + x’z + yz
Karnaugh Maps
0 x 1 yz 00 01 11 10 0 1 1 0 1 0 1 0
• 3 variable map f = xy’z’ + x’z + yz
Karnaugh Maps
0 x 1 yz 00 01 11 10 0 1 1 0 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
.
• 3 variable map f = xy’z’ + x’z + yz
Karnaugh Maps
0 x 1 yz 00 01 11 10 0 1 1 0 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
.
• 3 variable map f = xy’z’ + x’z + yz
Karnaugh Maps
0 x 1 yz 00 01 11 10 0 1 1 0 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
.
• 3 variable map f = xy’z’ + x’z + yz
Karnaugh Maps
0 x 1 yz 00 01 11 10 0 1 1 0 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 2 N 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 2 N squares (for all possible N).
Karnaugh Maps
• 3 variable map - 2nd variation yz 00 01 11 10 1 1 1 1 The “wrap-around” technique.
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 2 N squares (for all possible N).
Karnaugh Maps
• 3 variable map - 2nd variation yz 00 01 11 10
x’[yz + y’z + yz’ + y’z’] = x’[(y+y’)z + (y+y’)z’] = x’[z+z’] = x’
0 x 1 1 1 1 1 1 0 0 1
x’y’z’+x’yz’+xy’z’+xyz’ = x’(y’+y)z’ +x(y’+y)z’ = (x’+x)(y’+y)z’ = z’
Circle all 1 entries that, taken together, form a
subcube
(i.e. rectangle) of the largest size, but containing 2 N 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 gives:
x’ + z’
Circle all 1 entries that, taken together, form a
subcube
(i.e. rectangle) of the largest size, but containing 2 N squares (for all possible N).
Karnaugh Maps
•
Case Study: 4 variable map
00 yz 00 01 11 10 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0
Place function values in the map positions.
1 0 1 1 10
Karnaugh Maps
• Case Study: 4 variable map yz 00 01 11 10
Identify 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0 1 0 1 1 10
Karnaugh Maps
• Case Study: 4 variable map yz 00 01 11 10
Identify 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0 There are no subcubes of sizes:
2 4 =
16 or
2 3 =
8.
1 0 1 1 10
Karnaugh Maps
• Case Study: 4 variable map yz 00 01 11 10
Identify 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0 Subcubes of size:
2 2 =4
.
1 0 1 1 10
Karnaugh Maps
• Case Study: 4 variable map yz 00 01 11 10
Identify 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0 Subcubes of size:
2 2 =4
.
1 0 1 1 10
Karnaugh Maps
• Case Study: 4 variable map yz 00 01 11 10
Identify 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0 Subcubes of size:
2 1 =2
.
1 0 1 1 10
Karnaugh Maps
• Case Study: 4 variable map yz 00 01 11 10
Identify 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0 Subcubes of size:
2 1 =2
.
1 0 1 1 10
Karnaugh Maps
• Case Study: 4 variable map yz 00 01 11 10
Identify 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0
No more subcubes!
1 0 1 1 10
Karnaugh Maps
• Case Study: 4 variable map yz 00 01 11 10
Identify 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 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 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 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 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 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 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 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 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 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 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 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 00 yz 00 01 11 10 1 0 0 1
Previously, we had presented this example.
01 wx 11 1 1 0 0 1 1 1 0 1 0 1 1 10
f(w,x,y,z) = xy’ + x’z’ + wxz + wx’y
Karnaugh Maps
• Case Study: 4 variable map 00 yz 00 01 11 10 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0 1 0 1 1 10
Consider these subcubes ...
f(w,x,y,z) = xy’ + x’z’ + wxz + wx’y
Karnaugh Maps
• Case Study: 4 variable map 00 yz 00 01 11 10 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0
Now, choose the other, alternative subcube containing these 1 cells … …thereby, minimizing the number of subcubes, hence the number of product terms in the function.
1 0 1 1 10
f(w,x,y,z) = xy’ + x’z’ + wyz + wx’y
Karnaugh Maps
• Case Study: 4 variable map yz 00 01 11 10
f(w,x,y,z) = xy’ + x’z’ + wxz + wx’y f(w,x,y,z) = xy’ + x’z’ + wyz
00 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0
Both solutions are equivalent, but the second one is minimal.
1 0 1 1 10
Karnaugh Maps – Summary for SOP
• For a function of N variables (literals) draw the Karnaugh map consisting of 2 N 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: 2 L 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 00 yz 00 01 11 10 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0 1 0 1 1 10
Karnaugh Maps - POS
• Case Study: 4 variable map yz 00 01 11 10
Identify 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0
No subcubes of sizes 16, 8 or 4.
1 0 1 1 10
Karnaugh Maps - POS
• Case Study: 4 variable map yz 00 01 11 10
Identify 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0
Subcubes of size 2.
1 0 1 1 10
Karnaugh Maps - POS
• Case Study: 4 variable map yz 00 01 11 10
Identify 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 10 1 1 0 0 1 1 1 0 1 0 1 1
Note the essential 0-cells that denote essential prime implicates.
Karnaugh Maps - POS
• Case Study: 4 variable map yz 00 01 11 10
Identify 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 10 1 1 0 0 1 1 1 0 1 0 1 1
This subcube contains 0-cells that may be associated with other subcube choices, hence they are not essential 0 cells. This choice minimizes the number of subcubes.
Karnaugh Maps - POS
• Case Study: 4 variable map yz 00 01 11 10
Identify 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0
Note there are no smaller subcubes.
The subcube choices reflect a minimal POS expression.
1 0 1 1 10
Karnaugh Maps - POS
• Case Study: 4 variable map yz 00 01 11 10
Identify 2 N subcubes by decreasing N=4,3,2,1,0; using wraparound.
00 1 0 0 1 01 wx 11 1 1 0 0 1 1 1 0
Note there are no smaller subcubes.
The subcube choices reflect a minimal POS expression.
1 0 1 1 10
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 00 1 0 1 01 wx 11 0 1 0 1 1 1 0 0 0 1 10
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 • 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.
00 01 wx 11 1 0 -
?
0 1 -
?
1 0 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).
yz 00 01 11 10 • 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.
00 01 wx 11 1 0 0 1 -
1
1 0 1 1 1 0 10 -
1
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).
yz 00 01 11 10 • 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.
00 01 wx 11 1 0 0 1 -
1
1 0 1 1 1 0 10 -
1
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 , 00
PRIME IMPLICATES
yz 00 01 11 10 1 in leading to a minimal form of expression.
01 0 1 0 wx 11 1 1 1 0 0 0 1 10
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 , 00
PRIME IMPLICATES
yz 00 01 11 10 1 in leading to a minimal form of expression.
01 0 1 0 wx 11 1 1 1 0 0 0 1 10
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 , 00
PRIME IMPLICATES
yz 00 01 11 10 1 in leading to a minimal form of expression.
01 0 1 0 wx • Ignore all unused dc conditions.
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.