Download Presentation
## Karnaugh Maps

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Karnaugh Maps**References: Chapters 4 and 5 in Digital Principles (Tokheim) Chapter 3 in Introduction to Digital Systems (Palmer and Perlman)**Review: Expressing truth tables**• Every truth table can be expressed in terms of the basic Boolean operators AND, OR and NOT operators. • E.g. using sum of products or product of sums. • The circuits corresponding to those truth tables can be build using AND, OR and NOTgates, which can be made out of transistors. • In the sum of products approach, the input in each line of a truth table can be expressed in terms of AND’s and NOT’s (though we will only need the rows that have 1 as an output).**Algebra Gate**• A’ means NOT A Red probe indicator high input high low low output**Algebra Gates**• AB means A AND B**Algebra Gates**• A+B means A OR B**Review: Line by Line**This is not yet a truth table. It has no outputs.**Writing the expression**• To express a truth table as a sum of products (minterm expression), take the input lines that correspond to true (high, 1) outputs. • Write the expressions for each of those input lines (as shown on the previous slide). • This step will involve NOTs and ANDs • Then feed all of those expressions into an OR gate.**Example 1 (Cont.)**• A’B’C’ + A’BC’ + AB’C + ABC • The expression one arrives at in this way is known as the sum of products. • You take the product (the AND operation) first to represent a given line. • Then you sum (the OR operation) together those expressions. • It’s also called the minterm expression.**Simplifying Boolean algebra expressions**• Recall that (A’B’C + A’BC’ + A’BC + AB’C’ + AB’C + ABC’ + ABC) and (A+B+C) correspond to the same truth table. • Before building a circuit that realizes a Boolean expression, we would like to simplify that expression as much as possible. • Fewer gates means • Fewer transistors • Less space required • Less power required (less heat generated) • More money made**A + 1 = 1**A + 0 = A A·1 = A A·0= 0 A + A = A A·A = A A + A’ = 1 A·A’ = 0 A few fundamental theorems**Simplifying a trivial example**• A´BC´ + A´BC + ABC´ + ABC • A´B (C´ + C) + AB (C´ + C) • A´B + AB • (A´ + A) B • B C+C’ means C OR (NOT C) In other words, we don’t care about C**How simplification occurs**• Note that simplification occurs when two terms differ by only one factor. • For example, the terms A´BC´ and A´BC have A’B in common and differ only in the C factor. • A’BC’ + A’BC A’B(C’+C) A’B • If the two terms differ by more than one factor, there is no simplification • For example, the terms A’BC’ and A’B’C have A’ in common and differ in the B and C factors • A’BC’ + A’B’C A’(BC’ + B’C) no simplification**Majority rules (sum of products) without simplification**• A´BC + AB´C + ABC´ + ABC NOTs OR ANDs**Majority Rules: Boolean Algebra Simplification**• A´BC + AB´C + ABC´ + ABC • The term A’BC can be combined with ABC since they differ by one and only one term • Same for AB’C and ABC • Same for ABC’ and ABC • In logic, ABC = ABC + ABC + ABC • A´BC+AB´C+ABC´+ABC+ABC+ABC • A´BC+ABC + AB´C+ABC + ABC´+ABC • (A´+A)BC + A(B´+B)C + AB(C´+C) • BC + AC + AB**Majority Rules Comparison**Gates: 3 NOTs, 4 3-input ANDs, 1 4-input OR Gates: 0 NOTs, 3 2-input ANDs, 1 3-input OR**Simplifying made easy**• Simplifying Boolean expressions is not always easy. • So we introduce next a method (a Karnaugh or K map) that is supposed to make simplification more visual. • The first step is to rearrange the inputs into what is called “Gray code” order. • Here, Gray is a guy not a color.**Gray code**• In addition to binary numbers, there is another way of representing numbers using 1’s and 0’s. • Put another way, there is another useful ordering of the combinations of 1’s and 0’s. • It is not useful for doing arithmetic, but has other purposes. • In gray code the numbers are ordered such that consecutive numbers differ by one bit only.**Gray code (Cont.)**Each row different by one bit only**Reflect lower bits and add 0’s in front of the original**rows and 1’s in front of the new rows Lower bits Add 0’s Reflect lower bits through red line Add 1’s**Reflect lower bits and 0’s then 1’s in front (again)**Add 0’s Reflect lower bits through red line Add 1’s**An important property**• In gray-code order, two consecutive rows of a truth table differ by one bit only. • Thus if a truth table is put in gray code order and if two consecutive rows contain a 1, then a simplification of the Boolean expression is possible. • A term like X + X’ can be factored out.**Trivial Example in Gray code**Note: Gray code ordered inputs**Improving**• Some combinations that differ only by a single bit are not in consecutive rows. • Thus there may be a simplification associated with such a combination and we might miss it. • So we put some of the inputs in as columns.**A row-column version**This output corresponds to the input A=0, B=1 and C=0 Place the C inputs across the top. All inputs are filled in with light blue. In this version, more inputs differing by one bit only are in adjacent positions.**Karnaugh-map**• This way of arranging truth tables combined with the rules for simplifying Boolean expressions goes by the name Karnaugh map or K map. • Named for Maurice Karnaugh.**The rules**• Put the truth table into a form with inputs in Gray code order. • Then one identifies output “blocks” (as large as possible). • A block must be a rectangle containing 1’s and only 1’s. • The simplification rules require that the number of 1’s in a block should be a power of 2 (1, 2, 4, 8, …). • However, a given output 1 can belong to more than one block.**Wrapping**• There are still cases in which inputs differing by only one bit are not adjacent (e.g. the first and last row). • Imagine that the rows wrap around, so for instance, a block can include the top and bottom rows (without intermediate rows). • Similarly for columns.**Karnaugh Example (Unsimplified Boolean algebra expression)**• WXY’Z + W’XY’Z + WX’Y’Z’ + W’X’Y’Z’ + WXYZ’ + WXY’Z’ + W’XY’Z’ + W’XYZ’**Example in Karnaugh (identifying block in gray code truth**table)**For Yellow Group: W and X inputs change; Y and Z inputs**don’t change from zeros. Group represented by Y’Z’**For Red Group: W and Z inputs change; X input does not**change from 1; Y input does not change from 0. Group represented by XY’**For Green group: W and Y inputs change; X input does not**change from 1; Z input does not change from 0. Group represented by XZ’**Result**• Y’Z’ + XY’ + X Z’ • A block of size two eliminates one Boolean variable; a block of four eliminates two Boolean variables; and so on. • To find the expression for a block, identify the inputs for that block that don’t change, AND them together, that’s your expression for the block. • Obtain an expression for each block and OR them together. Every 1 must belong to at least one block (even if it is a block onto itself).**Online References**• http://www.facstaff.bucknell.edu/mastascu/eLessonsHTML/Logic/Logic3.html • http://www.cs.usm.maine.edu/~welty/karnaugh.htm • http://en.wikipedia.org/wiki/Frank_Gray_(researcher) • http://en.wikipedia.org/wiki/Maurice_Karnaugh