Presentation is loading. Please wait.

Presentation is loading. Please wait.

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)

Similar presentations


Presentation on theme: "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)"— Presentation transcript:

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) 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)

2 CS231 Boolean Algebra2 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’ + zx’ + y + z’x’+ y + z x + y’ + z’x + y’ + zx + y + z’x + y + z MaxtermIs false when…Shorthand x + y + zx=0, y=0, z=0M 0 x + y + z’x=0, y=0, z=1M 1 x + y’ + zx=0, y=1, z=0M 2 x + y’ + z’x=0, y=1, z=1M 3 x’ + y + zx=1, y=0, z=0M 4 x’ + y + z’x=1, y=0, z=1M 5 x’ + y’ + zx=1, y=1, z=0M 6 x’ + y’ + z’x=1, y=1, z=1M 7

3 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

4 CS231 Boolean Algebra4 Minterms and maxterms are related Any minterm m i is the complement of the corresponding maxterm M i For example, m 4 ’ = M 4 because (xy’z’)’ = x’ + y + z MaxtermShorthand x + y + zM 0 x + y + z’M 1 x + y’ + zM 2 x + y’ + z’M 3 x’ + y + zM 4 x’ + y + z’M 5 x’ + y’ + zM 6 x’ + y’ + z’M 7 MintermShorthand x’y’z’m 0 x’y’zm 1 x’yz’m 2 x’yzm 3 xy’z’m 4 xy’zm 5 xyz’m 6 xyzm 7

5 CS231 Boolean Algebra5 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 beforef=  m(0,1,2,3,6) andf’=  m(4,5,7) = m 4 + m 5 + m 7 complementing(f’)’= (m 4 + m 5 + m 7 )’ sof = 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)

6 CS231 Boolean Algebra6 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

7 CS231 Boolean Algebra7 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):

8 CS231 Boolean Algebra8 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’

9 CS231 Boolean Algebra9 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: f(x,y,z)= x’y’z+ xy’z+ xyz’+ xyz = m 1 +m 5 +m 6 +m 7

10 CS231 Boolean Algebra10 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

11 CS231 Boolean Algebra11 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. f(x,y,z) = x’y’z + xy’z + xyz’ + xyzf(x,y,z) = m 1 + m 5 + m 6 + m 7

12 CS231 Boolean Algebra12 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 m i of the K-map. – Remember that the rightmost columns of the K-map are “switched.”

13 CS231 Boolean Algebra13 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.

14 CS231 Boolean Algebra14 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.)

15 CS231 Boolean Algebra15 Practice K-map 1 Simplify the sum of minterms m 1 + m 3 + m 5 + m 6.

16 CS231 Boolean Algebra16 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 m 6 is in a group all by its lonesome. The final MSP here is x’z + y’z + xyz’.

17 CS231 Boolean Algebra17 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.

18 CS231 Boolean Algebra18 Example: Simplify m 0 +m 2 +m 5 +m 8 +m 10 +m 13 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.

19 CS231 Boolean Algebra19 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 m 7. Remember that overlapping groups is possible, as shown above. y’z + yz’ + xyy’z + yz’ + xz

20 CS231 Boolean Algebra20 I don’t care! You don’t always need all 2 n 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.

21 CS231 Boolean Algebra21 Example: Seven Segment Display ABCDe 0 00001 1 00010 2 00101 3 00110 4 01000 5 01010 6 01101 7 01110 8 10001 9 10010 X X X X X X X X X X X X e b a f g c d Table for e CD AB 00011110 001001 010001 11XXXX 1010XX CD’ + B’D’ Assumption: Input represents a legal digit (0-9) Input: digit encoded as 4 bits: ABCD

22 CS231 Boolean Algebra22 Example: Seven Segment Display ABCDa 0 00001 1 00010 2 00101 3 00111 4 01000 5 01011 6 01101 7 01111 8 10001 9 10011 X X X X X X X X X X X X a f g e b c d Table for a CD AB 00011110 00111 01111 11XXXX 1011XX 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’

23 CS231 Boolean Algebra23 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 m 7, m 10 and m 13 ) are unused.

24 CS231 Boolean Algebra24 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.

25 CS231 Boolean Algebra25 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.

26 CS231 Boolean Algebra26 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’s inputs and outputs Find a Boolean expression for the circuit Find a truth table for the circuit

27 CS231 Boolean Algebra27 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 a truth 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.

28 CS231 Boolean Algebra28 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 indecimal). – For any inputs A and B, exactly one of the three outputs will be 1.

29 CS231 Boolean Algebra29 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.

30 CS231 Boolean Algebra30 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.

31 CS231 Boolean Algebra31 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.

32 CS231 Boolean Algebra32 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

33 CS231 Boolean Algebra33 Step 4: Drawing the circuits G = 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.

34 CS231 Boolean Algebra34 Testing this in LogicWorks Where do the inputs come from? Binary switches, in LogicWorks How do you view outputs? Use binary probes. switches probe

35 CS231 Boolean Algebra35 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.

36 CS231 Boolean Algebra36 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.


Download ppt "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)"

Similar presentations


Ads by Google