Implementing Complicated Patterns
(Minterms and Maxterms)

You discussed about AND, NAND, OR, NOR, XOR, XNOR, and NOT, they have clear input output relations. How can we implement more complicated patterns?

Complicated patterns can be implemented from the basic logic gates. The steps are as follows:
  1. Determine the logic circuit behavior specification
  2. Create the truth table
  3. Express the circuit as Boolean expressions-(Minterms or Maxterms)
  4. Optimize the expression-(Boolean algebraic manipulation or using Karnaugh graphs)
  5. Constructing the circuit using basic logic circuits
What is a truth table?

Any n input logic gate can have 2^n possible different combinations of input patterns. Each particular combination of inputs would have a defined output. The truth table lists all the input combinations and their corresponding outputs. Consider the example below, which has 3 inputs and 2^3 = 8 possible combinations of inputs. As a design requirement, we want z to be 1 if x1 x2 x3 are all zero, or if {(0, 0, 1), (1,1,0), (1,1,1)}, else z is set to be zero.



What are minterms and maxterms?

A minterm is when a Boolean expression results in 1 for the expressed case and zero for all other cases. A Boolean expression can consist of multiple minterms. For instance the above truth table is expressed as follows:



The Boolean expression above is expressed as sum of products of the inputs. Also, the expression is called the SUM of minterms. Note that minterms correspond to ones in the output, and all the inputs are inverted.

How do you physically implement the above abstract logic gate?

The logic gate with the above requirements can be implemented using AND and OR gates. For instance, the above example can be implemented as follows:



Is this the best possible way to implement?
How do we know that a given expression is the most efficient implementation?

Efficiency is important, and the above expression is not efficient. We can use Boolean algebra or Karnaugh map to simplify the expression.
     __ __
Z=x2 x3 + x1

What about maxterms?

Consider the example for the minterms, we can achieve the same functionality using maxterms. A maxterm is when a Boolean expression results in 0 for the expressed case and one for all other cases. A Boolean expression can consist of multiple maxterms. The expression for the example is as follows:



The physical implementation of the above logic expression in terms of maxterms is as follows: