Upload
scot-harrington
View
217
Download
0
Embed Size (px)
DESCRIPTION
CS231 Boolean Algebra3 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!) f = (x’ + y + z)(x’ + y + z’)(x’ + y’ + z’) = M 4 M 5 M 7 = P 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 = P M(0,1,2,3,6) f’ contains all the maxterms not in f
Citation preview
CS231 Boolean Algebra 1
The dual idea: products of sums• Just to keep you on your toes... • A product of sums (POS) expression contains:
– Only AND (product) operations at the “outermost” level– Each term must be a sum of literals
• Product of sums expressions can be implemented with two-level circuits– literals and their complements at the “0th” level– OR gates at the first level– a single AND gate at the second level
• Compare this with sums of products
f(x,y,z) = y’ (x’ + y + z’) (x + z)
CS231 Boolean Algebra 2
Maxterms• A maxterm is a sum of literals, in which each input variable
appears exactly once.• A function with n variables has 2n 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 + zx + y’ + z’ x + y’ + z x + y + z’ x + y + z
Maxterm Is false when… Shorthandx + y + z x=0, y=0, z=0 M0x + y + z’ x=0, y=0, z=1 M1x + y’ + z x=0, y=1, z=0 M2x + y’ + z’ x=0, y=1, z=1 M3x’ + y + z x=1, y=0, z=0 M4x’ + y + z’ x=1, y=0, z=1 M5x’ + y’ + z x=1, y=1, z=0 M6x’ + y’ + z’ x=1, y=1, z=1 M7
CS231 Boolean Algebra 3
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 00 0 1 1 00 1 0 1 00 1 1 1 01 0 0 0 11 0 1 0 11 1 0 1 01 1 1 0 1
f = (x’ + y + z)(x’ + y + z’)(x’ + y’ + z’)= M4 M5 M7
= PM(4,5,7)
f’ = (x + y + z)(x + y + z’)(x + y’ + z)
(x + y’ + z’)(x’ + y’ + z)= M0 M1 M2 M3 M6 = PM(0,1,2,3,6)
f’ contains all the maxterms not in f
CS231 Boolean Algebra 4
Minterms and maxterms are related• Any minterm mi is the complement of the corresponding maxterm
Mi
• For example, m4’ = M4 because (xy’z’)’ = x’ + y + z
Maxterm Shorthandx + y + z M0x + y + z’ M1x + y’ + z M2x + y’ + z’ M3x’ + y + z M4x’ + y + z’ M5x’ + y’ + z M6x’ + y’ + z’ M7
Minterm Shorthandx’y’z’ m0x’y’z m1x’yz’ m2x’yz m3xy’z’ m4xy’z m5xyz’ m6xyz m7
CS231 Boolean Algebra 5
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)
= m4 + m5 + m7complementing (f’)’ = (m4 + m5 + m7)’so f = m4’ m5’ m7’ [ DeMorgan’s law ]
= M4 M5 M7 [ By the previous page ]
= M(4,5,7)
f = m(0,1,2,3,6)= M(4,5,7)
CS231 Boolean Algebra 6
Summary• 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
– Introducing some standard forms and terminology• Next:
– An alternative simplification method– We’ll start using all this stuff to build and analyze bigger, more
useful, circuits
CS231 Boolean Algebra 7
A three-variable Karnaugh map• For a three-variable expression with inputs x, y, z, the
arrangement of minterms is more tricky:
• Another way to label the K-map (use whichever you like):Y
x’y’z’ x’y’z x’yz x’yz’X xy’z’ xy’z xyz xyz’
Z
Ym0 m1 m3 m2
X m4 m5 m7 m6Z
YZ00 01 11 10
0 x’y’z’ x’y’z x’yz x’yz’X 1 xy’z’ xy’z xyz xyz’
YZ00 01 11 10
0 m0 m1 m3 m2X 1 m4 m5 m7 m6
CS231 Boolean Algebra 8
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’
Yx’y’z’ x’y’z x’yz x’yz’
X xy’z’ xy’z xyz xyz’Z
Yx’y’z’ x’y’z x’yz x’yz’
X xy’z’ xy’z xyz xyz’Z
CS231 Boolean Algebra 9
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 00 0 1 10 1 0 00 1 1 01 0 0 01 0 1 11 1 0 11 1 1 1
f(x,y,z) = x’y’z + xy’z + xyz’ + xyz
= m1 + m5 + m6 + m7
CS231 Boolean Algebra 10
Unsimplifying expressions • You can also convert the expression to a sum of minterms with
Boolean algebra.– Apply the distributive law in reverse to add in missing variables.– Very few people actually do this, but it’s occasionally useful.
• In both cases, we’re actually “unsimplifying” our example expression.– The resulting expression is larger than the original one!– But having all the individual minterms makes it easy to combine
them together with the K-map.
xy + y’z + xz = (xy 1) + (y’z 1) + (xz 1)= (xy (z’ + z)) + (y’z (x’ + x)) + (xz (y’ + y))= (xyz’ + xyz) + (x’y’z + xy’z) + (xy’z + xyz)= xyz’ + xyz + x’y’z + xy’z
CS231 Boolean Algebra 11
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.Y0 1 0 0
X 0 1 1 1Z
Yx’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’ + xyzY
m0 m1 m3 m2X m4 m5 m7 m6
Z
f(x,y,z) = m1 + m5 + m6 + m7
CS231 Boolean Algebra 12
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
m0 m1 m3 m2X m4 m5 m7 m6
Z
x y z f (x,y,z)0 0 0 00 0 1 10 1 0 00 1 1 0
1 0 0 01 0 1 11 1 0 11 1 1 1
Y0 1 0 0
X 0 1 1 1Z
CS231 Boolean Algebra 13
Grouping the minterms together• The most difficult step is grouping together all the 1s in the K-map.
– Make rectangles around groups of one, two, four or eight 1s.– All of the 1s in the map should be included in at least one
rectangle. – Do not include any of the 0s.
• Each group corresponds to one product term. For the simplest result:– Make as few rectangles as possible, to minimize the number of
products in the final expression.– Make each rectangle as large as possible, to minimize the number
of literals in each term.– It’s all right for rectangles to overlap, if that makes them larger.
Y0 1 0 0
X 0 1 1 1Z
CS231 Boolean Algebra 14
Reading the MSP from the K-map• Finally, you can find the MSP.
– Each rectangle corresponds to one product term.– The product is determined by finding the common literals in that
rectangle.
• For our example, we find that xy + y’z + xz = y’z + xy. (This is one of the additional algebraic laws from last time.)
Yx’y’z’ x’y’z x’yz x’yz’
X xy’z’ xy’z xyz xyz’Z
Y0 1 0 0
X 0 1 1 1Z
CS231 Boolean Algebra 15
Practice K-map 1• Simplify the sum of minterms m1 + m3 + m5 + m6.
Y
XZ
Ym0 m1 m3 m2
X m4 m5 m7 m6Z
CS231 Boolean Algebra 16
Solutions for practice K-map 1• Here is the filled in K-map, with all groups shown.
– The magenta and green groups overlap, which makes each of them as large as possible.
– Minterm m6 is in a group all by its lonesome.
• The final MSP here is x’z + y’z + xyz’.
Y0 1 1 0
X 0 1 0 1Z
CS231 Boolean Algebra 17
Four-variable K-maps• We can do four-variable expressions too!
– The minterms in the third and fourth columns, and in the third and fourth rows, are switched around.
– Again, this ensures that adjacent squares have common literals.
• Grouping minterms is similar to the three-variable case, but:– You can have rectangular groups of 1, 2, 4, 8 or 16 minterms.– You can wrap around all four sides.
Ym0 m1 m3 m2m4 m5 m7 m6m12 m13 m15 m14
XW m8 m9 m11 m10
Z
Yw’x’y’z’ w’x’y’z w’x’yz w’x’yz’w’xy’z’ w’xy’z w’xyz w’xyz’wxy’z’ wxy’z wxyz wxyz’ X
W wx’y’z’ wx’y’z wx’yz wx’yz’Z
CS231 Boolean Algebra 18
Example: Simplify m0+m2+m5+m8+m10+m13 • The expression is already a sum of minterms, so here’s the K-map:
• We can make the following groups, resulting in the MSP x’z’ + xy’z.
Y1 0 0 10 1 0 00 1 0 0 X
W 1 0 0 1Z
Ym0 m1 m3 m2m4 m5 m7 m6m12 m13 m15 m14
XW m8 m9 m11 m10
Z
Y1 0 0 10 1 0 00 1 0 0 X
W 1 0 0 1Z
Yw’x’y’z’ w’x’y’z w’x’yz w’x’yz’w’xy’z’ w’xy’z w’xyz w’xyz’wxy’z’ wxy’z wxyz wxyz’ X
W wx’y’z’ wx’y’z wx’yz wx’yz’Z
CS231 Boolean Algebra 19
K-maps can be tricky!• There may not necessarily be a unique MSP. The K-map below yields two
valid and equivalent MSPs, because there are two possible ways to include minterm m7.
• Remember that overlapping groups is possible, as shown above.
Y0 1 0 1
X 0 1 1 1Z
y’z + yz’ + xy y’z + yz’ + xz
Y0 1 0 1
X 0 1 1 1Z
Y0 1 0 1
X 0 1 1 1Z
CS231 Boolean Algebra 20
I don’t care!• You don’t always need all 2n input combinations in an n-variable function.
– If you can guarantee that certain input combinations never occur.– If some outputs aren’t used in the rest of the circuit.
• We mark don’t-care outputs in truth tables and K-maps with Xs.
• Within a K-map, each X can be considered as either 0 or 1. You should pick the interpretation that allows for the most simplification.
x y z f (x,y,z)0 0 0 00 0 1 10 1 0 X0 1 1 01 0 0 01 0 1 11 1 0 X1 1 1 1
CS231 Boolean Algebra 21
Example: Seven Segment DisplayA B C D e
0 0 0 0 0 11 0 0 0 1 02 0 0 1 0 13 0 0 1 1 04 0 1 0 0 05 0 1 0 1 06 0 1 1 0 17 0 1 1 1 08 1 0 0 0 19 1 0 0 1 0X XX XX XX XX XX X
e
ba
fg
cd
Table for e
CDAB 00 01 11 10
00 1 0 0 1
01 0 0 0 1
11 X X X X
10 1 0 X X
CD’ + B’D’
Assumption: Input represents a legal digit (0-9)
Input: digit encoded as 4 bits: ABCD
CS231 Boolean Algebra 22
Example: Seven Segment DisplayA B C D a
0 0 0 0 0 11 0 0 0 1 02 0 0 1 0 13 0 0 1 1 14 0 1 0 0 05 0 1 0 1 16 0 1 1 0 17 0 1 1 1 18 1 0 0 0 19 1 0 0 1 1X XX XX XX XX XX X
af
ge
b
c
d
Table for a
CDAB 00 01 11 10
00 1 1 1
01 1 1 1
11 X X X X
10 1 1 X X
A + C + BD + B’D’The expression in book (p 110) is different because it
assumes “0” for “illegal” inputs: A’C+A’BD+B’C’D’+AB’C’
CS231 Boolean Algebra 23
Y 1 0 0 1 1 1 x 0
0 x 1 1 X W 1 0 0 x Z
Practice K-map 3• Find a MSP for
f(w,x,y,z) = m(0,2,4,5,8,14,15), d(w,x,y,z) = m(7,10,13)
This notation means that input combinations wxyz = 0111, 1010 and 1101 (corresponding to minterms m7, m10 and m13) are unused.
CS231 Boolean Algebra 24
Y 1 0 0 1 1 1 x 0 X W 0 x 1 1 1 0 0 x Z
Solutions for practice K-map 3• Find a MSP for:
f(w,x,y,z) = m(0,2,4,5,8,14,15), d(w,x,y,z) = m(7,10,13)
All prime implicants are circled. We can treat X’s as 1s if we want, so the red group includes two X’s, and the light blue group includes one X.
The only essential prime implicant is x’z’. The red group is not essential because the minterms in it also appear in other groups.
The MSP is x’z’ + wxy + w’xy’. It turns out the red group is redundant; we can cover all of the minterms in the map without it.
CS231 Boolean Algebra 25
K-map Summary• K-maps are an alternative to algebra for simplifying expressions.
– The result is a minimal sum of products, which leads to a minimal two-level circuit.
– It’s easy to handle don’t-care conditions.– K-maps are really only good for manual simplification of small
expressions... but that’s good enough for CS231!• Things to keep in mind:
– Remember the correct order of minterms on the K-map.– When grouping, you can wrap around all sides of the K-map,
and your groups can overlap.– Make as few rectangles as possible, but make each of them as
large as possible. This leads to fewer, but simpler, product terms.
– There may be more than one valid solution.
CS231 Boolean Algebra 26
Circuit analysis summary• After finding the circuit inputs and outputs, you can come up with
either an expression or a truth table to describe what the circuit does.
• You can easily convert between expressions and truth tables.
Find the circuit’sinputs and outputs
Find a Booleanexpression
for the circuitFind a truth table
for the circuit
CS231 Boolean Algebra 27
Basic circuit design• The goal of circuit design is to build hardware that computes some
given function.• The basic idea is to write the function as a Boolean expression,
and then convert that to a circuit.
Step 1:Figure out how many inputs and outputs you have.
Step 2:Make sure you have a description of the function, either as atruth table or a Boolean expression.
Step 3:Convert this into a simplified Boolean expression. (For this course,we’ll expect you to find MSPs, unless otherwise stated.)
Step 4:Build the circuit based on your simplified expression.
CS231 Boolean Algebra 28
Design example: Comparing 2-bit numbers• Let’s design a circuit that compares two 2-bit numbers, A and B.
The circuit should have three outputs:– G (“Greater”) should be 1 only when A > B.– E (“Equal”) should be 1 only when A = B.– L (“Lesser”) should be 1 only when A < B.
• Make sure you understand the problem.– Inputs A and B will be 00, 01, 10, or 11 (0, 1, 2 or 3 in
decimal).– For any inputs A and B, exactly one of the three outputs will be
1.
CS231 Boolean Algebra 29
Step 1: How many inputs and outputs?• Two 2-bit numbers means a total of four inputs.
– We should name each of them.– Let’s say the first number consists of digits A1 and A0 from left
to right, and the second number is B1 and B0.• The problem specifies three outputs: G, E and L.
• Here is a block diagram that shows the inputs and outputs explicitly.
• Now we just have to design the circuitry that goes into the box.
CS231 Boolean Algebra 30
Step 2: Functional specification• For this problem, it’s probably
easiest to start with a truth table. This way, we can explicitly show the relationship (>, =, <) between inputs.
• A four-input function has a sixteen-row truth table.
• It’s usually clearest to put the truth table rows in binary numeric order; in this case, from 0000 to 1111 for A1, A0, B1 and B0.
• Example: 01 < 10, so the sixth row of the truth table (corresponding to inputs A=01 and B=10) shows that output L=1, while G and E are both 0.
A1 A0 B1 B0 G E L 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1
CS231 Boolean Algebra 31
Step 2: Functional specification• For this problem, it’s probably
easiest to start with a truth table. This way, we can explicitly show the relationship (>, =, <) between inputs.
• A four-input function has a sixteen-row truth table.
• It’s usually clearest to put the truth table rows in binary numeric order; in this case, from 0000 to 1111 for A1, A0, B1 and B0.
• Example: 01 < 10, so the sixth row of the truth table (corresponding to inputs A=01 and B=10) shows that output L=1, while G and E are both 0.
A1 A0 B1 B0 G E L0 0 0 0 0 1 00 0 0 1 0 0 10 0 1 0 0 0 10 0 1 1 0 0 10 1 0 0 1 0 00 1 0 1 0 1 00 1 1 0 0 0 10 1 1 1 0 0 11 0 0 0 1 0 01 0 0 1 1 0 01 0 1 0 0 1 01 0 1 1 0 0 11 1 0 0 1 0 01 1 0 1 1 0 01 1 1 0 1 0 01 1 1 1 0 1 0
CS231 Boolean Algebra 32
Step 3: Simplified Boolean expressions• Let’s use K-maps. There are three functions (each with the same
inputs A1 A0 B1 B0), so we need three K-maps.
G(A1,A0,B1,B0) =
A1 A0 B0’ + A0 B1’ B0’ + A1 B1’
E(A1,A0,B1,B0) =A1’ A0’ B1’ B0’ +A1’ A0 B1’ B0 +A1 A0 B1 B0 +A1 A0’ B1 B0’
L(A1,A0,B1,B0) =A1’ A0’ B0 + A0’ B1 B0 +A1’ B1
B10 0 0 01 0 0 01 1 0 1 A0
A1 1 1 0 0B0
B11 0 0 00 1 0 00 0 1 0 A0
A1 0 0 0 1B0
B10 1 1 10 0 1 10 0 0 0 A0
A1 0 0 1 0B0
CS231 Boolean Algebra 33
Step 4: Drawing the circuitsG = A1 A0 B0’ + A0 B1’ B0’ + A1 B1’E = A1’ A0’ B1’ B0’ + A1’ A0 B1’ B0 + A1 A0 B1 B0 + A1 A0’ B1 B0’L = A1’ A0’ B0 + A0’ B1 B0 + A1’ B1
LogicWorks has gates with NOTs attached (small bubbles) for clearer diagrams.
CS231 Boolean Algebra 34
Testing this in LogicWorks• Where do the inputs come from? Binary switches, in LogicWorks• How do you view outputs? Use binary probes.
switches
probe
CS231 Boolean Algebra 35
Example wrap-up• Data representations.
– We used three outputs, one for each possible scenario of the numbers being greater, equal or less than each other.
– This is sometimes called a “one out of three” code.• K-map advantages and limitations.
– Our circuits are two-level implementations, which are relatively easy to draw and follow.
– But, E(A1,A0,B1,B0) couldn’t be simplified at all via K-maps. Can you do better using Boolean algebra?
• Extensibility.– We used a brute-force approach, listing all possible inputs and
outputs. This makes it difficult to extend our circuit to compare three-bit numbers, for instance.
– We’ll have a better solution after we talk about computer arithmetic.
CS231 Boolean Algebra 36
Summary• Functions can be represented with
expressions, truth tables or circuits. These are all equivalent, and we can arbitrarily transform between them.
• Circuit analysis involves finding an expression or truth table from a given logic diagram.
• Designing a circuit requires you to first find a (simplified) Boolean expression for the function you want to compute. You can then convert the expression into a circuit.
• Next time we’ll talk about some building blocks for making larger combinational circuits, and the role of abstraction in designing large systems.