Alternative way to Boolean Function Simplification Karnaugh Map CIT 595 Spring 2010 Simplification of Boolean functions leads to simpler (and usually faster) digital circuits Simplifying Boolean functions using identities is time-consuming and/or error-prone Look at systematic method for reducing Boolean expressions using Kmap CIT 595 2 Karnaugh Map In 1953, Maurice Karnaugh was a telecommunications engineer at Bell Labs He invented a graphical way of visualizing and then simplifying Boolean expressions This graphical representation, now known as a Karnaugh map, or Kmap, is named in his honor Description of Kmap & Terminology A Kmap - matrix consisting of rows and columns that represent the output values of a Boolean function Kmap can be of two forms Sum-of-Product (SOP) Form Product-of-Sum (POS) Form CIT 595 3 CIT 595 4 1
Kmap for Sum-Of-Product Form The output values placed in each cell of the matrix are derived from the minterms of a Boolean function Minterm Example with Two variables For example, the minterms for a function having the inputs x and y are: A minterm is a product term that contains all of the function s variables exactly once, either complemented or not complemented Note: If variable input is 1, then it is written as it is else the complement of that variable is written CIT 595 5 CIT 595 6 Minterm Example with Three variables Similarly, a function having three inputs, has the minterms that are shown in this diagram Kmap Cell using SOP form: Example 1 A Kmap has a cell for each minterm This means that it has a cell for each line for the truth table of a function The truth table for the function F(x,y) = xy is shown at the right along with its corresponding Kmap CIT 595 7 CIT 595 8 2
Kmap Cell using SOP Form: Example 2 Truth table and Kmap for the function, F(x,y) = x + y This function is equivalent to the OR of all of the minterms that have a value of 1 (Sum of Product Form). Thus: Kmap Simplification for Two Variables using SOP Form Of course, the minterm function that we derived from our Kmap was not in simplest terms That s what we started with in this example We can, however, reduce our complicated expression to its simplest terms by finding adjacent 1s in the Kmap that can be collected into groups that are powers of two In our example, we have two such groups Can you find them? CIT 595 9 CIT 595 Example 2 10 Reduced Expression for Example 2 In the green group (vertical), it does not matter what value x has, hence the group is only dependent on variable y Similarly in the pink group (horizontal), it does not matter what value y has, the group is only dependent on variable x Hence the Boolean function reduces to x + y Rules for Kmap Simplification using Sum of Products Form (SOP) The rules of Kmap simplification are: Groupings can contain only 1s; no 0s Groups can be formed only at right angles; diagonal groups are not allowed The number of 1s in a group must be a power of 2 even if it contains a single 1 The groups must be made as large as possible Groups can overlap and wrap around the sides of the Kmap CIT 595 11 CIT 595 12 3
Kmap with Three Variables (SOP form) A Kmap for three variables is constructed as shown in the diagram below We have placed each minterm in the cell that will hold its value Notice that the values for the yz combination at the top of the matrix form a pattern that is not a normal binary sequence A Kmap must be ordered so that each minterm differs only in one variable from each neighboring cell hence 11 appears before 10 Rule!! (will help simplification) Kmap with Three Variables (SOP Form) Note: Thus, the first row of the Kmap contains all minterms where x has a value of zero The first column contains all minterms where y and z both have a value of zero CIT 595 13 CIT 595 14 Kmap - Three Variable (SOP Form): Example 1 Consider the function: Its Kmap is given below: What is the largest group of 1s that is a power of 2? Kmap - Three Variable (SOP form): Example1 This grouping tells us that changes in the variables x and y have no influence upon the value of the function: They are irrelevant This means that the function, reduces to F(X,Y,Z) = Z You could verify this reduction with identities or a truth table. CIT 595 15 CIT 595 16 4
Kmap - Three Variable (SOP Form): Example 2 Now for a more complicated Kmap. Consider the function: Its Kmap is shown below. There are (only) two groupings of 1s. Can you find them? Kmap - Three Variable (SOP form): Example 2 In this Kmap, we see an example of a group that wraps around the sides of a Kmap This group tells us that the values of x and y are not relevant to the term of the function that is encompassed by the group What does this tell us about this term of the function? It is dependent on What about the green group in the top row? CIT 595 17 CIT 595 18 Kmap - Three Variable (SOP): Example 2 The green group in the top row tells us that only the value of x is significant in that group. We see input value of x is 0 i.e. minterm is complemented in that row, so the other term of the reduced function is Our reduced function is: Kmap Simplification for Four Variables (SOP Form) The model can be extended to accommodate the 16 minterms that are produced d by a four-input function This is the format for a 16-minterm Kmap Recall that we had six minterms in our original function!! The function is considerably minimized CIT 595 19 CIT 595 20 5
Kmap Four Variables (SOP Form) Example We have populated the Kmap shown below with the nonzero minterms from the function: Can you identify (only) three groups in this Kmap? Kmap Four Variables (SOP Form) Example The three groups consist of: A purple group entirely within the Kmap at the right A pink group that wraps the top and bottom A green group that spans the corners Thus we have three terms in our final function: Recall llthe Rules of Simplification CIT 595 21 CIT 595 22 Choosing Kmap Groups It is possible to have different pick groups within a Kmap, while keeping the groups as large as possible The (different) functions that result from the groupings below are logically equivalent Don t Care Conditions Real circuits don t always need to have an output defined for every possible input For example, some calculator displays consist of 7- segment LEDs. These LEDs can display 2 7-1 patterns, but only ten of them are useful If a circuit is designed so that a particular set of inputs can never happen, we call this set of inputs a don t care condition They are very helpful to us in circuit simplification using Kmap CIT 595 23 CIT 595 24 6
Don t Care Example (SOP Form) In a Kmap, a don t care condition is identified by an X in the cell of the minterm(s) for the don t care inputs, as shown below In performing the simplification, we are free to include or ignore the X s when creating our groups Don t Care Example (SOP Form) In one grouping in the Kmap below, we have the function: CIT 595 25 CIT 595 26 Don t Care Example w/ Different Grouping A different grouping gives us the function: Don t Care Condition Example The truth table of: is different from the truth table of: However, the values for which they differ, are the inputs for which we have don t care conditions CIT 595 27 CIT 595 28 7
Recapping the rules of Kmap Simplification using Sum-Of-Product Form Groupings can contain only 1s; no 0s Groups can be formed only at right angles; diagonal groups are not allowed The number of 1s in a group must be a power of 2 even if it contains a single 1 The groups must be made as large as possible Groups can overlap and wrap around the sides of the Kmap Use don t care conditions when you can Kmap using Product-of-Sum (POS) Form The output values placed in each cell are derived from the maxterm of a Boolean function A maxterm is a sum term that contains all of the function s variables exactly once, either complemented or not complemented CIT 595 29 CIT 595 30 X Y Maxterm 0 0 X+Y 0 1 X + Y 1 0 X + Y 1 1 X + Y Maxterm Example Note: If variable input is 0, then it is written as it is else the complement of that variable is written CIT 595 31 Kmap Rules using Product-of-Sum Form Groupings can contain only 0s; no 1s Groups can be formed only at right angles; diagonal groups are not allowed The number of 0s in a group must be a power of 2 even if it contains a single 0 The groups must be made as large as possible Groups can overlap and wrap around the sides of the Kmap Use don t care conditions when you can CIT 595 32 8
Kmap Conclusion Kmaps provide an easy graphical method of simplifying Boolean expressions A Kmap is a matrix consisting of the outputs of the minterms of a Boolean function In this section, we have discussed 2-3- and 4- input Kmaps. This method can be extended to any number of inputs through the use of multiple tables CIT 595 33 9