36
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 Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 1: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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)

Page 2: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 3: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 4: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 5: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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)

Page 6: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 7: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 8: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 9: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 10: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 11: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 12: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 13: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 14: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 15: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 16: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 17: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 18: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 19: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 20: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 21: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 22: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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’

Page 23: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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.

Page 24: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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.

Page 25: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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.

Page 26: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 27: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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.

Page 28: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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.

Page 29: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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.

Page 30: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 31: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 32: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 33: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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.

Page 34: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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

Page 35: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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.

Page 36: CS231 Boolean Algebra1 The dual idea: products of sums Just to keep you on your toes... A product of sums (POS) expression contains: – Only AND (product)

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.