Boolean Algebra and Logic Gates 1 Computer Engineering (Logic Circuits) Lec. # 4 Dr. Tamer Samy...
Transcript of Boolean Algebra and Logic Gates 1 Computer Engineering (Logic Circuits) Lec. # 4 Dr. Tamer Samy...
Boolean Algebra and Logic Gates 1
Computer Engineering
(Logic Circuits)Lec. # 4
Dr. Tamer Samy Gaafar
Dept. of Computer & Systems Engineering
Faculty of Engineering
Zagazig University
Boolean Algebra and Logic Gates 2
http://www.tsgaafar.faculty.zu.edu.eg
• Email: [email protected]
Course Web Page
Announcements
Only 2 Students > 10 in Quizz. 1- Abdallah Salah Eldeen (13) 2- Mohamed Nagi Mahmoud (12) Only 5 <2 Students < 10 in Quizz. 1- Mohamed Samir Abd-Ellatif (9) 2-Heba Allah Abdo Ali (8) Every Lec. There will be a Quizz
Boolean Algebra and Logic Gates 3
Boolean Algebra and Logic Gates 5
1.
3.
5.
7.
9.
11.
13.
15.
17.
Commutative
Associative
Distributive
DeMorgan’s
2.
4.
6.
8.
X . 1 X=
X . 0 0=
X . X X=
0=X . X
Boolean Algebra
10.
12.
14.
16.
X + Y Y + X=
(X + Y) Z+ X + (Y Z)+=X(Y + Z) XY XZ+=
X + Y X . Y=
XY YX=
(XY) Z X(YZ)=
X + YZ (X + Y) (X + Z)=
X . Y X + Y=
X + 0 X=
+X 1 1=
X + X X=
1=X + X
X = X
An algebraic structure defined by a set B = {0, 1}, together with two binary operators (+ and ·) and a unary operator ( )
Idempotence
Complement
Involution
Identity element
Boolean Algebra and Logic Gates 6
Some Properties of Boolean Algebra
Boolean Algebra is defined in general by a set B that can have more than two values
A two-valued Boolean algebra is also know as Switching Algebra. The Boolean set B is restricted to 0 and 1. Switching circuits can be represented by this algebra.
Sometimes, the dot symbol ‘’ (AND operator) is not written when the meaning is clear.
Boolean Algebra and Logic Gates 7
Boolean Operator Precedence
The order of evaluation is:
1. Parentheses2. NOT3. AND4. OR
Consequence: Parentheses appear around OR expressions
Example: F = A(B + C)(C + D)
Boolean Algebra and Logic Gates 8
Boolean Algebraic Proof – Example 1
A + A · B = A (Absorption Theorem)Proof Steps Justification A + A · B= A · 1 + A · B Identity element: A · 1 = A
= A · ( 1 + B) Distributive
= A · 1 1 + B = 1
= A Identity element
Our primary reason for doing proofs is to learn:• Careful and efficient use of the identities and theorems of
Boolean algebra, and• How to choose the appropriate identity or theorem to apply
to make forward progress, irrespective of the application.
Boolean Algebra and Logic Gates 9
AB + AC + BC = AB + AC (Consensus Theorem)Proof Steps Justification= AB + AC + BC= AB + AC + 1 · BC Identity element= AB + AC + (A + A) · BC Complement= AB + AC + ABC + ABC Distributive= AB + ABC + AC + ACB Commutative= AB · 1 + ABC + AC · 1 + ACB Identity element= AB (1+C) + AC (1 + B) Distributive= AB . 1 + AC . 1 1+X = 1= AB + AC Identity element
Boolean Algebraic Proof – Example 2
Boolean Algebra and Logic Gates 10
Useful Theorems
MinimizationX Y + X Y = Y
AbsorptionX + X Y = X
SimplificationX + X Y = X + Y
DeMorgan’s X + Y = X · Y
Minimization (dual)(X+Y)(X+Y) = Y
Absorption (dual)X · (X + Y) = X
Simplification (dual)X · (X + Y) = X · Y
DeMorgan’s (dual) X · Y = X + Y
Boolean Algebra and Logic Gates 11
Truth Table to Verify DeMorgan’s
X Y X·Y X+Y X Y X+Y X · Y X·Y X+Y
0 0 0 0 1 1 1 1 1 10 1 0 1 1 0 0 0 1 11 0 0 1 0 1 0 0 1 11 1 1 1 0 0 0 0 0 0
X + Y = X · Y X · Y = X + Y
Generalized DeMorgan’s Theorem:
X1 + X2 + … + Xn = X1 · X2 · … · Xn
X1 · X2 · … · Xn = X1 + X2 + … + Xn
Boolean Algebra and Logic Gates 12
Complementing Functions
Use DeMorgan's Theorem:
1. Interchange AND and OR operators
2. Complement each constant and literal
Example: Complement F =
F = (x + y + z)(x + y + z) Example: Complement G = (a + bc)d + e
G = (a (b + c) + d) e
x zyzyx
Boolean Algebra and Logic Gates 13
Expression Simplification An application of Boolean algebra Simplify to contain the smallest number
of literals (variables that may or may not be complemented)
= AB + ABCD + A C D + A C D + A B D
= AB + AB(CD) + A C (D + D) + A B D
= AB + A C + A B D = B(A + AD) +AC
= B (A + D) + A C (has only 5 literals)
DCBADCADBADCABA
Boolean Algebra and Logic Gates 14
Next … Canonical Forms
Minterms and Maxterms
Sum-of-Minterm (SOM) = Sum-of-Products (SOP)
Canonical Sum
Product-of-Maxterm(POM)= Product of Sum
(POS)
Canonical Form
Representation of Complements of Functions
Conversions between Representations
Boolean Algebra and Logic Gates 15
Boolean Algebra and Logic Gates 16
Minterms
Minterms are AND terms with every variable present in either true or complemented form.
Given that each binary variable may appear normal (e.g., x) or complemented (e.g., ), there are 2n minterms for n variables.
Example: Two variables (X and Y) produce2 x 2 = 4 combinations: (both normal) (X normal, Y complemented) (X complemented, Y normal) (both complemented)
Thus there are four minterms of two variables.
YXXY
YXYX
x
Boolean Algebra and Logic Gates 17
Maxterms
Maxterms are OR terms with every variable in true or complemented form.
Given that each binary variable may appear normal (e.g., x) or complemented (e.g., x), there are 2n maxterms for n variables.
Example: Two variables (X and Y) produce2 x 2 = 4 combinations: (both normal) (x normal, y complemented) (x complemented, y normal) (both complemented)
YX YX YX YX
Boolean Algebra and Logic Gates 18
Two variable minterms and maxterms.
The minterm mi should evaluate to 1 for each combination of x and y.
The maxterm is the complement of the minterm
Minterms & Maxterms for 2 variables
x y Index Minterm Maxterm
0 0 0 m0 = x y M0 = x + y
0 1 1 m1 = x y M1 = x + y
1 0 2 m2 = x y M2 = x + y
1 1 3 m3 = x y M3 = x + y
Boolean Algebra and Logic Gates 19
Minterms & Maxterms for 3 variables
M3 = x + y + zm3 = x y z3110M4 = x + y + zm4 = x y z4001M5 = x + y + zm5 = x y z5101M6 = x + y + zm6 = x y z6011
1
100y
1
000x
1
010z
M7 = x + y + zm7 = x y z7
M2 = x + y + zm2 = x y z2
M1 = x + y + zm1 = x y z1
M0 = x + y + zm0 = x y z0MaxtermMintermIndex
Maxterm Mi is the complement of minterm mi
Mi = mi and mi = Mi
Boolean Algebra and Logic Gates 20
Purpose of the Index
Minterms and Maxterms are designated with an index
The index number corresponds to a binary pattern
The index for the minterm or maxterm, expressed as a binary number, is used to determine whether the variable is shown in the true or complemented form
For Minterms:• ‘1’ means the variable is “Not Complemented” and
• ‘0’ means the variable is “Complemented”.
For Maxterms:• ‘0’ means the variable is “Not Complemented” and
• ‘1’ means the variable is “Complemented”.
Boolean Algebra and Logic Gates 21
Standard Order All variables should be present in a minterm or
maxterm and should be listed in the same order (usually alphabetically)
Example: For variables a, b, c:
• Maxterms (a + b + c), (a + b + c) are in standard order
• However, (b + a + c) is NOT in standard order
(a + c) does NOT contain all variables
• Minterms (a b c) and (a b c) are in standard order
• However, (b a c) is not in standard order
(a c) does not contain all variables
Boolean Algebra and Logic Gates 22
Sum-Of-Product (SOP) Sum-Of-Product (SOP) = Canonical Sum:
Sum of minterms of entries that evaluate to ‘1’
x y z F Minterm0 0 0 0
0 0 1 1 m1 = x y z
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1 m6 = x y z
1 1 1 1 m7 = x y z
F = m1 + m6 + m7 = ∑ (1, 6, 7) = x y z + x y z + x y z
Focus on the ‘1’ entries
Sum-Of-Product (SOP)
F = m1 + m6 + m7 = x y z + x y z + x y z
Boolean Algebra and Logic Gates 23
Canonical Sum
Boolean Algebra and Logic Gates 25
+ a b c d
Sum-Of-Products Examples
F(a, b, c, d) = ∑(2, 3, 6, 10, 11)
F(a, b, c, d) = m2 + m3 + m6 + m10 + m11
G(a, b, c, d) = ∑(0, 1, 12, 15)
G(a, b, c, d) = m0 + m1 + m12 + m15
+ a b c da b c d + a b c d+ a b c d + a b c d
+ a b c da b c d + a b c d
Boolean Algebra and Logic Gates 26
Product-Of-Sum (POS) Product-Of-Sum (POS) = Canonical Product:
Product of maxterms of entries that evaluate to ‘0’
x y z F Maxterm0 0 0 1
0 0 1 1
0 1 0 0 M2 = (x + y + z)
0 1 1 1
1 0 0 0 M4 = (x + y + z)
1 0 1 1
1 1 0 0 M6 = (x + y + z)
1 1 1 1
Focus on the ‘0’ entries
F = M2·M4·M6 = ∏ (2, 4, 6) = (x+y+z) (x+y+z) (x+y+z)
Boolean Algebra and Logic Gates 27
Product-Of-Sum (POS) Canonical Product:
x y z F Maxterm0 0 0 1
0 0 1 1
0 1 0 0 M2 = (x + y + z)
0 1 1 1
1 0 0 0 M4 = (x + y + z)
1 0 1 1
1 1 0 0 M6 = (x + y + z)
1 1 1 1
F = M2·M4·M6 = (x+y’+z) (x’+y+z) (x’+y’+z)
Boolean Algebra and Logic Gates 28
Product-Of-Sum (POS)
Off-Setx y z F Maxterm0 0 0 1
0 0 1 1
0 1 0 0 M2 = (x + y + z)
0 1 1 1
1 0 0 0 M4 = (x + y + z)
1 0 1 1
1 1 0 0 M6 = (x + y + z)
1 1 1 1
F = M2·M4·M6 = ∏ (2, 4, 6)
Boolean Algebra and Logic Gates 29
F(a, b, c, d) = ∏(1, 3, 6, 11)
F(a, b, c, d) = M1 · M3 · M6 · M11
G(a, b, c, d) = ∏(0, 4, 12, 15)
G(a, b, c, d) = M0 · M4 · M12 · M15
Product-Of-Sum Examples
(a+b+c+d) (a+b+c+d) (a+b+c+d) (a+b+c+d)
(a+b+c+d) (a+b+c+d) (a+b+c+d) (a+b+c+d)
Boolean Algebra and Logic Gates 30
Observations
We can implement any function by "ORing" the minterms corresponding to the ‘1’ entries in the function table. A minterm evaluates to ‘1’ for its corresponding entry.
We can implement any function by "ANDing" the maxterms corresponding to ‘0’ entries in the function table. A maxterm evaluates to ‘0’ for its corresponding entry.
The same Boolean function can be expressed in two canonical ways: Sum-of-Products (SOP) and Product-of-Sum (POS).
If a Boolean function has fewer ‘1’ entries then the SOP canonical form will contain fewer literals than POS. However, if it has fewer ‘0’ entries then the POS form will have fewer literals than SOP.
Boolean Algebra and Logic Gates 31
Converting to Sum-of-Products Form
A function that is not in the Sum-of-Minterms form can be converted to that form by means of a truth table
Consider F = y + x z
x y z F Minterm0 0 0 1 m0 = x y z
0 0 1 1 m1 = x y z
0 1 0 1 m2 = x y z
0 1 1 0
1 0 0 1 m4 = x y z
1 0 1 1 m5 = x y z
1 1 0 0
1 1 1 0
F = ∑(0, 1, 2, 4, 5) =
m0 + m1 + m2 + m4 + m5 =
x y z + x y z + x y z +
x y z + x y z
Boolean Algebra and Logic Gates 32
Converting to Product-of-Sum Form
A function that is not in the Product-of-Minterms form can be converted to that form by means of a truth table
Consider again: F = y + x z
x y z F Minterm0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 0 M3 = (x+y+z)
1 0 0 1
1 0 1 1
1 1 0 0 M6 = (x+y+z)
1 1 1 0 M7 = (x+y+z)
F = ∏(3, 6, 7) =
M3 · M6 · M7 =
(x+y+z) (x+y+z) (x+y+z)
Boolean Algebra and Logic Gates 33
Conversions Between Canonical Forms
F = m1+m2+m3+m5+m7 = ∑(1, 2, 3, 5, 7) =
x y z + x y z + x y z + x y z + x y z
F = M0 · M4 · M6 = ∏(0, 4, 6) = (x+y+z)(x+y+z)(x+y+z)
x y z F Minterm Maxterm0 0 0 0 M0 = (x + y + z)
0 0 1 1 m1 = x y z
0 1 0 1 m2 = x y z
0 1 1 1 m3 = x y z
1 0 0 0 M4 = (x + y + z)
1 0 1 1 m5 = x y z
1 1 0 0 M6 = (x + y + z)
1 1 1 1 m7 = x y z
Boolean Algebra and Logic Gates 34
Algebraic Conversion to Sum-of-Products
Expand all terms first to explicitly list all minterms AND any term missing a variable v with (v + v) Example 1: f = x + x y (2 variables)
f = x (y + y) + x yf = x y + x y + x yf = m3 + m2 + m0 = ∑(0, 2, 3)
Example 2: g = a + b c (3 variables)g = a (b + b)(c + c) + (a + a) b cg = a b c + a b c + a b c + a b c + a b c + a b cg = a b c + a b c + a b c + a b c + a b cg = m1 + m4 + m5 + m6 + m7 = ∑ (1, 4, 5, 6, 7)
Boolean Algebra and Logic Gates 35
Algebraic Conversion to Product-of-Sum
Expand all terms first to explicitly list all maxterms OR any term missing a variable v with v · v Example 1: f = x + x y (2 variables)
Apply 2nd distributive law:
f = (x + x) (x + y) = 1 · (x + y) = (x + y) = M1
Example 2: g = a c + b c + a b (3 variables)
g = (a c + b c + a) (a c + b c + b) (distributive)
g = (c + b c + a) (a c + c + b) (x + x y = x + y)
g = (c + b + a) (a + c + b) (x + x y = x + y)
g = (a + b + c) (a + b + c) = M5 . M2 = ∏ (2, 5)
Boolean Algebra and Logic Gates 36
Function Complements
The complement of a function expressed as a sum of products is constructed by selecting the minterms missing in the sum-of-products canonical form
Alternatively, the complement of a function expressed by a Sum of Products form is simply the Product of Sum with the same indices
Example: Given F(x, y, z) = ∑ (1, 3, 5, 7)
F(x, y, z) = ∑ (0, 2, 4, 6)
F(x, y, z) = ∏ (1, 3, 5, 7)
Boolean Algebra and Logic Gates 37
Summary of Minterms and Maxterms
There are 2n minterms and maxterms for Boolean functions with n variables.
Minterms and maxterms are indexed from 0 to 2n – 1
Any Boolean function can be expressed as a logical sum of minterms and as a logical product of maxterms
The complement of a function contains those minterms not included in the original function
The complement of a sum-of-products is a product-of-sum with the same indices
Boolean Algebra and Logic Gates 38
Standard Sum-of-Products (SOP) form: equations are written as an OR of AND terms
Standard Product-of-Sums (POS) form: equations are written as an AND of OR terms
Examples:• SOP:
• POS:
These “mixed” forms are neither SOP nor POS•
•
Standard Forms
B C B A C B A C · )C B(A · B) (A
C) (A C) B (A B) (A C A C B A
Boolean Algebra and Logic Gates 39
Standard Sum-of-Products (SOP)
A sum of minterms form for n variables can be written down directly from a truth table.
• Implementation of this form is a two-level network of gates such that:
• The first level consists of n-input AND gates
• The second level is a single OR gate
This form often can be simplified so that the corresponding circuit is simpler.
Boolean Algebra and Logic Gates 40
A Simplification Example: Writing the minterm expression:
F = A B C + A B C + A B C + ABC + ABC Simplifying:
F = A B C + A (B C + B C + B C + B C)F = A B C + A (B (C + C) + B (C + C))F = A B C + A (B + B)F = A B C + AF = B C + A
Simplified F contains 3 literals compared to 15
Standard Sum-of-Products (SOP)
)7,6,5,4,1()C,B,A(F
Boolean Algebra and Logic Gates 41
AND/OR Two-Level Implementation
The two implementations for F are shown below
F
B
C
A
It is quite apparent which
is simpler!
Boolean Algebra and Logic Gates 42
SOP and POS Observations The previous examples show that:
• Canonical Forms (Sum-of-minterms, Product-of-Maxterms), or other standard forms (SOP, POS) differ in complexity
• Boolean algebra can be used to manipulate equations into simpler forms
• Simpler equations lead to simpler implementations
Questions:
• How can we attain a “simplest” expression?
• Is there only one minimum cost circuit?
• The next part will deal with these issues