Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

CPE 6204 – Logic Circuits and Switching Theory

1
Boolean Function Forms

Module 4: Boolean Functions and their Forms

Course Learning Outcomes:


1. Express Boolean functions into Canonical and Standard forms.
2. Obtain the Boolean function from reading the truth tables.
3. Construct two-level implementation circuit diagrams of Boolean functions.

The Canonical Forms


The canonical forms are easy to recognize because each term has all the variables
(complemented or uncomplemented) present. For example, the Boolean function of three
variables,
𝐸𝑞. 1: 𝑦 = 𝑎′ 𝑏𝑐 + 𝑎𝑏𝑐 + 𝑎′𝑐′𝑏
is in canonical form. The same can be said for the function of two variables,
𝐸𝑞. 2: 𝑧 = (𝑎 + 𝑏)(𝑎′ + 𝑏′ )

Minterms and Maxterms


A Boolean term composed of one or more literals joined by an AND operation is called a
product or an implicant. A minterm is a product term involving all inputs, as in, 𝑥𝑦′𝑧 for a
three-input function, or 𝑎𝑏𝑐𝑑 for a four-input function. A minterm is identified by 𝑚𝑖 , where
𝑖 is the decimal equivalent of the binary number representing the minterm.
A Boolean term composed of one or more literals joined by an OR operation is called a sum.
A maxterm, then, is a sum term involving all inputs, as in 𝑥 + 𝑦 + 𝑧 for a three-input function,
or 𝑎 + 𝑏′ + 𝑐′ + 𝑑 for a four-input function. A maxterm is identified by 𝑀𝑖 , where 𝑖 is the
decimal equivalent of the binary number representing the maxterm.
A Boolean function composed of minterms joined by OR operations is a function in Sum of
Minterms form. Eq. 1 above is an example.
On the other hand, a function composed of maxterms joined by AND operations is a function
in Product of Maxterms form. Eq. 2 above is an example.
In a minterm, any variable with a logic-1 value is uncomplemented, and any variable with a
logic-0 value is complemented. In a maxterm, any variable with a logic-1 value is
complemented, and any variable with a logic-1 is uncomplemented. This is summarized in
Table 1.

Course Module
Table 1. Minterms and Maxters for Two Binary Variables
𝑥 𝑦 Minterm Designation Maxterm Designation
0 0 𝑥′𝑦′ 𝑚0 𝑥+𝑦 𝑀0
0 1 𝑥′𝑦 𝑚1 𝑥 + 𝑦′ 𝑀1
1 0 𝑥𝑦′ 𝑚2 ′
𝑥 +𝑦 𝑀2
1 1 𝑥𝑦 𝑚3 𝑥′ + 𝑦 ′ 𝑀3

Example 1: Express the Boolean function 𝑭 = 𝑨 + 𝑩′𝑪 as a sum of minterms.


The function has 3 variables, 𝐴, 𝐵, and 𝐶. The first term is missing two variables, and the
second term is missing one variable. If a function is not in sum-of-minterms form, we see
which term lacks a variable or variables. The term with the lacking variables is ANDed, one
at a time, with the sum of the missing variable and its complement.
We AND 𝐵 + 𝐵′ to 𝐴 to get 𝐴𝐵 + 𝐴𝐵′. Then we AND the two terms with 𝐶 + 𝐶′. We then get
the expressions 𝐴𝐵𝐶 + 𝐴𝐵𝐶 ′ + 𝐴𝐵′ 𝐶 + 𝐴𝐵′𝐶′.
We do the same to the second term. Since only one variable is missing, we only need to AND
𝐴 + 𝐴′ to it and get 𝐴𝐵′ 𝐶 + 𝐴′𝐵′𝐶.
We now put everything together, removing duplicates as we do so. Finally, the sum of
minterms form of the function is 𝐹 = 𝐴′ 𝐵′ 𝐶 + 𝐴𝐵′ 𝐶 ′ + 𝐴𝐵′ 𝐶 + 𝐴𝐵𝐶 ′ + 𝐴𝐵𝐶. The equivalent
3-variable minterms are: 𝑚1 + 𝑚4 + 𝑚5 + 𝑚6 + 𝑚7 .
We can also represent the function in a handier notation. We simply use the decimal
subscript of each minterm and indicate that it is a sum of minterms with the ∑ symbol.
𝐹 (𝐴, 𝐵, 𝐶 ) = ∑(1,4,5,6,7)
Alternatively, we can take the minterms of the Boolean function by constructing the truth
table of the function directly from the expression.
To do this, we first construct the truth table for three variables, we assign a 1 to all minterm
combinations where 𝐴 = 1 and/or 𝐵 = 0 and 𝐶 = 1. Thus,
Table 2. Truth table for the function F=A+B'C
𝐴 𝐵 𝐶 𝐹 Minterm
0 0 0
0 0 1 1 𝑚1
0 1 0
0 1 1
1 0 0 1 𝑚4
1 0 1 1 𝑚5
1 1 0 1 𝑚6
1 1 1 1 𝑚7

Example 2: Express the Boolean function 𝑭 = 𝒙𝒚 + 𝒙′𝒛 as a product of maxterms.


Any missing variable in each OR term is ORed, one at a time, with the product of the missing
variable and its complement.
Before we address the missing variables, we first transform the expression into OR terms
using the distributive law:
𝐹 = 𝑥𝑦 + 𝑥′𝑧 = (𝑥𝑦 + 𝑥 ′ )(𝑥𝑦 + 𝑧) These can still be broken down,
= (𝑥 + 𝑥 ′ )(𝑥 ′ + 𝑦)(𝑥 + 𝑧)(𝑦 + 𝑧)
= (1)(𝑥 ′ + 𝑦)(𝑥 + 𝑧)(𝑦 + 𝑧)
CPE 6204 – Logic Circuits and Switching Theory
3
Boolean Function Forms

The resulting OR terms are missing one variable. We then OR the product of the missing
variable and its complement:
𝑥 ′ + 𝑦: 𝑥 ′ + 𝑦 + 𝑧𝑧 ′ = (𝑥 ′ + 𝑦 + 𝑧)(𝑥 ′ + 𝑦 + 𝑧 ′ )
𝑥 + 𝑧: 𝑥 + 𝑧 + 𝑦𝑦 ′ = (𝑥 + 𝑦 + 𝑧)(𝑥 + 𝑦 ′ + 𝑧)
𝑦 + 𝑧: 𝑦 + 𝑧 + 𝑥𝑥 ′ = (𝑥 + 𝑦 + 𝑧)(𝑥 ′ + 𝑦 + 𝑧)
Combining all terms, removing duplicates, and arranging the maxterms in ascending order:
𝐹 = (𝑥 + 𝑦 + 𝑧)(𝑥 + 𝑦 ′ + 𝑧)(𝑥 ′ + 𝑦 + 𝑧)(𝑥 ′ + 𝑦 + 𝑧 ′ ) = 𝑀0 ⋅ 𝑀2 ⋅ 𝑀4 ⋅ 𝑀5
For convenience, we may write:
𝐹 (𝑥, 𝑦, 𝑧) = ∏(0,2,4,5)
Alternatively, we may also use the truth table to obtain the maxterms of the function. We
first construct the truth table for 3 variables. We assign a 0 to all maxterm combinations
where 𝑥 = 1 and 𝑦 = 0, or 𝑥 = 0 and 𝑧 = 0, or 𝑦 = 0 and 𝑧 = 0. Thus,
Table 3. Truth table for the function F=(x'+y)(x+z)(y+z)
𝑥 𝑦 𝑧 𝐹 Maxterm
0 0 0 0 𝑀0
0 0 1
0 1 0 0 𝑀2
0 1 1
1 0 0 0 𝑀4
1 0 1 0 𝑀5
1 1 0
1 1 1
As you practice with minterms and maxterms, you will notice that they complement each
other. Simply speaking, you need only read the 1’s of the function to get the minterms. The
0’s are the maxterms. Using Table 3, those that have 0’s under 𝐹 are the maxterms. The rest
are 1’s, and indicate the minterms.
Table 4. Minterms and maxterms of the function 𝐹 = 𝑥𝑦 + 𝑥′𝑧
𝑥 𝑦 𝑧 𝐹 Maxterm Minterm
0 0 0 0 𝑀0
0 0 1 𝑚1
0 1 0 0 𝑀2
0 1 1 𝑚3
1 0 0 0 𝑀4
1 0 1 0 𝑀5
1 1 0 𝑚6
1 1 1 𝑚7
Then, the sum-of-minterms form of the function is 𝐹 = 𝑥 ′ 𝑦 ′ 𝑧 + 𝑥 ′ 𝑦𝑧 + 𝑥𝑦𝑧 ′ + 𝑥𝑦𝑧

The Standard Forms


The main difference between the canonical and standard forms is that the former is
composed of all variables of the input, and the latter is not. The standard forms provide
Boolean functions with any number of variables composing the sum or product terms.
Course Module
Sum-of-Products (SOP) and Product-of-Sums (POS)
The Sum of Products is to standard form as Sum of Minterms is to canonical form. Similarly,
the Product of Sums is to standard form as Product of Maxterms is to canonical form. We
have been working with the standard form for quite some time now. Nevertheless, here are
examples of Boolean expressions in standard form:
 𝑦 ′ + 𝑥𝑦 + 𝑥 ′ 𝑦 ′ 𝑧 has three product terms of one, two, and three literals each.
 𝑥(𝑦 ′ + 𝑧)(𝑥 ′ + 𝑦 + 𝑧 ′ ) has 3 sum terms of one, two, and three literals each.
However,
 𝐴𝐵 + 𝐶 (𝐷 + 𝐸 ) is NOT in standard form

Logic Diagram Implementation


Implementing functions in standard form will consist of AND gates and OR gates. The
configurations will result in two-level implementations. Inverters are not considered in
such implementations; however, it is assumed that complements are readily available.
Below are examples of two-level implementations.

Figure 1. Two-level implementation of a function in sum-of-products form

Figure 2. Two-level implementation of a function in product-of-sums form

Non-standard forms may result in multiple-level implementations.

Boolean Functions of 𝒏 Variables


It would be very helpful for us to know just how many kinds of Boolean functions we can
make from given Boolean variables.
Notice that if there are no variables, we have two constant functions:
𝑓=0 and 𝑓=1
CPE 6204 – Logic Circuits and Switching Theory
5
Boolean Function Forms

Boolean Functions of One Variable


If we have one variable, say 𝑥, we can make four Boolean functions. Including the constant
functions, 𝑓 = 0 and 𝑓 = 1, we add two more to include the possible functions 𝑓 = 𝑥 and
𝑓 = 𝑥′. Table 5 below summarizes this concept and gives the value of the function with
respect to the value of the input variable 𝑥:
Table 5. Values for Boolean functions of one variable
Variable Functions
𝑥 𝑓=0 𝑓=1 𝑓=𝑥 𝑓 = 𝑥′
0 0 1 0 1
1 0 1 1 0

Boolean Functions of Two Variables


For two variables, say 𝑥 and 𝑦 , we can construct up to 16 different kinds of Boolean
functions. Along with the operations on one variable, we can also apply operations between
two variables: AND, OR, NAND, NOR, XOR, XNOR, as well as some properties. See the included
appendix for the complete list of Boolean functions and their values.
Boolean Functions of 𝒏 Variables
How many Boolean functions can we create with, say three variables? If we look at the
Boolean functions of two variables, we will notice that for every variable there are two
possible values, 0 and 1. We can summarize this as 2𝑛 , where 2 is the number of possible
values, and 𝑛 is the number of variables. We have also learned that for every variable, we can
𝑛
construct four Boolean functions. In summary, we can express this relationship as: 22 ,
where 𝑛 is the number of variables.
1
Let’s test the expression. If we have one variable, then we have 22 = 22 = 4 Boolean
functions. That checks out with what we have in Table 5. If we have two variables, we have
2 3
22 = 24 = 16 Boolean functions. And if we have three variables? We have 22 = 28 = 256
Boolean expressions!

Course Module
APPENDIX
Summary of Boolean Functions for Two Variables and their Values

Function Value
Boolean
Name Description 𝑥=0 𝑥=0 𝑥=1 𝑥=1
Function
𝑦=0 𝑦=1 𝑦=0 𝑦=1

0 𝑓=0 Null Binary constant 0 0 0 0 0

1 𝑓 = 𝑥𝑦 AND 𝑥 and 𝑦 0 0 0 1

2 𝑓 = 𝑥𝑦′ Inhibition 𝑥, but not 𝑦 0 0 1 0

3 𝑓=𝑥 Transfer 𝑥 0 0 1 1

4 𝑓 = 𝑥′ 𝑦 Inhibition 𝑦, but not 𝑥 0 1 0 0

5 𝑓=𝑦 Transfer 𝑦 0 1 0 1

6 𝑓 = 𝑥𝑦 ′ + 𝑥 ′ 𝑦 Exclusive-OR (XOR) 𝑥 or 𝑦, but not both 0 1 1 0

7 𝑓 =𝑥+𝑦 OR 𝑥 or 𝑦 0 1 1 1

8 𝑓 = (𝑥 + 𝑦)′ NOR Not-OR 1 0 0 0

9 𝑓 = 𝑥𝑦 + 𝑥 ′ 𝑦 ′ Equivalence (XNOR) 𝑥 equals 𝑦 1 0 0 1

10 𝑓 = 𝑦′ Complement (NOT) Not 𝑦 1 0 1 0

11 𝑓 = 𝑥 + 𝑦′ Implication If 𝑦, the 𝑥 1 0 1 1

12 𝑓 = 𝑥′ Complement (NOT) Not 𝑥 1 1 0 0

13 𝑓 = 𝑥′ + 𝑦 Implication If 𝑥, then 𝑦 1 1 0 1

14 𝑓 = (𝑥𝑦)′ NAND Not-AND 1 1 1 0

15 𝑓=1 Identity Binary constant 1 1 1 1 1


CPE 6204 – Logic Circuits and Switching Theory
7
Boolean Function Forms

Recommended Reading:
1. Mano, M. M., & Ciletti, M. D. (2018). Other Logic Operations. In M. M. Mano, & M. D. Ciletti,
Digital Design: With an Introduction to the Verilog HDL, VHDL, and SystemVerilog (pp. 58
- 60). New Jersey: Pearson.

References and Supplementary Materials


Books and Journals
1. Mano, M. M., Ciletti, M.D. (2018). Digital Design: With an Introduction to the Verilog HDL,
VHDL, and SystemVerilog (6th ed.). New Jersey: Pearson.
2. Harris, D.M, Harris, S.L. (2016). Digital Design and Computer Architecture: ARM Edition.
Massachusetts: Elsevier Inc.
3. Roth, C.H. Jr., Kinney, L.L. (2014). Fundamentals of Logic Design (7th ed.). Connecticut:
Cengage Learning

Online Supplementary Reading Materials


1. Boolean Functions,
https://cs.fit.edu/~wds/classes/adm/Lectures/BooleanFunctions.pdf, Date
Accessed: 04 October 2019
Online Instructional Videos
1. Sum of Products (SOP) Form Part 1, https://youtu.be/xnLBbOYYnHM, Date Accessed:
04 October 2019
2. Sum of Products (SOP) Form Part 2, https://youtu.be/NGgNoa0_zns, Date Accessed: 04
October 2019
3. SOP and POS Examples, https://youtu.be/K2cpJex0o_A, Date Accessed: 04 October
2019

Course Module

You might also like