Download Boolean Algebra: Minterms, Maxterms, and K-Maps - Prof. Maria J. Garzaran and more Study notes Computer Architecture and Organization in PDF only on Docsity!
Minterms, Maxterms,
and K-Maps
Summary so far
- So far:
- A bunch of Boolean algebra trickery for simplifying expressions and circuits
- The algebra guarantees us that the simplified circuit is equivalent to the original one
- Next:
- An alternative simplification method
- We’ll start using all this stuff to build and analyze bigger, more useful, circuits
Minterms
- A minterm is a special product of literals, in which each input variable appears exactly once.
- A function with n variables has 2 n minterms (since each variable can appear complemented or not)
- A three-variable function, such as f(x,y,z), has 2^3 = 8 minterms:
- Each minterm is true for exactly one combination of inputs: x’y’z’ x’y’z x’yz’ x’yz xy’z’ xy’z xyz’ xyz Minterm Is true when… Shorthand x’y’z’ x=0, y=0, z=0 m 0 x’y’z x=0, y=0, z=1 m 1 x’yz’ x=0, y=1, z=0 m 2 x’yz x=0, y=1, z=1 m 3 xy’z’ x=1, y=0, z=0 m 4 xy’z x=1, y=0, z=1 m 5 xyz’ x=1, y=1, z=0 m 6 xyz x=1, y=1, z=1 m 7
Sum of minterms form
- Every function can be written as a sum of minterms, which is a special kind of sum of products form
- The sum of minterms form for any function is unique
- If you have a truth table for a function, you can write a sum of minterms expression just by picking out the rows of the table where the function output is 1. x y z f(x,y,z) f’(x,y,z) 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 f = x’y’z’ + x’y’z + x’yz’ + x’yz + xyz’ = m 0 + m 1 + m 2 + m 3 + m 6 = Σm(0,1,2,3,6) f’ = xy’z’ + xy’z + xyz = m 4 + m 5 + m 7 = Σm(4,5,7) f’ contains all the minterms not in f
Maxterms
- A maxterm is a sum of literals, in which each input variable appears exactly once.
- A function with n variables has 2 n maxterms
- The maxterms for a three-variable function f(x,y,z):
- Each maxterm is false for exactly one combination of inputs: x’ + y’ + z’ x’ + y’ + z x’ + y + z’ x’+ y + z x + y’ + z’ x + y’ + z x + y + z’ x + y + z
Maxterm Is false when… Shorthand
x + y + z x=0, y=0, z=0 M 0 x + y + z’ x=0, y=0, z=1 M 1 x + y’ + z x=0, y=1, z=0 M 2 x + y’ + z’ x=0, y=1, z=1 M 3 x’ + y + z x=1, y=0, z=0 M 4 x’ + y + z’ x=1, y=0, z=1 M 5 x’ + y’ + z x=1, y=1, z=0 M 6 x’ + y’ + z’ x=1, y=1, z=1 M 7
Product of maxterms form
- Every function can be written as a unique product of maxterms
- If you have a truth table for a function, you can write a product of maxterms expression by picking out the rows of the table where the function output is 0. (Be careful if you’re writing the actual literals!) x y z f(x,y,z) f’(x,y,z) 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 f = (x’ + y + z)(x’ + y + z’)(x’ + y’ + z’) = M 4 M 5 M 7 = ∏M(4,5,7) f’ = (x + y + z)(x + y + z’)(x + y’ + z) (x + y’ + z’)(x’ + y’ + z) = M 0 M 1 M 2 M 3 M 6 = ∏M(0,1,2,3,6) f’ contains all the maxterms not in f
Converting between standard forms
- We can convert a sum of minterms to a product of maxterms
- In general, just replace the minterms with maxterms, using maxterm numbers that don’t appear in the sum of minterms:
- The same thing works for converting from a product of maxterms to a sum of minterms From before f = Σm(0,1,2,3,6) and f’ = Σm(4,5,7) = m 4 + m 5 + m 7 complementing (f’)’ = (m 4 + m 5 + m 7 )’ so f = m 4 ’ m 5 ’ m 7 ’ [ DeMorgan’s law ] = M 4 M 5 M 7 [ By the previous page ] = ∏M(4,5,7) f = Σm(0,1,2,3,6) = ∏M(4,5,7)
Karnaugh maps
- Last time we saw applications of Boolean logic to circuit design.
- The basic Boolean operations are AND, OR and NOT.
- These operations can be combined to form complex expressions, which can also be directly translated into a hardware circuit.
- Boolean algebra helps us simplify expressions and circuits.
- Today we’ll look at a graphical technique for simplifying an expression into a minimal sum of products (MSP) form: - There are a minimal number of product terms in the expression. - Each term has a minimal number of literals.
- Circuit-wise, this leads to a minimal two-level implementation.
Karnaugh map simplifications
- Imagine a two-variable sum of minterms: x’y’ + x’y
- Both of these minterms appear in the top row of a Karnaugh map, which means that they both contain the literal x’.
- What happens if you simplify this expression using Boolean algebra? x’y’ + x’y = x’(y’ + y) [ Distributive ] = x’ • 1 [ y + y’ = 1 ] = x’ [ x • 1 = x ] Y x’y’ x’y X xy’ xy
More two-variable examples
- Another example expression is x’y + xy.
- Both minterms appear in the right side, where y is uncomplemented.
- Thus, we can reduce x’y + xy to just y.
- How about x’y’ + x’y + xy?
- We have x’y’ + x’y in the top row, corresponding to x’.
- There’s also x’y + xy in the right side, corresponding to y.
- This whole expression can be reduced to x’ + y. Y x’y’ x’y X xy’ xy Y x’y’ x’y X xy’ xy
Why the funny ordering?
- With this ordering, any group of 2, 4 or 8 adjacent squares on the map contains common literals that can be factored out.
- “Adjacency” includes wrapping around the left and right sides:
- We’ll use this property of adjacent squares to do our simplifications. x’y’z + x’yz = x’z(y’ + y) = x’z • 1 = x’z x’y’z’ + xy’z’ + x’yz’ + xyz’ = z’(x’y’ + xy’ + x’y + xy) = z’(y’(x’ + x) + y(x’ + x)) = z’(y’+y) = z’ Y x’y’z’ x’y’z x’yz x’yz’ X xy’z’ xy’z xyz xyz’ Z Y x’y’z’ x’y’z x’yz x’yz’ X xy’z’ xy’z xyz xyz’ Z
Example K-map simplification
- Let’s consider simplifying f(x,y,z) = xy + y’z + xz.
- First, you should convert the expression into a sum of minterms form, if it’s not already. - The easiest way to do this is to make a truth table for the function, and then read off the minterms. - You can either write out the literals or use the minterm shorthand.
- Here is the truth table and sum of minterms for our example: x y z f(x,y,z) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 f(x,y,z) = x’y’z + xy’z + xyz’ + xyz = m 1 + m 5 + m 6 + m 7
Making the example K-map
- Next up is drawing and filling in the K-map.
- Put 1s in the map for each minterm, and 0s in the other squares.
- You can use either the minterm products or the shorthand to show you where the 1s and 0s belong.
- In our example, we can write f(x,y,z) in two equivalent ways.
- In either case, the resulting K-map is shown below. Y 0 1 0 0 X 0 1 1 1 Z Y x’y’z’ x’y’z x’yz x’yz’ X xy’z’ xy’z xyz xyz’ Z f(x,y,z) = x’y’z + xy’z + xyz’ + xyz Y m 0 m 1 m 3 m 2 X m 4 m 5 m 7 m 6 Z f(x,y,z) = m 1 + m 5 + m 6 + m 7
K-maps from truth tables
- You can also fill in the K-map directly from a truth table.
- The output in row i of the table goes into square mi of the K-map.
- Remember that the rightmost columns of the K-map are “switched.” Y m 0 m 1 m 3 m 2 X m 4 m 5 m 7 m 6 Z x y z f(x,y,z) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Y 0 1 0 0 X 0 1 1 1 Z