Karnaugh Maps

A visual method for simplifying Boolean expressions - group adjacent cells to minimize logic.

Karnaugh maps (K-maps) are a visual tool for simplifying Boolean expressions. Instead of applying algebraic rules mechanically, you draw a grid, fill in the truth table values, and group adjacent 1s. Each group corresponds to a simplified product term. For expressions with 2 to 4 variables, K-maps are faster and more intuitive than algebraic simplification.

Objectives

  • Construct 2, 3, and 4-variable Karnaugh maps from truth tables
  • Identify valid groups: sizes must be powers of 2 (1, 2, 4, 8, 16)
  • Apply wrap-around grouping on edges and corners
  • Extract minimized SOP expressions from K-map groupings
  • Use don't care conditions (X) for additional simplification
  • Extract POS expressions by grouping the 0s

Key Takeaways

  • K-maps are a visual tool for minimizing Boolean expressions with 2-4 variables
  • Gray code ordering ensures adjacent cells differ by exactly one variable
  • Groups must be rectangular, contain only 1s, and have power-of-2 size
  • Larger groups = simpler terms. Fewer groups = fewer product terms.
  • Don't cares can be treated as 1 or 0 - choose what gives the best grouping
  • Edges and corners wrap around - don't forget these adjacencies
  • For POS, group the 0s instead of the 1s

Applications

  • Circuit Design: Minimizing gate count in combinational logic.
  • PLD Programming: Optimizing expressions for PAL/GAL/CPLD devices.
  • State Machine Design: Minimizing next-state and output logic.
  • Quick Verification: Visually confirming Boolean simplifications.

Practice Problems

Problem 1: Minimize f(A,B,C) = Σm(0,2,4,5,6) using a 3-variable K-map.

Problem 2: Minimize f(A,B,C,D) = Σm(0,1,2,5,8,9,10) using a 4-variable K-map.

Problem 3: A BCD-to-something converter has don't cares for inputs 10-15. f(A,B,C,D) = Σm(1,3,5) + Σd(10,11,12,13,14,15). Minimize.

Problem 4: Why are K-map columns ordered 00, 01, 11, 10 instead of 00, 01, 10, 11?

Problem 5: In a 4-variable K-map, which cells form a valid group: {0, 2, 8, 10}?