Canonical normal form
In Boolean algebra, any Boolean function can be put into the canonical disjunctive normal form or minterm canonical form and its dual canonical conjunctive normal form or maxterm canonical form. Other canonical forms include the complete sum of prime implicants or Blake canonical form, and the algebraic normal form .
Minterms are called products because they are the logical AND of a set of variables, and maxterms are called sums because they are the logical OR of a set of variables. These concepts are dual because of their complementary-symmetry relationship as expressed by De Morgan's laws.
Two dual canonical forms of any Boolean function are a "sum of minterms" and a "product of maxterms." The term "Sum of Products" is widely used for the canonical form that is a disjunction of minterms. Its De Morgan dual is a "Product of Sums" for the canonical form that is a conjunction of maxterms. These forms can be useful for the simplification of these functions, which is of great importance in the optimization of Boolean formulas in general and digital circuits in particular.
Summary
One application of Boolean algebra is digital circuit design. The goal may be to minimize the number of gates, to minimize the settling time, etc.There are sixteen possible functions of two variables, but in digital logic hardware, the simplest gate circuits implement only four of them: conjunction, disjunction, and the respective complements of those.
Most gate circuits accept more than 2 input variables; for example, the spaceborne Apollo Guidance Computer, which pioneered the application of integrated circuits in the 1960s, was built with only one type of gate, a 3-input NOR, whose output is true only when all 3 inputs are false.
Minterms
For a boolean function of variables, a product term in which each of the variables appears once is called a minterm. Thus, a minterm is a logical expression of n variables that employs only the complement operator and the conjunction operator.For example,, and are 3 examples of the 8 minterms for a Boolean function of the three variables,, and. The customary reading of the last of these is a AND b AND NOT-c.
There are 2n minterms of n variables, since a variable in the minterm expression can be in either its direct or its complemented form—two choices per variable.
Indexing minterms
Minterms are often numbered by a binary encoding of the complementation pattern of the variables, where the variables are written in a standard order, usually alphabetical. This convention assigns the value 1 to the direct form and 0 to the complemented form ; the minterm is then. For example, minterm is numbered 1102 = 610 and denoted.Functional equivalence
A given minterm n gives a true value for just one combination of the input variables. For example, minterm 5, a bGiven the truth table of a logical function, it is possible to write the function as a "sum of products". This is a special form of disjunctive normal form. For example, if given the truth table for the arithmetic sum bit u of one bit position's logic of an adder circuit, as a function of x and y from the addends and the carry in, ci:
ci | x | y | u |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
Observing that the rows that have an output of 1 are the 2nd, 3rd, 5th, and 8th, we can write u as a sum of minterms and. If we wish to verify this: evaluated for all 8 combinations of the three variables will match the table.
Maxterms
For a boolean function of variables, a sum term in which each of the variables appears once is called a maxterm. Thus, a maxterm is a logical expression of variables that employs only the complement operator and the disjunction operator. Maxterms are a dual of the minterm idea. Instead of using ANDs and complements, we use ORs and complements and proceed similarly.For example, the following are two of the eight maxterms of three variables:
There are again 2n maxterms of variables, since a variable in the maxterm expression can also be in either its direct or its complemented form—two choices per variable.
Indexing maxterms
Each maxterm is assigned an index based on the opposite conventional binary encoding used for minterms. The maxterm convention assigns the value 0 to the direct form and 1 to the complemented form. For example, we assign the index 6 to the maxterm and denote that maxterm as M6. Similarly M0 of these three variables is and M7 is .Functional equivalence
It is apparent that maxterm n gives a false value for just one combination of the input variables. For example, maxterm 5, a′ + b + c′, is false only when a and c both are true and b is false—the input arrangement where a = 1, b = 0, c = 1 results in 0.If one is given a truth table of a logical function, it is possible to write the function as a "product of sums". This is a special form of conjunctive normal form. For example, if given the truth table for the carry-out bit co of one bit position's logic of an adder circuit, as a function of x and y from the addends and the carry in, ci:
ci | x | y | co |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
Observing that the rows that have an output of 0 are the 1st, 2nd, 3rd, and 5th, we can write co as a product of maxterms and. If we wish to verify this:
evaluated for all 8 combinations of the three variables will match the table.
Dualization
The complement of a minterm is the respective maxterm. This can be easily verified by using de Morgan's law. For example:Non-canonical PoS and SoP forms
It is often the case that the canonical minterm form can be simplified to an equivalent SoP form.This simplified form would still consist of a sum of product terms. However, in the simplified form,
it is possible to have fewer product terms and/or product terms that contain fewer variables.
For example, the following 3-variable function:
a | b | c | f |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
has the canonical minterm representation:
, but it has an equivalent simplified form:
In this trivial example, it is obvious that, but the simplified form has both fewer product terms,
and the term has fewer variables.
The most simplified SoP representation of a function is referred to as a minimal SoP form.
In a similar manner, a canonical maxterm form can have a simplified PoS form.
While this example was easily simplified by applying normal algebraic methods , in less obvious cases a convenient method for finding the minimal PoS/SoP form of a function with up to four variables is using a Karnaugh map.
The minimal PoS and SoP forms are very important for finding optimal implementations of boolean functions
and minimizing logic circuits.
Application example
The sample truth tables for minterms and maxterms above are sufficient to establish the canonical form for a single bit position in the addition of binary numbers, but are not sufficient to design the digital logic unless your inventory of gates includes AND and OR. Where performance is an issue, the available parts are more likely to be NAND and NOR because of the complementing action inherent in transistor logic. The values are defined as voltage states, one near ground and one near the DC supply voltage Vcc, e.g. +5 VDC. If the higher voltage is defined as the 1 "true" value, a NOR gate is the simplest possible useful logical element.Specifically, a 3-input NOR gate may consist of 3 bipolar junction transistors with their emitters all grounded, their collectors tied together and linked to Vcc through a load impedance. Each base is connected to an input signal, and the common collector point presents the output signal. Any input that is a 1 to its base shorts its transistor's emitter to its collector, causing current to flow through the load impedance, which brings the collector voltage very near to ground. That result is independent of the other inputs. Only when all 3 input signals are 0 do the emitter-collector impedances of all 3 transistors remain very high. Then very little current flows, and the voltage-divider effect with the load impedance imposes on the collector point a high voltage very near to Vcc.
The complementing property of these gate circuits may seem like a drawback when trying to implement a function in canonical form, but there is a compensating bonus: such a gate with only one input implements the complementing function, which is required frequently in digital logic.
This example assumes the Apollo parts inventory: 3-input NOR gates only, but the discussion is simplified by supposing that 4-input NOR gates are also available.
Canonical and non-canonical consequences of NOR gates
Fact #1: a set of 8 NOR gates, if their inputs are all combinations of the direct and complement forms of the 3 input variables ci, x, and y, always produce minterms, never maxterms—that is, of the 8 gates required to process all combinations of 3 input variables, only one has the output value 1. That's because a NOR gate, despite its name, could better be viewed as the AND of the complements of its input signals.Fact #2: the reason Fact #1 is not a problem is the duality of minterms and maxterms, i.e. each maxterm is the complement of the like-indexed minterm, and vice versa.
In the minterm example above, we wrote but to perform this with a 4-input NOR gate we need to restate it as a product of sums, where the sums are the opposite maxterms. That is,
In the maxterm example above, we wrote but to perform this with a 4-input NOR gate we need to notice the equality to the NOR of the same minterms. That is,
|