- Digital Electronics Course
- Digital Electronics Tutorial
- Logic Gates
- NAND NOR as a Universal Gate
- Boolean Algebra
- Proof of Theorems and Postulates
- De-Morgan's Theorems
- Duality Principle
- Sum of Products (SOP)
- Product of Sum (POS)
- Canonical SOP Form
- Canonical POS Form
- SOP to Standard SOP
- POS to Standard POS
- Standard SOP to Minimal SOP
- Standard POS to Minimal POS
- Computer Programming
- Learn Python
- Python Keywords
- Python Built-in Functions
- Python Examples
- Learn C++
- C++ Examples
- Learn C
- C Examples
- Learn Java
- Java Examples
- Learn C#
- Learn Objective-C
- Web Development
- Learn HTML
- Learn CSS
- Learn JavaScript
- JavaScript Examples
- Learn SQL
- Learn PHP

# Sum of Product (SOP) Form

Any logical expression can be expressed in two standard forms, as given below:

- Sum of Product (SOP) Form
- Product of Sum (POS) Form

Now let's discuss the above-listed two types of forms used in logical expression. In this tutorial, we will only discuss the SOP form; the POS form will be discussed in the next tutorial.

The sum and product in the SOP form are not the actual results of addition or multiplication. Rather, they are the OR and AND functions.

The SOP recalls where is 1. It doesn't care about 0.

The SOP form is used to create boolean expressions using the given truth table data.

It is called the SOP form because it contains the sum of product terms. For example, if A, B, and C are three literals or inputs of any combinational circuit and Y is the function, then the SOP expression may be written as given below:

Y = ABC + AB'C + AC

Or

Y = A'BC + B'C + A'C'

etc. are some of the examples of SOP boolean expressions.

And if you want to find out the boolean expression in SOP form through the given truth table, then consider an example and learn about it. Let the given truth table read:

A | B | F |
---|---|---|

0 | 0 | 1 |

0 | 1 | 1 |

1 | 0 | 0 |

1 | 1 | 0 |

Here A and B are the two literals or variables, and F is the function.

As previously stated, SOP is only concerned with 1. That is, SOP only looks up where the function F holds 1 as its value. In the above truth table, if we remove all the rows where F holds 0, then the table will become:

A | B | F |
---|---|---|

0 | 0 | 1 |

0 | 1 | 1 |

Therefore, the expression in the SOP form will be:

F(A,B) = A'B' + A'B

**Note**: While writing the expression, we have to write the complement version of all those literals that contain 0 as their value to make it
1. That is, if A contains 0 as its value in the first row, and if we take the complement of A, then A will become A', and therefore 0 will become 1
as its value in that row.

As we can see from the above expression, that is **A'B'+A'B** which is the sum of **product of few literals**; therefore, it is called the
SOP, or sum of product form.

Each product term in SOP boolean expression form is made up of one or more literals. Here, literals may be in their complemented or uncomplemented (natural or original) form.

Now let's take an example to understand it in a more clear way. Here we have designed a table in which there are three variables. Therefore, with
3 variables, we can create a total of **2 ^{3}** or 8 combinations from

**000**to

**111**where the first digit belongs to the first variable, the second digit belongs to the second variable, and so on, as shown in the table given below:

Decimal | Binary | Minterm | Designation |
---|---|---|---|

0 | 000 | A'B'C' | m_{0} |

1 | 001 | A'B'C | m_{1} |

2 | 010 | A'BC' | m_{2} |

3 | 011 | A'BC | m_{3} |

4 | 100 | AB'C' | m_{4} |

5 | 101 | AB'C | m_{5} |

6 | 110 | ABC' | m_{6} |

7 | 111 | ABC | m_{7} |

As you can see from the above table, some literals that contain 0 are complemented to make it 1.

Row that contains the decimal number value of 0, then its binary representation will be 000 (for a three-variable function), where A belongs to the first digit, which is 0 in this row, B belongs to the second digit, which is also 0, and C belongs to the third digit, which is again 0 in this row. And here all the literals have the value 0, so to make it 1 as a result, we have to complement all the literals, which we have already done. Because, in the case of an AND gate, we must have all of the input's values as 1, and here in the first row ABC contains 000, we have put all of the literal's values as 1, which means A = 1, B = 1, and C = 1.For this, we have simply complemented the literal, that is A', B', and C'.

In the same way as described above, we have done the required complement of all the literals in each and every row where it contains 0.

## SOP: Minterm

Minterm is defined as: "In any function, there are some particular number of variables, and if all the variables are in the product term in any way, either in complemented or uncomplemented form, it is called minterm." For example, let's take an expression:

F(A,B,C) = ABC + BC + A'BC' + A'B

Here, we have a function of three variables that has the expression given above. As we can see from the above boolean expression in SOP form, we
have only two product terms that hold all three variables, which are **ABC** and **A'BC'**. Therefore, these two terms can be called minterms.

Or, in simple words, minterms are all those product terms that contain all the variables that are in the function. Here, literals or variables may be either in their complemented or uncomplemented form.

### How to Calculate the Total Number of Minterm

In a n-variable function, **the total number of minterms = 2 ^{n}**.

For example, in a 3-variable function, the **total number of minterms = 2 ^{3}** or

**2x2x2**or

**8**minterms.

## How to Create SOP Boolean Expressions Using the Truth Table

Now let's take an example to understand how to create a SOP boolean expression with the help of a given truth table. The given truth table is:

A | B | C | F |
---|---|---|---|

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 | 0 |

In the above truth table, we have 1 at some places of function. We have a total of three 1s present at the 1^{st}, 2^{nd}, and
4^{th} positions. As at the 0^{th}, 3^{rd}, 5^{th}, 6^{th}, and 7^{th} positions, there is 0.

Therefore, we have three minters, that is, **m _{1}**,

**m**, and

_{2}**m**.

_{4}Now, we have to write the literal's product term three times as given below in SOP form:

ABC + ABC + ABC

Now, if we look at the truth table, we have three minterm. And in the 1^{st} row, the literals A hold 0, B hold 0,
and C hold 1. As A and B hold 0, therefore we have to complement them to make it 1. Similarly, follow the same procedure for the
2^{nd} and 4^{th} rows. Therefore, after performing this procedure, the above equation will become:

A'B'C + A'BC' + AB'C'

A'B'C represents the first minterm (m_{1}), A'BC' represents the second minterm (m_{2}), and AB'C' represents the fourth minterm
(m_{4}).

Finally, we can write the complete boolean expression in SOP form as:

F(A,B,C) = A'B'C + A'BC' + AB'C'

## Creating a Truth Table with SOP Boolean Expressions

After learning all the steps and procedures as given above, you can also design the truth table itself with the help of the given boolean expression in SOP form.

Let's take an example to understand it in a clear and practical way. Here is the SOP boolean expression:

AB'C + AB'C' + A'BC'

As can be seen, the above expression is written in SOP form. And in SOP form, the uncomplemented literal or variable holds 1 and the complemented
literal holds 0. Therefore, the binary representation of the first product term in the above expression, which is **AB'C**
is equal to **101**, **AB'C'** equals **100**, and **A'BC'** equals **010**. In decimal, the binary numbers 101, 100, and 010 represent
5, 4, and 2 respectively.

Therefore, we have three minters, which are **m _{2}**,

**m**, and

_{4}**m**. And we can represent the function as:

_{5}F(A,B,C) = ∑_{m}(2,4,5)

And the truth table with minterm and designation of the above equation will be:

Decimal | Binary | Minterm | Designation |
---|---|---|---|

2 | 010 | A'BC' | m_{2} |

4 | 100 | AB'C' | m_{4} |

5 | 101 | AB'C | m_{5} |

And the complete truth table, using only three variables and functions from the preceding equation, will be:

A | B | C | F |
---|---|---|---|

0 | 0 | 0 | 0 |

0 | 0 | 1 | 0 |

0 | 1 | 0 | 1 |

0 | 1 | 1 | 0 |

1 | 0 | 0 | 1 |

1 | 0 | 1 | 1 |

1 | 1 | 0 | 0 |

1 | 1 | 1 | 0 |

## SOP Form Example

Let's take another example of an SOP form. The truth table is given here:

A | B | C | F |
---|---|---|---|

0 | 0 | 0 | 0 |

0 | 0 | 1 | 0 |

0 | 1 | 0 | 1 |

0 | 1 | 1 | 0 |

1 | 0 | 0 | 1 |

1 | 0 | 1 | 1 |

1 | 1 | 0 | 1 |

1 | 1 | 1 | 1 |

In boolean algebra, the above function F can be expressed either in SOP or POS form, but now we are dealing only with SOP form. Therefore, let's get started to find out the boolean expression in SOP using the given truth table.

As we all know, 1 represents high and 0 represents low.The SOP expression is written only when the function is high, and from the above truth table, we have a total of 5 times where the function is high. It means we have a total of 5 product terms that will be needed to make it in SOP form.

At first, the function is high when A is low, B is high, and C is low. Therefore, the product term in this case will be **A'BC'**.
Hence, where the variable is low, we have to complement it to make it high.

And as we all know, the AND operator that operates on three variables will give the output as 1 only when all three input variables are 1.

Therefore, we must complement the variable (if it carries 0) to make it 1. And if the variable is 1, we must leave it in its uncomplemented, or natural, form.

Therefore, the above truth table gives the function as written below:

F(A,B,C) = A'BC' + AB'C' + AB'C + ABC' + ABC

The above expression, as written in the truth table, is in standard SOP or canonical SOP form.

Therefore, the minterms will be **m _{2}**,

**m**,

_{4}**m**,

_{5}**m**, and

_{6}**m**. And finally, the function can be written as:

_{7}F(A,B,C) = m_{2}+ m_{4}+ m_{5}+ m_{6}+ m_{7}

Or

F(A,B,C) = ∑_{m}(2,4,5,6,7)

« Previous Tutorial Next Tutorial »