Standard Boolean Forms: SOP Sum of Products Form, or POS Product of Sums Form
Standard Boolean Forms: SOP Sum of Products Form, or POS Product of Sums Form
The following are all valid sum terms over the two variables X and Y.
X+Y X+Y X +Y X +Y
Single literals
According to the strict definition, a single literal is either a sum term or a
product term, depending on the context. This is necessary to avoid having to
give a number of special cases in the following definitions.
Sum of Products and Product of Sums
A SOP (Sum of Products) expression is the logical OR of product terms.
A POS (Product of Sums) expression is the logical AND of sum terms.
Both statements are true. In general, questions such as this do not concern us.
If you are asked a question like this on a test, either answer will be accepted.
This ambiguity comes from the definitional necessity of mentioning “the logical
AND of one or more terms” and “the logical OR of one or more terms”.
With two equally good answers to an ambiguous form, pick the one you like.
Inclusion
A product term T1 is included in a product term T2
if every literal in T1 is also in T2.
A sum term T1 is included in a sum term T2
if every literal in T1 is also in T2.
Consider the following examples:
F(A, B, C) = A•B + A•C + A•B•C
Each of A•B and A•C is included in A•B•C.
G(A, B, C) = (A + B)•(A + C)•(A + B + C)
Each of (A + B) and (A + C) is included in (A + B + C).
The conclusion is that Boolean expressions with included terms are needlessly
complicated. We can simplify them by the application of trivial rules.
X Y X•Y X•Y + Y
0 0 0 0
0 1 0 1
1 0 0 0
1 1 1 1
Note that the column marked X•Y matches the one marked X•Y + Y. The two
functions are identical. Also note that the term Y is included in the term X•Y,
so that, by inclusión, the term X•Y can be eliminated from the expression.
Normal and Canonical Forms
A Normal SOP expression is a Sum of Products expression
with no included product terms.
A Normal POS expression is a Product of Sums expression
with no included sum terms.
A Canonical SOP expression over a set of Boolean variables is
a Normal SOP expression in which each product term contains
a literal for each of the Boolean variables.
A Canonical POS expression over a set of Boolean variables is
a Normal POS expression in which each sum term contains
a literal for each of the Boolean variables.
Note: A canonical expression on N Boolean variables is made up
of terms, each of which has exactly N literals.
Note: One can do digital design based on either normal or canonical forms.
The choice usually depends on the technology used.
Equivalence of Canonical Forms and Truth Tables
We can directly translate between either of the canonical forms and
a truth table using a standard set of rules.
To produce the Sum of Products representation from a truth table,
a) Generate a product term for each row where the value of the function is 1.
b) The variable is complemented if its value in the row is 0, otherwise it is not.
To produce the Product of Sums representation from a truth table,
a) Generate a sum term for each row where the value of the function is 0.
b) The variable is complemented if its value in the row is 1, otherwise it is not.
Row X Y X⊕Y
0 0 0 0
1 0 1 1
2 1 0 1
3 1 1 0
SOP: Terms for rows 1 and 2. Row 1: X •Y, Row 2: X•Y F = X •Y + X•Y
POS: Terms for rows 0 and 3. Row 0: (X + Y), Row 3: ( X + Y )
F = (X + Y)•( X + Y )
Examples: Conversions between the Three Forms
We have three equivalent ways to define a Boolean expression.
1. The Truth Table.
2. The Σ and Π lists.
3. The Canonical Form.
In each of these depictions of the expression, we need to know the number
of Boolean variables and labels to be assigned these variables.
It is easier to consider the SOP and POS cases separately, because the rules for
conversion from the truth tables are so different for the two cases.
The figure below depicts the translations we shall consider for the SOP case.
Example Truth Table
Here is a truth table definition of a Boolean function of three Boolean variables.
Row A B C F2
0 0 0 0 0
1 0 0 1 0
2 0 1 0 0
3 0 1 1 1
4 1 0 0 0
5 1 0 1 1
6 1 1 0 1
7 1 1 1 1
We shall discuss this function in both of its Sum of Product and
Product of Sum representations.
We begin with SOP, the form that most students find easier.
SOP Example: Truth Table to Σ–List
Here is the truth table.
Row A B C F2
0 0 0 0 0
1 0 0 1 0
2 0 1 0 0
3 0 1 1 1
4 1 0 0 0
5 1 0 1 1
6 1 1 0 1
7 1 1 1 1
Note that the function has value 1 in rows 3, 5, 6, and 7.
The translation from the Π–list to the Σ–list works in the same way.
SOP Example: Truth Table to Canonical Form
To produce the Sum of Products representation from a truth table,
a) Generate a product term for each row where the value of the function is 1.
b) The variable is complemented if its value in the row is 0, otherwise it is not.
Here again is the truth table.
Row A B C F2
0 0 0 0 0
1 0 0 1 0
2 0 1 0 0
3 0 1 1 1 The term is A •B•C
4 1 0 0 0
5 1 0 1 1 The term is A• B •C
6 1 1 0 1 The term is A•B• C
7 1 1 1 1 The term is A•B•C
F2(A, B, C) = A •B•C + A• B •C + A•B• C + A•B•C
SOP Example: Between Canonical Form and Σ–List
Given F2(A, B, C) = A •B•C + A• B •C + A•B• C + A•B•C
Write a 0 beneath each complemented variable and a 1 below each that is not.
Convert the N–bit numbers, assuming unsigned binary.
These are the rows of the truth table that have a 1.
F2(A, B, C) = A •B•C + A• B •C + A•B• C + A•B•C
0 1 1 1 0 1 1 1 0 1 1 1
3 5 6 7
F2(A, B, C) = Σ(3, 5, 6, 7)
F2(A, B, C) = Π(0, 1, 2, 4)
But (A + B + C)•(A + B + C ) = (A + B)
(A + B + C)•(A + B + C) = (A + C)
(A + B + C)•( A + B + C) = (B + C)
So, F2(A, B, C) = (A + B)•(A + C)•(B + C)