Lecture 14: Boolean Algebra

Lecture 14: Boolean Algebra
Boolean Functions
Logic Gates
Definition of Symbolic Logic
Symbolic logic is the method of representation and techniques of algebraic manipulation
that separates the meaning of factual statements from proofs of their consistency and
their truth value.
w = ( x AND z ) OR ( NOT y )
w = Chris is allowed to watch television
w = the dog is wet
x = Chris's homework is finished
x = the dog is outside
y = it is a school night
y = the dog did not jump in the pool
z = it is earlier than 10:00 p.m.
z = it is raining
Binary Operators
In the following descriptions, we will let A and B be Boolean variables and define a set of
binary operators on them. The term binary in this case does not refer to base-two
arithmetic but rather to the fact that the operators act on two operands.
unary operator
Operator Precedence
As with other algebraic systems, we recognize an order of precedence for the
application of its operators. The highest precedence is associated with the unary
operator NOT (~). At the next level is AND and NAND. At the next lower level is
OR and NOR and XOR. In this text, we place the equality operator (=) at the lowest
precedence.
Truth Tables
Definition: Given a Boolean function F containing n Boolean variables b0, b1, b2, . .
., bn-1, we can construct a truth table containing 2n rows which gives the value of F
for every combination of truth values of the variables b0, b1, b2, . . ., bn-1.
F(x,y,z) =
(xy) + (~xz) + (y)(~z) + (~xyz)
Evaluating Logical Expressions
F(x,y,z) =
(xy) + (x'z) + (y)(z') + (x'yz)
F(0,1,1) =
0.1
F(0,1,1) =
0
F(0,1,1) =
1
+
+
1.1
+
1.0
1
+
0
+
+
1.1.1
1
~(A + B)
~(B -> A) = ~A.B
~A
~(A -> B) = A.(~B)
~B
A
~(A.B)
A.B
(A=B) = A.B + (~A).(~B)
B
A -> B = ~A+B
A
B -> A = ~B+A
A + B
TRUE
0 0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0 1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1 0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1 1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B = A.(~B)+(~A).B
FALSE
All Boolean Binary Operators
⊕
A B
Boolean Operator Defintions
TRUE - This operator evaluates to true regardless of the truth values of A and B.
A+B - Evaluates to true if either A or B or both are true, also called OR.
B A - This is the implication operator. Stated as B implies A it evaluates to true unless
B is true and A is false.
AThis is a copy of the truth value set of the variable A.
AB This is the implication operator. Stated as A implies B it evaluates to true unless
A is true and B is false.
BThis is a copy of the truth value set of the variable B.
A = B - The equality operator evaluates to true when the values of A and B are the same.
A.B - Evaluated to true when both A and B are true, also called AND.
~(A.B) - The negation of A.B, also called NAND.
AB - This operator is the exclusive-OR or XOR operator.
~B The negation of B. This is a representation of the NOT operator.
~A The negation of A. This is a representation of the NOT operator.
~(BA) - The negation of implication. See (BA) below.
~(A+ B) - This operator is the negation of OR (+) also called NOR.
FALSE - This operator evaluates to false regardless of the truth values of A and B.
Boolean Functions
Definition: A Boolean Function F in n variables is a mapping from the n 2n possible truth
value combinations of the n variables to truth values for F. There are 2 ( 2 ) unique Boolean
functions possible using a maximum of n Boolean variables.
Tautologies
A tautology is a logical expression that is true for every combination of truth values
of its variables.
F(A,B,C) = (A + B).(B' + C)
G(A,B,C) = AB' + AC + BC
(A + B).(B' + C)
A B C
<=>
(A+B) ~B (~B+C) LHS
AB' + AC + BC
A(~B) AC BC RHS
LHS=RHS
0 0 0
0
1
1
0
0
0
0
0
1
0 0 1
0
1
1
0
0
0
0
0
1
0 1 0
1
0
0
0
0
0
0
0
1
0 1 1
1
0
1
1
0
0
1
1
1
1 0 0
1
1
1
1
1
0
0
1
1
1 0 1
1
1
1
1
1
1
0
1
1
1 1 0
1
0
0
0
0
0
0
0
1
1 1 1
1
0
1
1
0
1
1
1
1
Venn Diagrams
Three-Variable Venn Diagram
F(A,B,C) = A + BC'
Laws and Postulates
Closure - We state without proof that Boolean algebra is closed under all Boolean operations. The
principle of closure states that a set S is closed with respect to a binary operator if, for every pair
of elements of S, the binary operator specifies a rule for obtaining a unique element in S.
Associative Law - The binary operators AND and OR are associative on the set of Boolean values
(0,1). The associative law states that the order in which the operators are applied to the operands
does not affect the result.
Commutative Law - The binary operators AND and OR are commutative on the set of Boolean
values (0,1). the commutative laws states that the order in which the operands appear in the
expression does not affect the result of the operation.
Identity Element - The binary operators AND and OR have an identity element in the set of
Boolean values (0,1). An identity element is one which when operated on with a Boolean value X
results in the same value X.
Inverse - Now that we have identity elements for AND and OR we can define Y as the inverse of
X with respect to an operator as X+Y = 1, X.Y = 0, X+X' = 1, and X.X' = 0.
Distributive Law - The distributive law defines the interrelationship between two different
operators. For Boolean algebra both AND and OR follow the distributive laws.
A + ( B + C ) = ( A + B) + C
A+ B = B+ A
X +0 = X
X +Y = 1
X + X'= 1
( A + B) ⋅ C = A ⋅ C + B ⋅ C
A ⋅ ( B ⋅ C ) = ( A ⋅ B) ⋅ C
A⋅ B = B ⋅ A
X ⋅1 = X
X ⋅Y = 0
X ⋅ X'=0
( A ⋅ B) + C = ( A + C) ⋅ (B + C )
commutative
identity
associative
inverse
distributive
Idempotent Laws and Absorption
When performing algebraic manipulations
of logical expressions we often encounter
terms in which one or more of the
variables are repeated. The idempotent
laws and the laws of absorption give us a
way to simplify these terms.
X ⋅X = X
X+X =X
idempotenc e
idempotenc e
A( A + B ) = A
absorption
A+ A⋅B = A
absorption
A( A + B ) = A ⋅ A + A ⋅ B
= A + A⋅ B
= A ⋅ (1) + A ⋅ B
= A ⋅ ( B+ ~ B) + A ⋅ B
= A ⋅ B + A ⋅ (~ B ) + A ⋅ B
= A ⋅ B + A ⋅ (~ B )
distributi ve
idempotence
identity
inverse
distributi ve
idempotence
= A ⋅ ( B + ~ B)
= A ⋅ (1)
=A
distributi ve
inverse
identity
De Morgan's Theorem
A + B = A⋅ B
A⋅ B = A + B
~A
~B
(~A).(~B)
1
1
1
1
1
1
0
1
0
0
1
1 0
1
0
0
1
0
1
1 1
1
0
0
0
0
1
A B
A+B
0 0
0
0 1
~(A+B)
~(A+B)=(~A).(~B)
Algebraic Simplification
F(x,y,z) = xy + x'z + yz' + x'yz
= xy + x'z + yz'
= xy(1) + x'z(1) + yz'(1)
= xy(z+z') + x'z(y+y') + yz'(x+x')
= xyz + xyz' + x'yz + x'y'z + xyz' + x'yz'
= xyz + xyz' + x'yz + x'y'z + x'yz'
= xy(z+z') + yz(x+x') + yz'(x+x') + x'z(y+y') + x'y(z+z')
= xy(1) + yz(1) + yz'(1) + x'z(1) + x'y(1)
= (xy+x'y) + (yz+yz') + x'z
= y(x+x') + y(z+z') + x'z
= y(1) + y(1) + x'z
= y + y + x'z
= y + x'z
NAND Stands Alone
A+ B = A+ B
OR
= A⋅ B
= A⋅ A⋅ B ⋅ B
AND
A⋅B = A⋅B
= A⋅B ⋅ A⋅ B
NOT
A = A⋅ A
double negation
De Morgan ' s theorem
idempotenc y
double negation
idempotenc y
idempotency
Canonical Forms of Logical Expressions
(1) The canonical forms of logical expressions representing Boolean function will
be either disjunctive form (also called sum-of-products) or conjuntive form (also
called product-of-sums) .
(2) The canonical form of a logical expression for a particular Boolean function
must be unique to within the labels used for the Boolean variables and whether the
expression is disjunctive or conjuntive.
(3) The canonical forms of logical expressions representing two different Boolean
functions must be different.
Sum of Products
F(x,y,z) = xy + y + xz' + x'y'z
Canonical Sum of Products
F(x,y,z) = xyz + xyz' + x'yz + xy'z' + x'yz'
Canonical Sum of Products
F(x,y,z) = xyz + xyz' + x'yz + xy'z' + x'yz'
111
110
011
100
010
x y z
F(x,y,z)
term
0 0 0
0
x'y'z'
0 0 1
0
x'y'z
0 1 0
1
x'yz'
0 1 1
1
x'yz
1 0 0
0
xy'z'
1 0 1
0
xy'z
1 1 0
1
xyz'
1 1 1
1
xyz
Product of Sums
G(x,y,z) = (x+y)(x+z')(y')(x'+y'+z)
(x+y)
= (x+y+z)(x+y+z')
(x+z') = (x+y+z')(x+y'+z')
(y') = (x+y')(x'+y')
= (x+y'+z)(x+y'+z')(x'+y'+z)(x'+y'+z')
G(x,y,z) = (x+y+z)(x+y'+z)(x+y+z')(x+y'+z')(x'+y'+z)(x'+y'+z')
000
010
001
011
110
111
x y z
G(x,y,z)
clause
0 0 0
0
(x + y + z)
0 0 1
0
(x + y + z')
0 1 0
0
(x + y' + z)
0 1 1
0
(x + y' + z')
1 0 0
1
(x' + y + z)
1 0 1
1
(x' + y + z')
1 1 0
0
(x' + y' + z)
1 1 1
0
(x' + y' + z')
Minterms and Maxterms
x y z
F(x,y,z)=xyz+xyz'+x'yz+xy'z'+x'yz'
111 110
7
6
3
011
4
100
2
= m(2, 3, 4, 6, 7)
minterms
010
(x + y' + z)
0 0 0
0 + 1
+ 0
= 1
0 0 1
0 + 1
+ 1
= 1
0 1 0
0 + 0
+ 0
= 0
0 1 1
0 + 0
+ 1
= 1
1 0 0
1 + 1
+ 0
= 1
1 0 1
1 + 1
+ 1
= 1
1 1 0
1 + 0
+ 0
= 1
1 1 1
1 + 0
+ 1
= 1
G(x,y,z) = (x+y+z)(x+y'+z)(x+y+z')(x+y'+z')(x'+y'+z)(x'+y'+z')
000
010
001
011
110
111
0
2
1
3
6
7
= M(0, 1, 2, 3, 6, 7)
Maxterms
Converting from SOP to POS
F(a,b,c) = a'bc + a'bc' + ab'c' + a'b'c'
011 010
100
SOP form
000
binary vectors
F(a,b,c) = m(0,2,3,4)
minterm list
F(a,b,c) = M(1,5,6,7)
maxterm list
001
101
110
111
F(a,b,c) = (a + b + c')(a'+ b + c')(a'+ b'+ c)(a'+ b'+ c')
binary vectors
POS form
Logic Gates
AND
x y
OR
F(x,y)
NAND
NOR
XOR
NOT
F(x,y) = x.y
Typical Laboratory Setup
Converting Boolean Functions into Logic Circuits
Sum-of-Products
F(x,y) = x.y + x'.y'
x y
F(x,y)
x y
F(x,y)
Cascading Logic Gates
G(x,y,z)=x'yz + x'yz' + xy'z' + x'y'z'
Canonical SOP Form
x
y
z
G(x,y,z)
Canonical POS Form
a
b
c
P(a,b,c)
Implementing Order of Precedence in a Circuit
Half Adder
a
b
a
s
c
b
Half
Adder
c
s
Full Adder
Full Adder Circuit
Ripple-Carry Adder
Magnitude Comparators
Summary
Logic Gates
Electrical Circuits
Converting Algebra to Circuits
Cascading Logic Gates
Canonical SOP Form
Canonical POS Form
Order of Precedence in Logic
Half-Adder and Full-Adder
N-Bit Ripple-Carry Adder
Magnitude Comparator