Canonical Forms
- A canonical form provides a standardized way to translate a truth table into a unique Boolean expression
- There are two canonical forms:
- Sum of Products (SOP) / Sum of Minterms (SOM)
- Product of Sum (POS), / Product of Maxterms (POM)
- They can be determined directly from truth table
- However, canonical form minimal form
- Canonical forms include a larger number of literals
Minterms and Maxterms
- Minterm (or product term)
- A minterm is an AND of all variables in either true or complemented form
- Variables are in complemented form when they are set to ‘0’
- The function will equal 1 when any of the minterms are true
- A minterm is an AND of all variables in either true or complemented form
Example with 2 variables:
| Minterm | Expression | ||
|---|---|---|---|
| 0 | 0 | ||
| 0 | 1 | ||
| 1 | 0 | ||
| 1 | 1 | ||
| If you want a function to be 1 for inputs (1, 0) and (1, 1), then: | |||
- Maxterm (or sum term)
- A maxterm is an OR of all variables in either true or complemented form
- Variables are in true form when they are set to ‘0’
- The function will equal 0 when any of the maxterms are false
- A maxterm is an OR of all variables in either true or complemented form
Example with 2 variables:
| Maxterm | Expression | ||
|---|---|---|---|
| 0 | 0 | ||
| 0 | 1 | ||
| 1 | 0 | ||
| 1 | 1 | ||
| If you want a function to be 0 for inputs (0, 1) and (1, 0), then: | |||
Conversion Between Canonical Forms
To convert a Boolean function from one canonical form to another, interchange the symbols and and list those indices missing from the original form
Example:
- SOP:
- POS:
Compliment of a Boolean Function
- The complement of a SOP is a POS with the same indices
- This compliment of a POS is a SOP with the same indices
Incompletely Specified Functions
- In some logic circuits, certain input conditions are impossible
- In these cases, the output value is defined as a “don’t care”
- This reduces the cost of the logic circuit
- We mark a “don’t care” entry as an ‘X’ in a function table
When using canonical representation of function, you must represent two of three sets: on-set (‘1’s), off-set (‘0’s) or dc-set (‘X’). If you represent two sets, by process of elimination, you will know the third set. So far, we have only been representing the on-set.
- There are lots of examples of canonical representations in the slides
Implementations of Two-Level Logic
- We can implement directly any canonical form with two levels of gates

Multi-Level Logic
- Factoring out the canonical form to find the minimised form will reduce the number of gates, but we will still be left with two levels
- We can also sometimes reduce the number of overall gates by increasing the number of logic levels
- Adding levels may reduce gates but increase delay
Advantages
- Circuits may be smaller
- Gates have a smaller number of inputs
- Circuits may be faster
Disadvantages
- More difficult to design
- Tools for optimization are not as good as for two-level
- Analysis is more complex