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

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

## Recommended Posts:

- Difference between Programmable Logic Array and Programming Array Logic
- Implementation of SOP function using multiplexer
- Encoders and Decoders in Digital Logic
- Adders and Subtractors in Digital Logic
- Half Subtractor in Digital Logic
- Half Adder in Digital Logic
- Counters in Digital Logic
- Synchronous Sequential Circuits in Digital Logic
- Multiplexers in Digital Logic
- Full Adder in Digital Logic
- Full Subtractor in Digital Logic
- Binary Decoder in Digital Logic
- Encoder in Digital Logic
- Functional Completeness in Digital Logic
- Ripple Counter in Digital Logic
- BCD Adder in Digital Logic
- Magnitude Comparator in Digital Logic
- Shift Registers in Digital Logic
- Consensus Theorem in Digital Logic
- n-bit Johnson 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.