0% found this document useful (0 votes)
39 views

01 04 SOP & POS + K-Map

The document discusses standard forms and Karnaugh maps for simplifying Boolean functions. It covers Boolean algebra topics like canonical and standard forms, minterms, maxterms, sum of products and product of sums forms. Truth tables and algebraic manipulation methods are also described.

Uploaded by

BINJAD
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views

01 04 SOP & POS + K-Map

The document discusses standard forms and Karnaugh maps for simplifying Boolean functions. It covers Boolean algebra topics like canonical and standard forms, minterms, maxterms, sum of products and product of sums forms. Truth tables and algebraic manipulation methods are also described.

Uploaded by

BINJAD
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 74

Standard and Canonical Forms

&
Karnaugh Maps (K-Maps)

1
1.0 Boolean Algebra
• VERY nice machinery used to manipulate
(simplify) Boolean functions
• George Boole (1815-1864): “An investigation
of the laws of thought”
• Terminology:
– Literal: A variable or its complement
– Product term: literals connected by •
– Sum term: literals connected by +

2
1.1 Boolean Algebra Properties
Let X: Boolean variable,
0,1: constants

1. X + 0 = X -- Zero Axiom
2. X • 1 = X -- Unit Axiom
3. X + 1 = 1 -- Unit Property
4. X • 0 = 0 -- Zero Property
5. X + X = X -- Idepotence
6. X • X = X -- Idepotence
7. X + X’ = 1 -- Complement
8. X • X’ = 0 -- Complement
9. (X’)’ = X -- Involution
3
1.2 Duality
• The dual of an expression is obtained by
exchanging (• and +), and (1 and 0) in it, provided
that the precedence of operations is not changed.

• Cannot exchange x with x’

• Example:
– Find H(x,y,z), the dual of F(x,y,z) = x’yz’ + x’y’z
• H = (x’+y+z’) (x’+y’+ z)

4
1.2 Duality (cont’d) …
With respect to duality, Identities 1 – 8 have the
following relationship:

1.X+0=X 2. X•1 =X (dual


of 1)
3. X+1 =1 4. X • 0 = 0 (dual of 3)
5. X+X=X 6. X • X = X (dual of 5)
7. X + X’ = 1 8. X • X’ = 0 (dual of 8)
5
1.2 More Boolean Algebra Properties …
Let X,Y, and Z: boolean variables
10. X+Y=Y+X 11. X • Y = Y • X -- Commutative
12. X + (Y+Z) = (X+Y) + Z 13. X•(Y•Z) = (X•Y)•Z -- Associative
14. X•(Y+Z) = X•Y + X•Z 15. X+(Y•Z) = (X+Y) • (X+Z)
--
Distributive
16. (X + Y)’ = X’ • Y’ 17. (X • Y)’ = X’ + Y’ -- DeMorgan’s

In general,
( X1 + X2 + … + Xn )’ = X1’•X2’ • … •Xn’, and
( X1•X2•… •Xn )’ = X1’ + X2’ + … + Xn’

6
1.3 Absorption Property
1. x + x•y = x
2. x•(x+y) = x (dual)
• Proof:
x + x•y = x•1 + x•y
= x•(1+y)
= x•1
=x
QED (2 true by duality, why?)

7
1. 4 Power of Duality
• x + x•y = x is true, so (x + x•y)’=x’
• (x + x•y)’=x’•(x’+y’)
• x’•(x’+y’) =x’
• Let X=x’, Y=y’
• X•(X+Y) =X, which is the dual of x + x•y = x.

• The above process can be applied to any formula.


So if a formula is valid, then its dual must also be
valid.
• Proving one formula also proves its dual.
8
1.5 Consensus Theorem
1.xy + x’z + yz = xy + x’z
2.(x+y)•(x’+z)•(y+z) = (x+y)•(x’+z) -- (dual)
• Proof:
xy + x’z + yz = xy + x’z + (x+x’)yz
= xy + x’z + xyz + x’yz
= (xy + xyz) + (x’z + x’zy)
= xy + x’z
QED (2 true by duality).

9
1.6 Truth Tables
• Enumerates all possible x y z F1 F2 F3
combinations of variable values 0 0 0 0 1 1
and the corresponding function
value. 0 0 1 0 0 1
0 1 0 0 0 1
• Truth tables for some arbitrary 0 1 1 0 1 1
functions
1 0 0 0 1 0
F1(x,y,z), F2(x,y,z), and F3(x,y,z)
are shown to the right. 1 0 1 0 1 0
1 1 0 0 0 0
10
1 1 1 1 0 1
1.6 Truth Tables (cont.)
• Truth table: a unique representation of a Boolean
function.

• If two functions have identical truth tables, the


functions are equivalent (and vice-versa).

• Truth tables can be used to prove equality theorems.

• However, the size of a truth table grows exponentially


with the number of variables involved, hence unwieldy.
– This motivates the use of Boolean Algebra.
11
1. 7 Boolean expressions-NOT unique
• Unlike truth tables, expressions
representing a Boolean function are NOT x y z F G
unique. 0 0 0 1 1
• Example: 0 0 1 0 0
– F(x,y,z) = x’•y’•z’ + x’•y•z’ + x•y•z’
0 1 0 1 1
– G(x,y,z) = x’•y’•z’ + y•z’
0 1 1 0 0
• The corresponding truth tables for F() and
1 0 0 0 0
G() are to the right.
– They are identical. 1 0 1 0 0
1 1 0 1 1
• Thus, F() = G() 12
1 1 1 0 0
1.8 Algebraic Manipulation
• Boolean algebra is a useful tool for simplifying
digital circuits.

• Why do it? Simpler can mean cheaper, smaller,


faster.

• Example: Simplify F = x’yz + x’yz’ + xz


F = x’yz + x’yz’ + xz
= x’y(z+z’) + xz
= x’y•1 + xz
= x’y + xz 13
1.8 Algebraic Manipulation(cont.)
• Example: Prove
x’y’z’ + x’yz’ + xyz’ = x’z’ + yz’

• Proof:
x’y’z’+ x’yz’+ xyz’
= x’y’z’ + x’yz’ + x’yz’ + xyz’
= x’z’(y’+y) + yz’(x’+x)
= x’z’•1 + yz’•1
= x’z’ + yz’

14
1.9 Complement of a Function
• The complement of a function is derived by
interchanging (• and +), and (1 and 0), and
complementing each variable.

• Otherwise, interchange 1s to 0s in the truth


table column showing F.

• Note : The complement of a function IS NOT


THE SAME as the dual of a function. 15
1.9 Complementation: Example
• Find G(x,y,z), the complement of
F(x,y,z) = xy’z’ + x’yz
• G = F’ = (xy’z’ + x’yz)’
= (xy’z’)’ • (x’yz)’ DeMorgan
= (x’+y+z) • (x+y’+z’) DeMorgan again

• Note: The complement of a function can also be


derived by finding the function’s dual, and then
complementing all of the literals
16
1.10 Canonical and Standard Forms
• We need to consider formal techniques for the
simplification of Boolean functions.
– Identical functions will have exactly the same
canonical form.
– Minterms and Maxterms
– Sum-of-Minterms and Product-of- Maxterms
– Product and Sum terms
– Sum-of-Products (SOP) and Product-of-Sums (POS)

17
1.10.1 Definitions
• Literal: A variable or its complement

• Product term: literals connected by •

• Sum term: literals connected by +

• Minterm: a product term in which all the variables appear


exactly once, either complemented or uncomplemented.

• Maxterm: a sum term in which all the variables appear exactly


once, either complemented or uncomplemented.
18
1.10.2 Minterm
• Represents exactly one combination in the truth table.

• Denoted by mj, where j is the decimal equivalent of the


minterm’s corresponding binary combination (bj).

• A variable in mj is complemented if its value in bj is 0,
otherwise is uncomplemented.

• Example: Assume 3 variables (A,B,C), and j=3.


– Then, bj = 011 and its corresponding minterm is denoted by
mj = A’BC 19
1.10.3 Maxterm
• Represents exactly one combination in the truth table.

• Denoted by Mj, where j is the decimal equivalent of the


maxterm’s corresponding binary combination (bj).

• A variable in Mj is complemented if its value in bj is 1,
otherwise is uncomplemented.

• Example: Assume 3 variables (A,B,C), and j=3.


– Then, bj = 011 and its corresponding maxterm is denoted by
Mj = A+B’+C’ 20
1.10.3 Truth Table notation for Minterms
and Maxterms
• Minterms and x y z Minterm Maxterm
Maxterms are easy 0 0 0 x’y’z’ = m0 x+y+z = M0
to denote using a 0 0 1 x’y’z = m1 x+y+z’ = M1
truth table. 0 1 0 x’yz’ = m2 x+y’+z = M2
0 1 1 x’yz = m3 x+y’+z’= M3
• Example: 1 0 0 xy’z’ = m4 x’+y+z = M4
Assume 3 variables 1 0 1 xy’z = m5 x’+y+z’ = M5
x,y,z (order is fixed) 1 1 0 xyz’ = m6 x’+y’+z = M6
1 1 1 xyz = m7 x’+y’+z’ = M7

21
1.10.4 Canonical Forms (Unique)
• Any Boolean function F( ) can be expressed as a
unique sum of minterms and a unique product
of maxterms (under a fixed variable ordering).

• In other words, every function F() has two


canonical forms:
– Canonical Sum-Of-Products (sum of minterms)
– Canonical Product-Of-Sums (product of maxterms)

22
1.10.4 Canonical Forms(cont.)
• Canonical Sum-Of-Products:
The minterms included are those mj such that
F( ) = 1 in row j of the truth table for F( ).

• Canonical Product-Of-Sums:
The maxterms included are those Mj such that
F( ) = 0 in row j of the truth table for F( ).

23
1.10.4 Canonical Forms :Example
• Truth table for f1(a,b,c) at right
a b c f1
• The canonical sum-of-products form for 0 0 0 0
f1 is
0 0 1 1
f1(a,b,c) = m1 + m2 + m4 + m6
= a’b’c + a’bc’ + ab’c’ + abc’ 0 1 0 1
0 1 1 0
• The canonical product-of-sums form for
1 0 0 1
f1 is
f1(a,b,c) = M0 • M3 • M5 • M7 1 0 1 0
= (a+b+c)•(a+b’+c’)• 1 1 0 1
(a’+b+c’)•(a’+b’+c’). 1 1 1 0
24
1.10.5 Shorthand: ∑ and ∏
• f1(a,b,c) = ∑ m(1,2,4,6), where ∑ indicates that this is
a sum-of-products form, and m(1,2,4,6) indicates that
the minterms to be included are m1, m2, m4, and m6.

• f1(a,b,c) = ∏ M(0,3,5,7), where ∏ indicates that this is


a product-of-sums form, and M(0,3,5,7) indicates that
the maxterms to be included are M0, M3, M5, and M7.

• Since mj = Mj’ for any j,


∑ m(1,2,4,6) = ∏ M(0,3,5,7) = f1(a,b,c)
25
1.10.6 Conversion Between Canonical Forms

• Replace ∑ with ∏ (or vice versa) and replace those j’s that
appeared in the original form with those that do not.

• Example:
f1(a,b,c) = a’b’c + a’bc’ + ab’c’ + abc’
= m1 + m2 + m4 + m6
= ∑(1,2,4,6)
= ∏(0,3,5,7)
= (a+b+c)•(a+b’+c’)•(a’+b+c’)•(a’+b’+c’)

26
1.10.7 Standard Forms (NOT Unique)
• Standard forms are “like” canonical forms,
except that not all variables need appear in the
individual product (SOP) or sum (POS) terms.
• Example:
f1(a,b,c) = a’b’c + bc’ + ac’
is a standard sum-of-products form

• f1(a,b,c) = (a+b+c)•(b’+c’)•(a’+c’)
is a standard product-of-sums form.
27
1.10.7 Conversion of SOP from standard to
canonical form
• Expand non-canonical terms by inserting
equivalent of 1 in each missing variable x:
(x + x’) = 1
• Remove duplicate minterms
• f1(a,b,c) = a’b’c + bc’ + ac’
= a’b’c + (a+a’)bc’ + a(b+b’)c’
= a’b’c + abc’ + a’bc’ + abc’ + ab’c’
= a’b’c + abc’ + a’bc + ab’c’
28
1.10.8 Conversion of POS from standard to
canonical form
• Expand non-canonical terms by adding 0 in terms of
missing variables (e.g., xx’ = 0) and using the
distributive law.

• Remove duplicate maxterms


• f1(a,b,c) = (a+b+c)•(b’+c’)•(a’+c’)
= (a+b+c)•(aa’+b’+c’)•(a’+bb’+c’)
= (a+b+c)•(a+b’+c’)•(a’+b’+c’)•
(a’+b+c’)•(a’+b’+c’)
=
(a+b+c)•(a+b’+c’)•(a’+b’+c’)•(a’+b+c’) 29
2.0 Karnaugh Maps
• Maurice Karnaugh, a telecommunications engineer, developed the Karnaugh
map at Bell Labs in 1953 while designing digital logic based telephone
switching circuits.

• Karnaugh maps (K-maps) are graphical representations of boolean functions


or
• A Karnaugh map (K-map) is a pictorial method used to minimize Boolean
expressions without having to use Boolean algebra theorems and equation
manipulations.

• One map cell corresponds to a row in the truth table.

• Also, one map cell corresponds to a minterm or a maxterm in the boolean


expression.

• Multiple-cell areas of the map correspond to standard terms.


30
Karnaugh Map (K map) : Rules
 No zeros allowed.
 Rectangular only.
 No diagonals.
 Only power of 2 number of cells in each group (i.e. Made of
1,2,4,8,16,etc. no. of cells for grouping).
 Groups should be as large as possible.
 Every one must be in at least one group.
 Overlapping allowed.
 Wrap around allowed.
 Fewest number of groups possible.
2.1 Two-Variable Map
x2 x1
x1 0 1 x2 0 1
0 1 0 2
0 m0 m1
OR 0 m0 m2
2 3 1 3
1 m2 m3 1 m1 m3

• NOTE: ordering of variables is IMPORTANT for f(x1,x2),


x1 is the row, x2 is the column.
• Cell 0 represents x1’x2’; Cell 1 represents x1’x2; etc.
• If a minterm is present in the function, then a 1 is
placed in the corresponding cell. 32
2.1 Two-Variable Map (cont.)
• Any two adjacent cells in the map differ by ONLY
one variable, which appears complemented in
one cell and uncomplemented in the other.

• Example:
m0 (=x1’x2’) is adjacent to m1 (=x1’x2) and m2
(=x1x2’) but NOT m3 (=x1x2)

33
2.1 Two-Variable Map :Example
• f(x1,x2) = x1’x2’+ x1’x2 + x1x2’
= m0 + m1 + m2
= x1’ + x2’
x2
• 1s placed in K-map for specified
minterms m0, m1, m2 x1 0 1
0 1
• Grouping (ORing) of 1s allows
simplification 0
2
1 3
1
• What (simpler) function is
represented by each dashed
rectangle? 1 1 0
– x1’ = m0 + m1
– x2’ = m0 + m2 34
2.2 Minimization as SOP using K-map
• Enter 1s in the K-map for each product term in the
function.

• Group adjacent K-map cells containing 1s to obtain a


product with fewer variables.

• Group size must be in power of 2 (2, 4, 8, …)

• Handle “boundary wrap” for K-maps of 3 or more


variables.

• Realize that answer may not be unique 35


2. 3 Three-Variable Map
yz
x 00 01 11 10
0 1 3 2
0 m0 m1 m3 m2
4 5 7 6

1 m4 m5 m7 m6

-Note: variable ordering is (x,y,z); yz specifies column, x


specifies row.

-Each cell is adjacent to three other cells (left or right or


top or bottom or edge wrap) 36
2.3 Three-Variable Map (cont.)
minterm

The types of structures that are


either minterms or are
generated by repeated
application of the minimization
theorem on a three variable
map are shown at right.
Groups of 1, 2, 4, 8 are possible.

group of 2 terms

group of 4 terms
37
2.4 Simplification
• Enter minterms of the Boolean function into
the map, then group terms
• Example: f(a,b,c) = a’c + abc + bc’
• Result: f(a,b,c) = a’c+ b
a bc
1 1 1

1 1 1 1 1
1 1
38
2.5 More Examples
yz
X 00 01 11 10

• f1(x, y, z) = ∑ m(2,3,5,7) 0 1 1
1 1 1
 f1(x, y, z) = x’y + xz

• f2(x, y, z) = ∑ m (0,1,2,3,6)
1 1 1 1
f2(x, y, z) = x’+yz’
1

39
2.6 Four-Variable Maps
YZ
00 01 11 10
WX

00 m0 m1 m3 m2

01 m4 m5 m7 m6

11 m12 m13 m15 m14

10 m8 m9 m11 m10

• Top cells are adjacent to bottom cells. Left-edge cells are


adjacent to right-edge cells.

• Note: variable ordering (WXYZ).


40
2.6.1 Four-variable Map Simplification
• One square represents a minterm of 4 literals.

• A rectangle of 2 adjacent squares represents a product term of 3


literals.

• A rectangle of 4 squares represents a product term of 2 literals.

• A rectangle of 8 squares represents a product term of 1 literal.

• A rectangle of 16 squares produces a function that is equal to


logic 1.
41
2.6.2 Example
• Simplify the following Boolean function g(A,B,C,D) =
∑m(0,1,2,4,5,7,8,9,10,12,13).
• First put the function g( ) into the map, and then group
as many 1s as possible.
ab cd

1 1 1 1 1 1

1 1 1 1 1 1

1 1 1 1

1 1 1 1 1 1

g(A,B,C,D) = c’+b’d’+a’bd
42
2.7 Don't Care Conditions
• There may be a combination of input values which
– will never occur
– if they do occur, the output is of no concern.

• The function value for such combinations is called a


don't care.

• They are denoted with x or – or d.


– Each x may be arbitrarily assigned the value 0 or 1 in an
implementation.
• Don’t cares can be used to further simplify a function
43
2.7 Don't Care Conditions …
• TIn some applications, the Boolean function for certain
combinations of the input variables is not specified.
– The corresponding minterms (maxterms) are called “don't care
minterms (maxterms)”.

• In K-map , the “don't care minterms/maxterms” are


represented by “d”.

• Since the output function for those minterms (maxterms) is not


specified, those minterms (maxterms) could be combined with
the adjacent 1 cells(0-cells) to get a more simplified sum-of-
products (product-of-sums) expression.
44
2.7.1 Minimization using Don’t Cares
• Treat don't cares as if they are 1s to generate
PIs.

• Delete PI's that cover only don't care minterms.

• Treat the covering of remaining don't care


minterms as optional in the selection process
(i.e. they may be, but need not be, covered).
45
cd
ab 00 01 11 10
2.7.2 Example 00 0 1 0 1
01 1 1 0 1
• Simplify the function f(a,b,c,d) 11 0 0 x x
10
whose K-map is shown at the 1 1 x x
right. 0 1 0 1
1 1 0 1
0 0 x x
• f = a’c’d+ab’+cd’+a’bc’
1 1 x x
or
0 1 0 1
• f = a’c’d+ab’+cd’+a’bd’ 1 1 0 1
0 0 x x
1 1 x x
46
cd
2.7.3 Another Example ab
x 1 0 0
1 x 0 x
• Simplify the function 1 x x 1
g(a,b,c,d) whose K-map is 0 x x 0
shown at right. x 1 0 0
1 x 0 x
• g = a’c’+ ab 1 x x 1
0 x x 0
or
x 1 0 0
• g = a’c’+b’d
1 x 0 x
1 x x 1
0 x x 0
47
W
WX
2.8 Example - K-Map YZ 00 01 11 10
0 4 12 8
00 0 0 d 1
1 5 13 9
01 0 1 d 1
Z
3 7 15 11
W 11 0 1 d d
WX Y
2 6 14 10
10 0 1 d d
YZ 00 01 11 10
0 4 12 8
00 0 0 d 1 X
1 5 13 9 • The Minimal Sum :
01 0 1 d 1 • Combining the 1 cells only
Z • the minimal sum is:
3 7 15 11
11 0 1 d d F = W.X’.Y’+W’.X.Z+W’.X.Y
Y • Combining the don't care minterms
2 6 14 10
10 0 1 d d d (s) with the 1 cells
• The minimal sum is (with using d (s)):
F = W+X.Z+X.Y
X 48
• Exercise: Find the Minimal Product
2.8.1 Exercise solution
W
• The Minimal Product
WX
• F= (W+X).(W+Y+Z)
YZ 00 01 11 10
0 4 12 8
00 0 0 d 1
1 5 13 9
01 0 1 d 1
Z
3 7 15 11
11 0 1 d d
Y
2 6 14 10
10 0 1 d d

X
• Which one is cheaper for this problem: The SoP or the PoS?
49
2.8.2 Example- Implementation
• The minimal Sum implementation : F = W+X.Z+X.Y
W
X
F
Y
Z

• The minimal Product implementation : F= (W+X).(W+Y+Z)

W W
X X
F F
Y Y
Z Z

50
• How to choose?
2.9 Another Example
• Minimizing a Function with Don’t Cares.
f(A,B,C,D) = m(1,3,4,7,11) + d(5,12,13,14,15)
= M(0,2,6,8,9,10)  D(5,12,13,14,15)
AB A AB A
CD 00 01 11 10 CD 00 01 11 10
0 4 12 8 0 4 12 8
00 1 d 00 0 d 0
1 5 13 9 1 5 13 9
01 1 d d 01 d d 0
3 7 15 11 D 3 7 15 11 D
11 1 1 d 1 11 d
C 2 6 14 10
C 2 6 14 10
10 d 10 0 0 d 0

B B
(a ) (b )
SOP POS
Algorithmic minimization
• What do we do for functions with more
variables?
• You can “code up” a minimizer (Computer-
Aided Design, CAD)
– Quine-McCluskey algorithm
– Iterated consensus
• We won’t discuss these techniques here

52
More Logic Gates
• NAND and NOR Gates
– NAND and NOR circuits
– Two-level Implementations
– Multilevel Implementations
• Exclusive-OR (XOR) Gates
– Odd Function
– Parity Generation and Checking

53
More Logic Gates
• We can construct any combinational circuit with
AND, OR, and NOT gates

• Additional logic gates are used for practical


reasons

54
BUFFER, NAND and NOR

55
NAND Gate
• Known as a “universal” gate because ANY
digital circuit can be implemented with
NAND gates alone.
• To prove the above, it suffices to show that
AND, OR, and NOT can be implemented
using NAND gates only.

56
NAND Gate Emulation
F = (X•X)’ X F = X’
X
= X’+X’
= X’

X X F X•Y
F = ((X•Y)’)’
Y Y
= (X’+Y’)’
= X’’•Y’’
= X•Y
X X
F = (X’•Y’)’ F = X+Y
= X’’+Y’’
Y Y
= X+Y

57
NAND Circuits
• To easily derive a NAND implementation of a
boolean function:
– Find a simplified SOP
– SOP is an AND-OR circuit
– Change AND-OR circuit to a NAND circuit
– Use the alternative symbols below

58
AND-OR (SOP) Emulation
Using NANDs

Two-level implementations

a) Original SOP
b) Implementation with NANDs

59
AND-OR (SOP) Emulation
Using NANDs (cont.)

Verify:
(a) G = WXY + YZ
(b) G = ( (WXY)’ • (YZ)’ )’
= (WXY)’’ + (YZ)’’ = WXY + YZ
60
SOP with NAND

(a) Original SOP


(b) Double inversion and grouping AND-NOT
(c) Replacement with NANDs NOT-OR
61
Two-Level NAND Gate
Implementation - Example
F (X,Y,Z) = m(0,6)
1. Express F in SOP form:
F = X’Y’Z’ + XYZ’
2. Obtain the AND-OR implementation for F.
3. Add bubbles and inverters to transform
AND-OR to NAND-NAND gates.

62
Example (cont.)

Two-level implementation with NANDs


F = X’Y’Z’ + XYZ’
63
Multilevel NAND Circuits
Starting from a multilevel circuit:
1. Convert all AND gates to NAND gates with AND-
NOT graphic symbols.
2. Convert all OR gates to NAND gates with NOT-OR
graphic symbols.
3. Check all the bubbles in the diagram. For every
bubble that is not counteracted by another
bubble along the same line, insert a NOT gate or
complement the input literal from its original
appearance.

64
Example
Use NAND gates
and NOT gates to
implement
Z=E’F(AB+C’+D’)+GH
AB
AB+C’+D’
E’F(AB+C’+D’)
E’F(AB+C’+D’)+GH

65
Yet Another Example!

66
NOR Gate
• Also a “universal” gate because ANY digital
circuit can be implemented with NOR gates
alone.
• This can be similarly proven as with the
NAND gate.

67
NOR Circuits
• To easily derive a NOR implementation of a
boolean function:
– Find a simplified POS
– POS is an OR-AND circuit
– Change OR-AND circuit to a NOR circuit
– Use the alternative symbols below

68
Two-Level NOR Gate
Implementation - Example
F(X,Y,Z) = m(0,6)
1. Express F’ in SOP form:
1. F’ = m(1,2,3,4,5,7)
= X’Y’Z + X’YZ’ + X’YZ + XY’Z’ + XY’Z + XYZ
2. F’ = XY’ + X’Y + Z
2. Take the complement of F’ to get F in the POS
form: F = (F’)' = (X'+Y)(X+Y')Z'
3. Obtain the OR-AND implementation for F.
4. Add bubbles and inverters to transform OR-AND
implementation to NOR-NOR implementation.

69
Example (cont.)

Two-level implementation with NORs


F = (F’)' = (X'+Y)(X+Y')Z'

70
XOR and XNOR
X Y F = XY
XOR: “not-equal” gate 0 0 0

X F 0 1 1
1 0 1
Y
1 1 0

X Y F = XY
XNOR: “equal” gate 0 0 1
0 1 0
X F
1 0 0
Y 1 1 1
71
Exclusive-OR (XOR) Function
• XOR (also ) : the “not-equal” function
• XOR(X,Y) = X  Y = X’Y + XY’
• Identities:
– X0=X
– X  1 = X’
– XX=0
– X  X’ = 1
• Properties:
– XY=YX
– (X  Y)  W = X  ( Y  W)

72
XOR function implementation
• XOR(a,b) = ab’ + a’b
• Straightforward: 5 gates
– 2 inverters, two 2-input ANDs, one 2-input OR
– 2 inverters & 3 2-input NANDs
• Nonstraightforward:
– 4 NAND gates

73
XOR circuit with 4 NANDs

74

You might also like