# Difference between SOP and POS in Digital Logic

In digital logic, the inputs and output of a function are in the form of binary numbers (boolean values) i.e., the values are either zero (0) or one (1). Therefore, digital logic is also known as ‘Boolean logic’. These inputs and output can be termed as ‘Boolean Variables’. The output boolean variable of a digital signal can be expressed in terms of input boolean variables which forms the ‘Boolean Expression’.

Representation of Boolean expression can be primarily done in two ways. They are as follows:

- Sum of Products (SOP) form
- Product of Sums (POS) form

**Note:**

If the number of input variables are n, then the total number of combinations in Boolean algebra is 2^{n}.

If the input variable (let A) value is :

- Zero (0) – a is LOW -It should be represented as A’ (Complement of A)
- One (1) – a is HIGH -It should be represented as A

In boolean logic,

AND is represented as '.' A AND B is written as 'A.B' OR is represented as '+' A OR B is written as 'A+B'

For example, Considering number of input variables =3, Say A, B and C.

Total number of combinations are: 2^{3}=8.

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

0 | 0 | 0 |

0 | 0 | 1 |

0 | 1 | 0 |

0 | 1 | 1 |

1 | 0 | 0 |

1 | 0 | 1 |

1 | 1 | 0 |

1 | 1 | 1 |

**Sum of Products (SOP):**

It is one of the ways of writing a boolean expression. As the name suggests, it is formed by adding (OR operation) the product terms. These product terms are also called as ‘min-terms’. Min-terms are represented with ‘m’, they are the product(AND operation) of boolean variables either in normal form or complemented form.

Therefore, SOP is sum of minterms and is represented as:

F in SOP = _{m}(0, 3)

Here, F is sum of minterm0 and minterm3.

For Example:

A=0, B=0, C=0 Minterm is A'.B'.C' A=1, B=0, C=1 Minterm is A.B'.C

Consider a function X, whose truth table is as follows:

A | B | C | X |
---|---|---|---|

0 | 0 | 0 | 0 |

0 | 0 | 1 | 1 |

0 | 1 | 0 | 0 |

0 | 1 | 1 | 1 |

1 | 0 | 0 | 0 |

1 | 0 | 1 | 0 |

1 | 1 | 0 | 1 |

1 | 1 | 1 | 0 |

The function X can be written in SOP form by adding all the min-terms when X is HIGH(1).

While writing SOP, the following convention is to be followed:

If variable A is Low(0) - A' A is High(1) - A

X (SOP) = _{m}(1, 3, 6)

= A’.B’.C + A’.B.C + A.B.C’

**Product of Sums (POS):**

As the name suggests, it is formed by multiplying(AND operation) the sum terms. These sum terms are also called as ‘max-terms’. Max-terms are represented with ‘M’, they are the sum (OR operation) of Boolean variables either in normal form or complemented form.

Therefore, POS is product of maxterms and is represented as:

F in SOP = _{M}(1, 2) Here, F is product of maxterm1 and maxterm2.

For Example:

A=0, B=1, C=0 Maxterm is A'+B+C' A=1, B=1, C=1 Maxterm is A+B+C

Consider a function X, whose truth table is as follows:

A | B | C | X |
---|---|---|---|

0 | 0 | 0 | 0 |

0 | 0 | 1 | 1 |

0 | 1 | 0 | 0 |

0 | 1 | 1 | 1 |

1 | 0 | 0 | 0 |

1 | 0 | 1 | 0 |

1 | 1 | 0 | 1 |

1 | 1 | 1 | 0 |

The function X can be written in POS form by multiplying all the max-terms when X is LOW(0).

While writing POS, the following convention is to be followed:

If variable A is Low(0) - A A is High(1) - A' X (SOP) =_{M}(0, 2, 4, 5, 7) = (A+B+C).(A+B'+C).(A'+B+C).(A'+B+C').(A'+B'+C')

**Difference between SOP and POS :**

S.No. | SOP | POS |
---|---|---|

1. | A way of representing boolean expressions as sum of product terms. | A way of representing boolean expressions as product of sum terms. |

2. | SOP uses minterms. Minterm is product of boolean variables either in normal form or complemented form. | POS uses maxterms. Maxterm is sum of boolean variables either in normal form or complemented form. |

3. | It is sum of minterms. Minterms are represented as ‘m’ | It is product of maxterms. Maxterms are represented as ‘M’ |

4. | SOP is formed by considering all the minterms, whose output is HIGH(1) | POS is formed by considering all the maxterms, whose output is LOW(0) |

5. | While writing minterms for SOP, input with value 1 is considered as the variable itself and input with value 0 is considered as complement of the input. | While writing maxterms for POS, input with value 1 is considered as the complement and input with value 0 is considered as the variable itself. |

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: **DSA Self Paced**. Become industry ready at a student-friendly price.

## Recommended Posts:

- Latches in Digital Logic
- Encoder in Digital Logic
- Counters in Digital Logic
- BCD Adder in Digital Logic
- 5 variable K-Map in Digital Logic
- Multiplexers in Digital Logic
- Binary Decoder in Digital Logic
- Variable Entrant Map (VEM) in Digital Logic
- Adders and Subtractors in Digital Logic
- Static Hazards in Digital Logic
- Ring Counter in Digital Logic
- Half Adder in Digital Logic
- Full Adder in Digital Logic
- Shift Registers in Digital Logic
- Functional Completeness in Digital Logic
- Half Subtractor in Digital Logic
- Magnitude Comparator in Digital Logic
- Array Multiplier in Digital Logic
- Full Subtractor in Digital Logic
- Non-binary Counter in Digital Logic

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.