CMPS 375 Computer Architecture Class Notes
Chapter 3 Boolean Algebra and Digital Logic
1. Introduction
In 1854 George Boole introduced a systematic treatment of logic and developed for this purpose
an algebraic system known as symbolic logic, o
r Boolean algebra. Boolean algebra is a branch of
mathematics and it can be used to describe the manipulation and processing of binary
information. The two

valued Boolean algebra has important application in the design of modern
computing systems.
2. B
oolean Algebra
Boolean algebra uses
Boolean variables
and
Boolean operators
. Boolean variables are
binary variables and Boolean operators are logical operators. Some examples of Boolean
variables are A, B, C, a, b, c, X, Y, and Z. There are three basic
logical operators: AND,
OR, and NOT. A
Boolean expression
is a combination of Boolean variables and
Boolean operators. There are many Boolean expressions that are logically equivalent to
one another. There are called
equivalent expressions
.
A
Boole
an function
typically has one or more input variables and produces a result that
is based on these input values. The result can have a value of 0 or 1.
Most of the subsystems of a digital system take the form of a switching network. A
switching network
has one or more inputs and can have one or more outputs. Each
output can be represented by a Boolean function with n variables.
input(s) ___________ output(s)
_____________ _____________
: :
_____________ _____________
________
__
Truth Tables
A Boolean function can be uniquely and completely described using a
truth table
of n
input variables. A truth lists all possible values of input combinations of the function and
the values of the outputs for all these input combinatio
ns. A truth table is a useful visual
tool for defining the input

output relationship of binary variables in a Boolean function.
A function of n variables has 2
n
rows of possible input combinations, each row specifying
the value of the function for a diff
erent combination. A truth table can be used to
represent one or more functions.
Examples:
x y F a b F
1
F
2



0 0 0 0 0 0 0
0 1 1 0 1 0 1
1 0 1 1 0 0 1
1 1 1
1 1 1 0
The Duality Principle
Given a Boolean expression, the dual is formed by replacing AND with OR, OR with
AND, 0 with 1, 1 with 0, and variables and complements unchanged. The duality
principle states that if two Boolean exp
ressions are equal, then their duals are also equal.
Basic Postulates, Laws, and Theorems
Laws of Boolean Addition
x + 0 = x (Identity law in OR form)
x + 1 = 1 (Null law in OR form)
Laws of Boolean Multiplication
x
0 = 0 (Null law in AND form)
x
1 = x (Identity law in AND form)
Idempotent Laws
x + x = x x
x = x
Involution Law
(x’)’ = x
Laws of Complementarity
x + x’ = 1 (Inverse law in
OR form)
x
x’ = 0 (Inverse law in AND form)
Commutative Laws
x + y = y + x x
y = y
x
Associative Laws
(x + y) + z = x + (y + z) = x + y + z
(x
y)
z = x
(y
z) = x
y
z = xyz
Distributive Law
x
(y+z) = x
y +x
z
or x(y+z) = xy + xz
Absorption Laws
x
(x+y) = x x + xy = x
DeMorgan’s Laws
(x+y)’ = x’
y’
(x
y)’ = x’ + y’
Representations of Boolean Func
tions
A Boolean function can be described or represented by any one of the following:
A Boolean expression (one of many equivalent Boolean expr
essions)
A truth table
A circuit diagram (one of many equivalent circuit diagrams)
A Boolean function can be represented by many different equivalent expressions: a sum
of product terms, a sum of minterms, a product of sum terms, or a product of maxterms
.
To help eliminate potential confusion, logical designers specify a Boolean function using
a
standardized form
called
canonical form
. A canonical form can be either a sum of
minterms or a product of maxterms as described below.
A
minterm
is a product
term that includes all variables of a function and each variable is
either in uncomplemented form or in complemented (inversed) form. A minterm is also
called a
canonical product term
. A minterm is a product term, but a product term may
or may not be a m
interm. A
maxterm
is a sum term of all variables in which each
variable is either in complemented form or in uncomplemented form. A maxterm is also
called a
canonical sum term
. A maxterm is a sum term, but a sum term may or may not
be a maxterm.
The fo
llowing are examples of product term, minterm, sum term, and maxterm for a
function of three variables a, b, and c:
product terms: a, ac, b’c, abc, a’bc, a’b’c’, …
minterms: ab’c, abc, a’b’c, a’b’c’, …
sum t
erms: a, (a+b), (b+c), (a’+b), (a’+b’), …
maxterms: : (a+b+c), (a+b’+c), (a’+b’+c’), …
A minterm is represented by the symbol m
j
, where the subscript j is the decimal
equivalent of the minterm. A maxterm is represented by the sym
bol Mj, where the
subscript j is the decimal equivalent of the maxterm.
Example (Exclusive OR function, XOR):
a b F minterms maxterms



0 0 0 M
0
= (a+b)
0 1 1 m
1
= a’b
1 0 1 m
2
= ab’
1 1 0 M
3
= (a’+b’)
Either the sum of minterms or the produc
t of maxterms as shown below can represent the
Exclusive OR function:
Sum of minterms (Canonical SOP form):
F(a,b) = a’b + ab’
or shorthand notation F(a,b)= m
1
+ m
2
or F(a,b)=
m(1,2)
Product of maxterms (Canonical PO
S form):
F(a,b) = (a+b)(a’+b’)
or shorthand notation F(a,b)= M
0
M
3
or F(a,b)=
M(0,3)
The expressions a’b + ab’ and (a+b)(a’+b’) are equivalent expressions for the XOR
function.
The standard representation of a Boolean
function is either a sum of minterms or a
product of maxterms.
However, Boolean functions are most frequently represented by
a sum of product terms or a sum of minterms.
These standard representations make
the minimization procedure easier.
Equiva
lent Expressions and Equivalent Circuits
A Boolean function may be represented by several equivalent expressions. The
equivalence of two Boolean expressions can be proved or disproved by comparing their
truth tables as shown below:
a b
a’ b’ a’b ab’ a+b a’+b’ a’b+ab’ (a+b)(a’+b’)

0 0 1 1 0 0 0 1 0 0
0 1
1 0 1 0 1 1 1 1
1 0 0 1 0 1 1 1 1 1
1 1 0 0 0 0 1 0 0 0
Therefore, a’b+ab’ = (a+b)(a’+b’). The expressions a’b + ab’ and (a+b)(a’+b’)
are equivalent expressions for the XOR function.
Converting one Boolean expression to another Boolean expression by Boolean algebraic
manipul
ation also proves the equivalence of the two Boolean expressions:
(a+b)(a’+b’) = aa’ + ab’ + ba’ + bb’
= 0 + ab’ + ba’ + 0
= ab’ + a’b
= a’b + ab’
Therefore
, a’b+ab’ = (a+b)(a’+b’)
Minimization of Boolean Expressions
The standard sum of minterms representation is usually not a minimized expression. A
circuit designer generally starts with a Boolean function and finds a simpler bu
t
equivalent one. From the minimized expression, a circuit for that function can be
constructed. The following two approaches can be used for simplification of a Boolean
expression:
1.
Algebraic method (using Boolean algebra rules)
2.
Karnaugh map method
Ex
ample 1. Minimization of F(a,b) = (a+b)’ + ab’
(a) Algebraic method
(a+b)’ +ab’ = a’b’ + ab’
= (a’+a)b’
= (1)b’
= b’
The algebraic
manipulation method is easy and simple for this Boolean expression.
Example 2. Minimization of F(a,b,c) = a’b’c’ + a’bc’ + a’bc + ab’c’ + abc’
(a)
Algebraic method
Minimization of the above expression using this method is difficult.
(b) Karnaugh
map method
Minimization of the above expression using this method is easy and
straightforward.
Minimization of Boolean Expressions Using Karnaugh Maps
Hardware components of a computer are built of logic circuits to perform various logic
functions. A lo
gic function can be represented by a truth table, a circuit diagram, or
a Boolean expression. The truth table of a function is unique. A function, however, can
be represented by many equivalent Boolean expressions. A Boolean algebraic
manipulation or
a Karnaugh map may simplify a Boolean expression. The algebraic
manipulation method is often difficult because it lacks specific rules for predicting each
succeeding step in the manipulative process. The Karnaugh map method provides a
simple, straightfor
ward procedure for minimizing Boolean expressions.
The following is a K

map minimization procedure for obtaining a minimal expression
directly from a truth table. The map is a diagram made up of cells containing 1s
(minterms).
Minimization Procedure
1. Construct a K

map.
2. Find all groups of horizontal or vertical adjacent cells that contain 1.
a. Each group must be either rectangular or square with 1, 2, 4, 8, or 16 cells.
b. Each group should be as large as possi
ble.
c.
Each cell with 1 on the K

map must be covered at least once. The same
cell can be included in several groups if necessary.
d. Select the least number of groups so as to cover all the 1’s.
e. Adjacency applies to both v
ertical and horizontal borders.
3. Translate each group into a product term.
(Any variable whose value changes from cell to cell drops out from the term)
4. Sum all the product terms.
Note: Don't care conditions can be used to provide
further simplification of a Boolean
Expression.
Examples
F(a,b,c) = a’b’c’ + a’bc’ + a’bc + ab’c’ + abc’
F(a,b,c) =
m(0,2,3,4,6)
a b c F

0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0
Construct a K

map and perform minimization.
Minimized representation (SOP): F(a,
b,c) = a’b + c’
Don”t Care Conditions
There may be situations in which a function is not specified for all input combinations of
the variables. These functions are called “incompletely defined functions.” Unspecified
input combinations are either sho
uld not matter or should never occur. For example,
BCD numbers include digits 0 through 9 and are defined by four bits (0000
2
through
0000
2
). The binary combinations 1010
2 through
1111
2
can never occur in BCD, and they
are don’t care conditions in BCD.
Don’t’ care conditions are typically indicated with an
“X” in the appropriate cell. We can use don’t care conditions to our advantage when
simplifying functions using the K

map methods. We can let them have values of either 0
or 1 in the K

map while det
ermining groups of adjacent cells. Note that a don’t care
condition may not be used if it does not help in minimizing the function.
Example1. Simplify the following function:
F(a,b,c) =
∑m
i
(1,2,7,11,15) + ∑d
i
(0,3,5,8)
Comments 0
Log in to post a comment