0% found this document useful (0 votes)
63 views101 pages

Digi Ts Sir

The document discusses how computers represent information internally using binary numbers. It explains that computers use the binary numbering system with only two digits, 0 and 1. Various methods for representing different data types internally are covered, such as representing integers using binary, signed and unsigned representations, floating point numbers using normalized scientific notation, and text using code mappings like ASCII.

Uploaded by

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

Digi Ts Sir

The document discusses how computers represent information internally using binary numbers. It explains that computers use the binary numbering system with only two digits, 0 and 1. Various methods for representing different data types internally are covered, such as representing integers using binary, signed and unsigned representations, floating point numbers using normalized scientific notation, and text using code mappings like ASCII.

Uploaded by

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

Number System

&
Digital Logic
Overview
• Binary logic and Gates
• Boolean Algebra
– Basic Properties
– Algebraic Manipulation
• Standard and Canonical Forms
– Minterms and Maxterms (Canonical forms)
– SOP and POS (Standard forms)
• Karnaugh Maps (K-Maps)
– 2, 3, 4, and 5 variable maps
– Simplification using K-Maps
• K-Map Manipulation
– Implicants: Prime, Essential
– Don’t Cares
• More Logic Gates

2017.07.07 Boolean Algebra PJF - 2


External Representation of
Information
When we communicate with each other, we need to
represent the information in an understandable
notation, e.g.
We use digits to represent numbers.
We use letters to represent text.

Same applies when we communicate with a computer:


We enter text and numbers on the keyboard,
The computers displays text, images, and numbers on the
screen.

We refer to this as an external representation.


But how do humans/computers store the information
“internally”?
CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 3
Internal Representation of
Information
Humans:
Internal

Text, numbers, Text, numbers,


images, sounds sounds

Computers: ???

Text, numbers, Text, numbers,


images, sounds images, sounds

Binary Numbers
CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 4
What information do we
need to represent?
Numbers
Integers (234, 456)
Positive/negative value (-100, -23)
Floating point numbers ( 12.345,
3.14159)
Text
Characters (letters, digits, symbols)
Other
Graphics, Sound, Video, …
CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 5
Numbering Systems
We use the decimal numbering system
10 digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
For example: 12
Why use 10 digits (symbols)?
Roman: I (=1) V (=5) X (=10) L (=50),
C(=100)
XII = 12, Pentium III
What if we only had one symbol?
IIIII IIIII II = 12
What system do computers use?
CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 6
The Binary Numbering
System
All computers use the binary numbering
system
Only two digits: 0, 1
For example: 10, 10001, 10110
Similar to decimal, except uses a different base
Binary (base-2): 0, 1
Decimal (base-10): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Octal (base-8): 0, 1, 2, 3, 4, 5, 6, 7
Hexadecimal (base-16):
• 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F (A=10, ...,
F=15)

What do we mean by a base?


CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 7
Decimal vs. Binary
Numbers
What does the decimal value 163 stand for?

102 101 100


base
163 1 6 3
1x100 + 6x10 + 3x1

• What does the binary value 101 stand for?


22 21 20
101 1 0 1 base
1x4 + 0x2 + 1x1
CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 8
Binary-to-Decimal
Conversion Table
Decimal Binary Decimal Binary Decimal Binary Decimal Binary
0 0 8 1000 16 10000 24 11000
1 1 9 1001 17 10001 25 11001
2 10 10 1010 18 10010 26 11010
3 11 11 1011 19 10011 27 11011
4 100 12 1100 20 10100 28 11100
5 101 13 1101 21 10101 29 11101
6 110 14 1110 22 10110 30 11110
7 111 15 1111 23 10111 31 11111
CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 9
Converting from Binary to
Decimal
What is the decimal value of the binary value 101 ?

22 21 20
101 1 0 1
1x4 + 0x2 + 1x1
4 + 0 +1 =5

• What is the decimal value of the binary value 1110 ?


23 22 21 20
1110 1 1 1 0
1x8 + 1x4 + 1x2 + 0x1
8 + 4 + 2 +0 = 14
CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 10
Bits
The two binary digits 0 and 1 are
frequently referred to as bits.
How many bits does a computer use to
store an integer?
Intel Pentium PC = 32 bits
Alpha = 64 bits
What if we try to compute a larger
integer?
If we try to compute a value larger than the
computer can store, we get an arithmetic
overflow error.
CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 11
Representing Unsigned
Integers
How does a 16-bit computer represent the value
14?
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0

What is the largest 16-bit integer?


1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

= 1x215 + 1x214 + … + 1x21 + 1x20 = 65,535


CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 12
Representing Signed
Integers
How does a 16 bit computer represent the value
-14?
1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0
Sign bit. 0: + (positive), 1: - (negative)
What is the largest 16-bit signed integer?

0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

= 1x214 + 1x213 + … + 1x21 + 1x20 = 32,767


• Problem  the value 0 is represented twice!
– Most computers use a different representation, called two’s
complement.
CMPUT101 Introduction to
(c) Yngvi Bjornsson 13
Computing
Representing Floating
Point Numbers
• How do we represent floating point
numbers like 5.75 and -143.50?
• Three step process:
1. Convert the decimal number to a
binary number.
2. Write binary number in “normalized”
scientific notation.
3. Store the normalized binary number.
• Look at an example:
• How do we store the number 5.75?
CMPUT101 Introduction to
(c) Yngvi Bjornsson 14
Computing
1. Convert decimal to binary (5.75
= ?)

… 23 22 21 20 2-1 2-2 …
8 4 2 1 ½ ¼

4 + 1 + ½+ ¼ = 5.75
0 1 0 1 1 1

5.75 decimal  101.11 binary


CMPUT101 Introduction to
(c) Yngvi Bjornsson 15
Computing
2. Write using normalized scientific
notation
Scientific notation :  M x B E
• B is the base, M is the mantissa , E is the
exponent.
Example: (decimal, base=10)
• 3 = 3 x 100 (e.g. 3 * 1)
• 2050 = 2.05 x 103 (e.g. 2.05 * 1000)
Easy to convert to scientific notation:
101.11 x 20
Normalize to get the “.” in front of first
(leftmost) 1 digit
Increase exponent by one for each location
“.” moves left (decreases if we have to move left)
101.11 x 20 = .10111 x 23
CMPUT101 Introduction to
(c) Yngvi Bjornsson 16
Computing
3. Store the normalized number
Base 2 implied, not stored

+ .10111 x 2+3

0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1
Mantissa (10 bits) Exponent (6 bits)
Assumed binary point
CMPUT101 Introduction to
(c) Yngvi Bjornsson 17
Computing
Representing Text
How can we represent text in a binary form?
Assign to each character a positive integer value
(for example, A is 65, B is 66, …)
Then we can store the numbers in their binary form!
The mapping of text to numbers  Code
mapping
Need standard code mappings (why?):
ASCII (American Standard Code for Information
Interchange) => each letter 8-bits
• only 256 different characters can be represented (28)
Unicode => each letter 16-bits

CMPUT101 Introduction to
(c) Yngvi Bjornsson 18
Computing
ASCII Code mapping Table
Char Integer Binary Char Integer Binary

32 00100000 A 65 01000001

! 33 00100001 B 66 01000010

“ 34 00100010 C 67 01000011

… … … … … …

0 48 00110000 x 120 01111000

1 49 00110001 y 121 01111001

2 50 00110010 z 122 01111010

… … … … … …
CMPUT101 Introduction to
(c) Yngvi Bjornsson 19
Computing
Example of Representing
Text
Representing the word “Hello” in
ASCII
Look the value for each character up in the
table
(Convert
H decimal
e value
l to lbinary) o
72 101 108 108 111
01001000 01100101 01101100 01101100 01101111

CMPUT101 Introduction to
(c) Yngvi Bjornsson 20
Computing
Representing Other
Information
We need to represent other
information in a computer as well
Pictures ( BMP, JPEG, GIF, … )
Sound ( MP3, WAVE, MIDI, AU, … )
Video ( MPG, AVI, MP4, …)
Different formats, but all
represent the data in binary form!

CMPUT101 Introduction to
(c) Yngvi Bjornsson 21
Computing
Why do Computers Use
Binary Numbers?
Why not use the decimal systems,
like humans?
The main reason for using binary
numbers is:
Reliability
Why is that?
Electrical devices work best in a
bistable environment, that is, there are
only two separate states (e.g. on/off).
When using binary numbers, the
computers only need to represent two
digits: 0 and 1
CMPUT101 Introduction to
(c) Yngvi Bjornsson 22
Computing
Binary Logic
• Deals with binary variables that take
2 discrete values (0 and 1), and with
logic operations
• Three basic logic operations:
– AND, OR, NOT
• Binary/logic variables are typically
represented as letters: A,B,C,…,X,Y,Z

2017.07.07 Boolean Algebra PJF - 23


Binary Logic Function
F(vars) = expression
Operators ( +, •, ‘ )
Variables
set of binary
Constants ( 0, 1 )
variables
Groupings (parenthesis)

Example: F(a,b) = a’•b + b’


G(x,y,z) = x•(y+z’)
2017.07.07 Boolean Algebra PJF - 24
Basic Logic Operators
• AND
Binary
• OR
Unary
• NOT

• F(a,b) = a•b, F is 1 if and only if


a=b=1
• G(a,b) = a+b, G is 1 if either a=1 or
b=1
• H(a) = a’, H is 1 if a=0
2017.07.07 Boolean Algebra PJF - 25
Basic Logic Operators
(cont.)
• 1-bit logic AND resembles binary
multiplication:
0 • 0 = 0, 0 • 1 = 0,
1 • 0 = 0, 1 • 1 = 1
• 1-bit logic OR resembles binary
addition, except for one operation:
0 + 0 = 0, 0 + 1 = 1,
1 + 0 = 1, 1 + 1 = 1 (≠ 102)

2017.07.07 Boolean Algebra PJF - 26


Truth Tables for logic operators
Truth table: tabular form that uniguely represents
the relationship between the input variables of a
function and its output

2-Input AND 2-Input OR


A B F=A• A B F=A+
B B NOT
0 0 0 0 0 0 A F=
0 1 0 0 1 1
A’

1 0 0 1 0 1 0 1
1 1 1 1 1 1 1 0
2017.07.07 Boolean Algebra PJF - 27
Truth Tables (cont.)
• Q: Let a function F() depend on n
variables. How many rows are there
in the truth table of F() ?

n n
 A: 2 rows, since there are 2 possible
binary patterns/combinations for the
n variables

2017.07.07 Boolean Algebra PJF - 28


Logic Gates
• Logic gates are abstractions of electronic
circuit components that operate on one or
more input signals to produce an output
signal.
2-Input AND 2-Input OR NOT (Inverter)

A A
F G A H
B B

F = A•B G = A+B H = A’

2017.07.07 Boolean Algebra PJF - 29


Timing Diagram
t0 t1 t2 t3 t4 t5 t6
1
Input A 0
1 Transitions
signals B 0

1
F=A•B 0 Basic
Gate
Output 1 Assumption:
G=A+B 0 Zero time for
Signals
1 signals to
H=A’ 0 propagate
Through gates
2017.07.07 Boolean Algebra PJF - 30
Combinational Logic Circuit
from Logic Function
• Consider function F = A’ + B•C’ + A’•B’
• A combinational logic circuit can be constructed to
implement F, by appropriately connecting input signals and
logic gates:
– Circuit input signals  from function variables (A, B, C)
– Circuit output signal  function output (F)
– Logic gates  from logic operations
C

A F

2017.07.07 Boolean Algebra PJF - 31


Combinational Logic Circuit
from Logic Function (cont.)
• In order to design a cost-
A B C F G
effective and efficient circuit,
we must minimize the circuit’s 0 0 0 1 1
size (area) and propagation 0 0 1 1 1
delay (time required for an 0 1 0 1 1
0 1 1 1 1
input signal change to be
observed at the output line)
1 0 0 0 0
• Observe the truth table of
F=A’ + B•C’ + A’•B’ and 1 0 1 0 0
G=A’ + B•C’ 1 1 0 1 1
• Truth tables for F and G are 1 1 1 0 0
identical  same function
• Use G to implement the logic
circuit (less components)
2017.07.07 Boolean Algebra PJF - 32
Combinational Logic Circuit
from Logic Function (cont.)
C

A F

C
B
A G

2017.07.07 Boolean Algebra PJF - 33


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 +
2017.07.07 Boolean Algebra PJF - 34
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

2017.07.07 Boolean Algebra PJF - 35


Boolean Algebra Properties
(cont.)
Let X: boolean variable, 0,1: constants

5. X + X = X -- Idepotence
6. X • X = X -- Idepotence
7. X + X’ = 1 -- Complement
8. X • X’ = 0 -- Complement
9. (X’)’ = X -- Involution

2017.07.07 Boolean Algebra PJF - 36


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)

2017.07.07 Boolean Algebra PJF - 37


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)

2017.07.07 Boolean Algebra PJF - 38


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’

2017.07.07 Boolean Algebra PJF - 39


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?)

2017.07.07 Boolean Algebra PJF - 40


Power of Duality
1. x + x•y = x is true, so (x + x•y)’=x’
2. (x + x•y)’=x’•(x’+y’)
3. x’•(x’+y’) =x’
4. Let X=x’, Y=y’
5. X•(X+Y) =X, which is the dual of x + x•y
= x.
6. The above process can be applied to any
formula. So if a formula is valid, then its
dual must also be valid.
7. Proving one formula also proves its dual.
2017.07.07 Boolean Algebra PJF - 41
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).
2017.07.07 Boolean Algebra PJF - 42
Truth Tables (revisited)
• Enumerates all possible x y z F1 F2 F3
combinations of variable 0 0 0 0 1 1
0 0 1 0 0 1
values and the
corresponding function
value 0 1 0 0 0 1
• Truth tables for some 0 1 1 0 1 1
arbitrary functions 1 0 0 0 1 0
1 0 1 0 1 0
F1(x,y,z), F2(x,y,z), and

1 1 0 0 0 0
F3(x,y,z) are shown to the
right.
1 1 1 1 0 1
2017.07.07 Boolean Algebra PJF - 43
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.
2017.07.07 Boolean Algebra PJF - 44
Boolean expressions-NOT
unique
• Unlike truth tables, expressions x y z F G
representing a Boolean function
0 0 0 1 1
0 0 1 0 0
are NOT unique.
• Example:
– F(x,y,z) = x’•y’•z’ + x’•y•z’ + x•y•z’ 0 1 0 1 1
0 1 1 0 0
– G(x,y,z) = x’•y’•z’ + y•z’

1 0 0 0 0
• The corresponding truth tables for
F() and G() are to the right. They
are identical. 1 0 1 0 0
1 1 0 1 1
• Thus, F() = G()

2017.07.07 Boolean Algebra


1 1 1 0PJF - 450
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
2017.07.07 Boolean Algebra PJF - 46
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’
QED.

2017.07.07 Boolean Algebra PJF - 47


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.
• The complement of a function IS NOT
THE SAME as the dual of a function.
2017.07.07 Boolean Algebra PJF - 48
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
2017.07.07 Boolean Algebra PJF - 49
literals
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)
2017.07.07 Boolean Algebra PJF - 50
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

2017.07.07 Boolean Algebra PJF - 51


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
2017.07.07 Boolean Algebra PJF - 52
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’
2017.07.07 Boolean Algebra PJF - 53
Truth Table notation for
Minterms and Maxterms
• Minterms and x y z Minterm Maxterm
Maxterms are 0 0 0 x’y’z’ = x+y+z = M0
m0
easy to denote
0 0 1 x’y’z = m1 x+y+z’ = M1
using a 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
1 0 1 xy’z = m5 x’+y+z’ =
variables x,y,z M5
(order is fixed) 1 1 0 xyz’ = m6 x’+y’+z =
M6

1 1 1
2017.07.07 Boolean Algebra
xyz = m7 x’+y’+z’ =
PJF - 54
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)
2017.07.07 Boolean Algebra PJF - 55
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( ).

2017.07.07 Boolean Algebra PJF - 56


Example
• Truth table for f1(a,b,c) at right a b c f1
• The canonical sum-of-products
form for f1 is 0 0 0 0
f1(a,b,c) = m1 + m2 + m4 + m6 0 0 1 1
0 1 0 1
= a’b’c + a’bc’ + ab’c’ +
abc’
• The canonical product-of-sums 0 1 1 0
1 0 0 1
form for f1 is
f1(a,b,c) = M0 • M3 • M5 • M7
= (a+b+c)•(a+b’+c’)• 1 0 1 0
(a’+b+c’)•(a’+b’+c’). 1 1 0 1
1 1 1 PJF -0
• Observe that: mj = Mj’
2017.07.07 Boolean Algebra 57
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)

2017.07.07 Boolean Algebra PJF - 58


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 + m 4 + m 6
= ∑(1,2,4,6)
= ∏(0,3,5,7)
=
(a+b+c)•(a+b’+c’)•(a’+b+c’)•(a’+b’+c’)

2017.07.07 Boolean Algebra PJF - 59


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.
2017.07.07 Boolean Algebra PJF - 60
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’
2017.07.07 Boolean Algebra
= a’b’c + abc’ + a’bc + ab’c’PJF - 61
Conversion of POS from
standard to canonical form
• Expand noncanonical 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’)
2017.07.07 Boolean Algebra PJF - 62
Karnaugh Maps
• Karnaugh maps (K-maps) are
graphical representations of boolean
functions.
• 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.
2017.07.07 Boolean Algebra PJF - 63
Two-Variable Map
0 1
x2
0 1
x1
x1 x2
0 1 0 2
0 0
m0 m1
OR 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 1Boolean
2017.07.07
is placed
Algebra
in the PJF - 64
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)

2017.07.07 Boolean Algebra PJF - 65


2-Variable Map -- Example
• f(x1,x2) = x1’x2’+ x1’x2 +
x1x2’
= m0 + m 1 + m 2 x2
= x1’ + x2’
• 1s placed in K-map for x1 0 1
specified minterms m0, m1, 0 1
m2
• Grouping (ORing) of 1s
allows simplification
0
2
13 1
• What (simpler) function is
1 1 0
represented by each
dashed rectangle?
– x1’ = m0 + m1
– x2’ = m0 + m2
2017.07.07 Boolean Algebra PJF - 66
• Note m covered twice
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
2017.07.07 Boolean Algebra PJF - 67
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)
2017.07.07 Boolean Algebra PJF - 68
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
2017.07.07 Boolean Algebra PJF - 69
Simplification
• Enter minterms of the Boolean
function into the map, then group
terms
• Example: f(a,b,c) = a’c + abc + bc’
abc
• Result: f(a,b,c) = a’c+ b
1 1 1
1 1
1 1 1
1 1
2017.07.07 Boolean Algebra PJF - 70
More Examples
yz
X 00 01 11 10

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

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

2017.07.07 Boolean Algebra PJF - 71


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).

2017.07.07 Boolean Algebra PJF - 72


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.
2017.07.07 Boolean Algebra PJF - 73
Example
• Simplify the following Boolean function
(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
2017.07.07 Boolean Algebra PJF - 74
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 –. 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
2017.07.07 Boolean Algebra PJF - 75
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).

2017.07.07 Boolean Algebra PJF - 76


cd
ab 00 01 11 10
Example 00 0 1 0 1
01 1 1 0 1
• Simplify the function 11 0 0 x x
10 1 1 x x
f(a,b,c,d)
whose K-map is shown at 0 1 0 1
the right. 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
2017.07.07 Boolean Algebra PJF - 77
cd
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- 0 x x 0
map is shown at x 1 0 0
right. 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
2017.07.07 Boolean Algebra PJF - 78
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

2017.07.07 Boolean Algebra PJF - 79


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

2017.07.07 Boolean Algebra PJF - 80


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

• Additional logic gates are used for


practical reasons

2017.07.07 Boolean Algebra PJF - 81


BUFFER, NAND and NOR

2017.07.07 Boolean Algebra PJF - 82


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.

2017.07.07 Boolean Algebra PJF - 83


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

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

2017.07.07 Boolean Algebra PJF - 84


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

2017.07.07 Boolean Algebra PJF - 85


AND-OR (SOP) Emulation
Using NANDs

Two-level implementations

a) Original SOP
b) Implementation with NANDs

2017.07.07 Boolean Algebra PJF - 86


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

Verify:
(a) G = WXY + YZ

(b) G = ( (WXY)’ • (YZ)’ )’


= (WXY)’’ + (YZ)’’ = WXY + YZ

2017.07.07 Boolean Algebra PJF - 87


SOP with NAND

(a) Original SOP


(b) Double inversion and grouping
AND-NOT
(c) Replacement with NANDs NOT-OR
2017.07.07 Boolean Algebra PJF - 88
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.
2017.07.07 Boolean Algebra PJF - 89
Example (cont.)

Two-level implementation with NANDs


F = X’Y’Z’ + XYZ’
2017.07.07 Boolean Algebra PJF - 90
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.

2017.07.07 Boolean Algebra PJF - 91


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

2017.07.07 Boolean Algebra PJF - 92


Yet Another Example!

2017.07.07 Boolean Algebra PJF - 93


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.

2017.07.07 Boolean Algebra PJF - 94


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

2017.07.07 Boolean Algebra PJF - 95


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.
2017.07.07 Boolean Algebra PJF - 96
Example (cont.)

Two-level implementation with NORs


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

2017.07.07 Boolean Algebra PJF - 97


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

X Y F = X Y
XNOR: “equal” gate
0 0 1

X F 0 1 0
1 0 0
Y
1 1 1
2017.07.07 Boolean Algebra PJF - 98
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)

2017.07.07 Boolean Algebra PJF - 99


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

2017.07.07 Boolean Algebra PJF - 100


XOR circuit with 4 NANDs

2017.07.07 Boolean Algebra PJF - 101

You might also like