Digital Logic Design
Professor Samia A. Ali
Text Book
Digital Design
Fourth Edition
By:
M. Morris Mano and
Michael D. Ciletti
Grading Information
Grading
Midterm Exam 25
Weekly Quizzes 10
Attendance 5
Participation in Sections 5
Project 5
Final Exam 100
Policies
Lectures and sections Attendance is required
All submitted work must be yours
Cheating will not be tolerated
Course Content
Digital Systems and Information
Combinational Logic Circuits
Combinational Logic Design
Arithmetic Functions
Midterm Exam
Sequential Circuits
Selected Design Topics
Registers and Register Transfers
Memory Basics
Final Exam
Chapter 1
Digital Systems and Binary Numbers
Outline of Chapter 1
1.1 Digital Systems
1.2 Binary Numbers
1.3 Number-base Conversions
1.4 Octal and Hexadecimal Numbers
1.5 Complements
1.6 Signed Binary Numbers
1.7 Binary Codes
1.8 Binary Storage and Registers
1.9 Binary Logic
Digital Systems and Binary Numbers
Digital age and information age
Digital computers
General purposes
Many scientific, industrial and commercial applications
Digital systems
Telephone switching exchanges
Digital camera
Electronic calculators, PDA's
Digital TV
Discrete information-processing systems
Manipulate discrete elements of information
For example, {1, 2, 3, …} and {A, B, C, …}…
1-1 INFORMATION REPRESENTATION in
Digital Systems- Signals
Information variables represented by physical
quantities.
For digital systems, the variables take on
discrete values.
Two levels or binary values are the most
prevalent values in digital systems.
Binary values are represented abstractly by:
digits 0 and 1
words (symbols) False (F) and True (T)
words (symbols) Low (L) and High (H)
and words Off and On.
Signal Examples Over Time
Time
Continuous
Analog in value &
time
Digital
Discrete in
Asynchronous value &
continuous
in time
Synchronous Discrete in
with the clock value & time
Advantage of Digital Circuit
Immunity to noise
Illustration:
Noise added
Sender Receiver
Signal Signal
Immunity to noise: Noise Margin
VOH
NMH
VIH
Forbidden
VIL
NML
VOL
Threshold
Region
We cannot violate the Noise Margins, otherwise our digital assumption is not
valid: thus Vo must be > VOH or < VOL.
Binary Values: Other Physical
Quantities
What are other physical quantities represent 0 and 1?
Logic Gates, CPU: Voltage
Disk
Magnetic Field Direction
CD Surface Pits/Light
Dynamic RAM
Electrical Charge
Analog and Digital Signal
Analog system
The physical quantities or signals may vary continuously over a specified
range.
Digital system
The physical quantities or signals can assume only discrete values.
Greater accuracy
X(t) X(t)
t t
Analog signal Digital signal
Binary Digital Signal
An information variable represented by physical quantity.
For digital systems, the variable takes on discrete values.
Two levels, or binary values are the most prevalent values.
Binary values are represented abstractly by:
Digits 0 and 1
Words (symbols) False (F) and True (T) V(t)
Words (symbols) Low (L) and High (H)
And words On and Off
Logic 1
Binary values are represented by values
or ranges of values of physical quantities. undefine
Logic 0
t
Binary digital signal
Positional-Value System
The value of a digit (“digit” from Latin word for finger)
depends on its position
Positional values 2 1 0 -1 -2 -3
(weights) 10 10 10 10 10 10
5 6 7 . 9 1 4
MSD Decimal LSD
point
We will write ( 5 6 7. 9 1 4)
Binary:
Base-2 Number System
5 4 3 2 1 0 -1 -2 -3
2 2 2 2 2 2 2 2 2
1 0 1 1 1 1 . 0 0 1
base or radix point
We write: ( 1 0 1 1 1 1 . 0 0 1 )2
Digits in Binary System are called bits
Number Systems
To talk about binary data, we must first talk about
number systems
The decimal number system (base 10) you should
be familiar with!
A digit in base 10 ranges from 0 to 9.
A digit in base 2 ranges from 0 to 1 (binary number
system). A digit in base 2 is also called a ‘bit’.
A digit in base R can range from 0 to R-1
A digit in Base 16 can range from 0 to 16-1
(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F). Use letters A-F to
represent values 10 to 15. Base 16 is also called
Hexadecimal or just ‘Hex’.
Positional Number Systems
The traditional number
system is called a positional
number system.
A number is represented as
a string of digits. 6354 = 6 *1000 + 3 *100 + 5 *10 + 4
Each digit position has a
weight assoc. with it. p −1
Number’s value = a D = ∑ di 10 i
weighted sum of the digits i =0
Positional Notation – more examples
Value of number is determined by multiplying each digit by
a weight and then summing. The weight of each digit is a
POWER of the BASE and is determined by position.
953.78 = 9 x 102 + 5 x 101 + 3 x 100 + 7 x 10-1 + 8 x 10-2
= 900 + 50 + 3 + .7 + .08 = 953.78 decimal
(1011.11)2 = 1x23 + 0x22 + 1x21 + 1x20 + 1x2-1 + 1x2-2
= 8 + 0 + 2 + 1 + 0.5 + 0.25
= 11.75
binary
0xA2F = 10x162 + 2x161 + 15x160
= 10 x 256 + 2 x 16 + 15 x 1
= 2560 + 32 + 15 = 2607
hex
2-3 = 0.125 Common Powers
2-2 = 0.25
2-1 = 0.5 16 0 = 1 = 20
20 = 1 16 1 = 16 = 24
21 = 2 16 2 = 256 = 28
22 = 4 16 3 = 4096 = 212
23 = 8
24 = 16
25 =32
26 = 64
27 = 128 10 = 1024 = 1 K
2
28 = 256 20 = 1048576 = 1 M (1 Megabits) = 1024 K = 210 x 210
2
29 = 512 30 = 1073741824 = 1 G (1 Gigabits)
2
210 = 1024
211 = 2048
212 = 4096
Decimal Number System
Base (also called radix) = 10
10 digits { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
Digit Position
Integer & fraction 2 1 0 -1 -2
Digit Weight 5 1 2 7 4
Weight = (Base) Position
Magnitude 100 10 1 0.1 0.01
Sum of “Digit x Weight”
Formal Notation
500 10 2 0.7 0.04
d2*B2+d1*B1+d0*B0+d-1*B-1+d-2*B-2
(512.74)10
Binary Number System
Base = 2
2 digits { 0, 1 }, called binary digits or “bits”
Weights
4 2 1 1/2 1/4
Weight = (Base) Position
Magnitude 1 0 1 0 1
Sum of “Bit x Weight” 2 1 0 -1 -2
Formal Notation 1 *22+0 *21+1 *20+0 *2-1+1 *2-2
Groups of bits 4 bits = Nibble
=(5.25)10
8 bits = Byte
(101.01)2
1011
11000101
Decimal-to-Binary Conversion
Method 1: Sum-of-Weights Method
Method 2:
Repeated Division-by-2 Method (for whole numbers)
Repeated Multiplication-by-2 Method (for fractions)
Sum-of-Weights Method
Algorithm – Decimal to Binary
1. Find largest power-of-two smaller than
decimal number
2. Make the appropriate binary digit a ‘1’
3. Subtract the “power of 2” from decimal
4. Do the same thing again
24
Sum-of-Weights Method
Determine the set of binary weights whose sum is equal to
the decimal number.
(9)10 = 8 + 1 = 23 + 20 = (1001)2
(18)10 = 16 + 2 = 24 + 21 = (10010)2
(58)10 = 32 + 16 + 8 + 2 = 25 + 24 + 23 + 21 = (111010)2
(0.625)10 = 0.5 + 0.125 = 2-1 + 2-3 = (0.101)2
Repeated Division-by-2 Method
To convert a whole number to binary, use successive
division by 2 until the quotient is 0. The remainders form
the answer, with the first remainder as the least significant
bit (LSB) and the last as the most significant bit (MSB).
(43)10 = (101011)2
2 43
2 21 rem 1 LSB
2 10 rem 1
2 5 rem 0
2 2 rem 1
2 1 rem 0
0 rem 1 MSB
Repeated Multiplication-by-2 Method
To convert decimal fractions to binary, repeated
multiplication by 2 is used, until the fractional product is 0
(or until the desired number of decimal places). The
carried digits, or carries, produce the answer, with the first
carry as the MSB, and the last as the LSB.
(0.3125)10 = (.0101)2
Carry
0.3125×2=0.625 0 MSB
0.625×2=1.25 1
0.25×2=0.50 0
0.5×2=1.00 1 LSB
Decimal (Integer) to Binary Conversion
Divide the number by the ‘Base’ (=2)
Take the remainder (either 0 or 1) as a coefficient
Take the quotient and repeat the division
Example: (13)10
Quotient Remainder Coefficient
13/ 2 = 6 1 a0 = 1
6 /2= 3 0 a1 = 0
3 /2= 1 1 a2 = 1
1 /2= 0 1 a3 = 1
Answer: (13)10 = (a3 a2 a1 a0)2 = (1101)2
MSB LSB
Decimal (Fraction) to Binary Conversion
Multiply the number by the ‘Base’ (=2)
Take the integer (either 0 or 1) as a coefficient
Take the resultant fraction and repeat the division
Example: (0.625)10
Integer Fraction Coefficient
0.625 * 2 = 1 . 25 a-1 = 1
0.25 * 2 = 0 . 5 a-2 = 0
0.5 *2= 1 . 0 a-3 = 1
Answer: (0.625)10 = (0.a-1 a-2 a-3)2 = (0.101)2
MSB LSB
Octal Number System
Base = 8
8 digits { 0, 1, 2, 3, 4, 5, 6, 7 }
Weights
Weight = (Base) Position 64 8 1 1/8 1/64
Magnitude 5 1 2 7 4
Sum of “Digit x Weight”
2 1 0 -1 -2
Formal Notation
5 *82+1 *81+2 *80+7 *8-1+4 *8-2
=(330.9375)10
(512.74)8
Decimal to Octal Conversion
Example: (175)10
Quotient Remainder Coefficient
175 / 8 = 21 7 a0 = 7
21 / 8 = 2 5 a1 = 5
2 /8= 0 2 a2 = 2
Answer: (175)10 = (a2 a1 a0)8 = (257)8
Example: (0.3125)10
Integer Fraction Coefficient
0.3125 * 8 = 2 . 5 a-1 = 2
0.5 *8= 4 . 0 a-2 = 4
Answer: (0.3125)10 = (0.a-1 a-2 a-3)8 = (0.24)8
Hexadecimal Number System
Base = 16
16 digits { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }
Weights
Weight = (Base) Position 256 16 1 1/16 1/256
Magnitude 1 E 5 7 A
Sum of “Digit x Weight”
2 1 0 -1 -2
Formal Notation
1 *162+14 *161+5 *160+7 *16-1+10 *16-2
=(485.4765625)10
(1E5.7A)16
The Power of 2
n 2n n 2n
0 20=1 8 28=256
1 21=2 9 29=512
2 22=4 10 210=1024 Kilo
3 23=8 11 211=2048
4 24=16 12 212=4096
5 25=32 20 220=1M Mega
6 26=64 30 230=1G Giga
7 27=128 40 240=1T Tera
Conversion between Decimal and
other Bases
Base-R to decimal: multiply digits with their corresponding
weights.
Decimal to binary (base 2)
whole numbers: repeated division-by-2
fractions: repeated multiplication-by-2
Decimal to base-R
whole numbers: repeated division-by-R
fractions: repeated multiplication-by-R
Conversion between Bases
In general, conversion between bases can be done via
decimal:
Base-2 Base-2
Base-3 Base-3
Base-4 Decimal Base-4
… ….
Base-R Base-R
Shortcuts for conversion between bases 2, 4, 8, 16.
Binary-Octal/Hexadecimal
Conversion
Binary → Octal: Partition in groups of 3
(10 111 011 001 . 101 110)2 = (2731.56)8
Octal → Binary: reverse
(2731.56)8 = (10 111 011 001 . 101 110)2
Binary → Hexadecimal: Partition in groups of 4
(101 1101 1001 . 1011 1000)2 = (5D9.B8)16
Hexadecimal → Binary: reverse
(5D9.B8)16 = (101 1101 1001 . 1011 1000)2
Binary − Octal Conversion
Octal Binary
8 = 23
Each group of 3 bits represents an octal 0 000
digit 1 001
2 010
Assume Zeros
Example: 3 011
( 1 0 1 1 0 . 0 1 )2 4 100
5 101
6 110
( 2 6 . 2 )8 7 111
Works both ways (Binary to Octal & Octal to Binary)
Binary − Hexadecimal Conversion
Hex Binary
16 = 24 0 0000
1 0001
Each group of 4 bits represents a 2 0010
hexadecimal digit 3 0011
4 0100
5 0101
Assume Zeros 6 0110
Example: 7 0111
8 1000
( 1 0 1 1 0 . 0 1 )2 9 1001
A 1010
B 1011
C 1100
D 1101
(1 6 . 4 )16 E 1110
F 1111
Works both ways (Binary to Hex & Hex to Binary)
Octal − Hexadecimal Conversion
Convert to Binary as an intermediate step
Example:
( 2 6 . 2 )8
Assume Zeros Assume Zeros
( 0 1 0 1 1 0 . 0 1 0 )2
(1 6 . 4 )16
Works both ways (Octal to Hex & Hex to Octal)
Decimal, Binary, Octal and Hexadecimal
Decimal Binary Octal Hex
00 0000 00 0
01 0001 01 1
02 0010 02 2
03 0011 03 3
04 0100 04 4
05 0101 05 5
06 0110 06 6
07 0111 07 7
08 1000 10 8
09 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
Arithmetic Operations
Addition
Decimal Addition
1 1 Carry
5 5
+ 5 5
1 1 0
= Ten ≥ Base
Subtract a Base
Binary Addition
Column Addition
1 1 1 1 1 1
1 1 1 1 0 1 = 61
+ 1 0 1 1 1 = 23
1 0 1 0 1 0 0 = 84
≥ (2)10
Binary Subtraction
Borrow a “Base” when needed
1 2 = (10)2
0 2 2 0 0 2
1 0 0 1 1 0 1 = 77
− 1 0 1 1 1 = 23
0 1 1 0 1 1 0 = 54
Binary Multiplication
Bit by bit
1 0 1 1 1
x 1 0 1 0
0 0 0 0 0
1 0 1 1 1
0 0 0 0 0
1 0 1 1 1
1 1 1 0 0 1 1 0
Binary Division
Binary division is also performed in the same way as we perform
decimal division. Like decimal division, we also need to follow the
binary subtraction rules while performing the binary division. The
dividend involved in binary division should be greater than the
divisor. The following are the two important points, which need to be
remembered while performing the binary division.
• If the remainder obtained by the division process is greater than or
equal to the divisor, put 1 in the quotient and perform the binary
subtraction.
• If the remainder obtained by the division process is less than the
divisor, put 0 in the quotient and append the next most significant
digit from the dividend to the remainder.
Long Division
Range of numbers
Binary number: ex. a 3-bit number: n=3
000, 001 … ,111 or in decimal system: 0, 1 … 7
» Total of 8 numbers (=23)
» Range: from 0 to 7 (0 to 23-1)
In general a n-bit number represents:
» 2n different numbers
» Min: 0
» Max number: 2n-1
For fractions: m bits after the radix point:
Min: 0
Max number: (2m -1)/2m
1.5 Complements
There are two types of complements for each base-r system: the radix complement and
diminished radix complement.
Diminished Radix Complement - (r-1)’s Complement
Given a number N in base r having n digits, the (r–1)’s complement of N is
defined as:
(rn –1) – N
Example for 6-digit decimal numbers:
9’s complement is (rn – 1)–N = (106–1)–N = 999999–N
9’s complement of 546700 is 999999–546700 = 453299
Example for 7-digit binary numbers:
1’s complement is (rn – 1) – N = (27–1)–N = 1111111–N
1’s complement of 1011000 is 1111111–1011000 = 0100111
Observation:
Subtraction from (rn – 1) will never require a borrow
Diminished radix complement can be computed digit-by-digit
For binary: 1 – 0 = 1 and 1 – 1 = 0
Complements
1’s Complement (Diminished Radix Complement)
All ‘0’s become ‘1’s
All ‘1’s become ‘0’s
Example (10110000)2
(01001111)2
If you add a number and its 1’s complement …
10110000
+ 01001111
11111111
Complements
Radix Complement
The r's complement of an n-digit number N in base r is defined as
rn – N for N ≠ 0 and as 0 for N = 0. Comparing with the (r − 1) 's
complement, we note that the r's complement is obtained by adding 1
to the (r − 1) 's complement, since rn – N = [(rn − 1) – N] + 1.
Example: Base-10
The 10's complement of 012398 is 987602
The 10's complement of 246700 is 753300
Example: Base-2
The 2's complement of 1101100 is 0010100
The 2's complement of 0110111 is 1001001
Complements
2’s Complement (Radix Complement)
Take 1’s complement then add 1
OR Toggle all bits to the left of the first ‘1’ from the right
Example:
Number:
1’s Comp.:
10110000 10110000
01001111
+ 1
01010000 01010000
Complements
Subtraction with Complements
The subtraction of two n-digit unsigned numbers M – N in base r can be
done as follows:
Complements
Example 1.5
Using 10's complement, subtract 72532 – 3250.
Example 1.6
Using 10's complement, subtract 3250 – 72532.
There is no end carry.
Therefore, the answer is – (10's complement of 30718) = − 69282.
Complements
Example 1.7
Given the two binary numbers X = 1010100 and Y = 1000011, perform the
subtraction (a) X – Y ; and (b) Y − X, by using 2's complement.
There is no end carry.
Therefore, the answer is
Y – X = − (2's complement
of 1101111) = − 0010001.
Complements
Subtraction of unsigned numbers can also be done by means of the (r − 1)'s
complement. Remember that the (r − 1) 's complement is one less then the r's
complement.
Example 1.8
Repeat Example 1.7, but this time using 1's complement.
There is no end carry,
Therefore, the answer is Y –
X = − (1's complement of
1101110) = − 0010001.
1.6 Signed Binary Numbers
To represent negative integers, we need a notation for negative
values.
It is customary to represent the sign with a bit placed in the
leftmost position of the number since binary digits.
The convention is to make the sign bit 0 for positive and 1 for
negative.
Example:
Table 1.3 lists all possible four-bit signed binary numbers in the
three representations.
Signed Binary Numbers
Signed Binary Numbers
Arithmetic addition
The addition of two numbers in the signed-magnitude system follows the rules of
ordinary arithmetic. If the signs are the same, we add the two magnitudes and
give the sum the common sign. If the signs are different, we subtract the
smaller magnitude from the larger and give the difference the sign of the
larger magnitude.
The addition of two signed binary numbers with negative numbers represented in
signed-2's-complement form is obtained from the addition of the two numbers,
including their sign bits.
A carry out of the sign-bit position is discarded.
Example:
Signed Binary Numbers
Arithmetic Subtraction
In 2’s-complement form:
1. Take the 2’s complement of the subtrahend (including the sign bit)
and add it to the minuend (including sign bit).
2. A carry out of sign-bit position is discarded.
( ± A) − ( + B ) =±
( A) + ( − B )
( ± A) − ( − B ) =±
( A) + ( + B )
Example:
(− 6) − (− 13) (11111010 − 11110011)
(11111010 + 00001101)
00000111 (+ 7)
Binary Codes
A n-bit binary code is a n-bit word which can
represent up to 2n different elements.
Example: 3-bit code can represent up to 8
different elements”
1.7 Binary Codes
Example: A
binary code Color Binary Number
Red 000
for the seven Orange 001
colors of the Yellow 010
rainbow Green 011
Code 100 is Blue 101
not used Indigo 110
Violet 111
Given n binary digits (called bits), a binary
code is a mapping from a set of represented
elements to a subset of the 2n binary
numbers or elements.
Binary Coded Decimal (BCD)
The BCD code is the 8,4,2,1 code.
This code only encodes the first ten
values from 0 to 9.
Each decimal digit is coded separately by
4 bits
Example:
(325)10 = (0011 0010 0101)BCD
3 2 5
Exercise: (856)10 = ( )BCD
Binary Codes
BCD Code
A number with k decimal digits will
require 4k bits in BCD.
Decimal 396 is represented in BCD
with 12bits as 0011 1001 0110, with
each group of 4 bits representing one
decimal digit.
A decimal number in BCD is the
same as its equivalent binary number
only when the number is between 0
and 9.
The binary combinations 1010
through 1111 are not used and have
no meaning in BCD.
Binary Code
Example:
Consider decimal 185 and its corresponding value in BCD and binary:
BCD addition
Binary Code
Example:
Consider the addition of 184 + 576 = 760 in BCD:
Decimal Arithmetic: (+375) + (-240) = +135
Hint : using 10’s of BCD
Binary Codes
Other Decimal Codes
Binary Codes
Gray Code
The advantage is that only one bit
in the code group changes in going
from one number to the next.
» Error detection.
» Representation of analog data.
» Low power design.
000 001
010 011
100 101
110 111
1-1 and onto!!
ALPHANUMERIC CODES - ASCII Character Codes
American Standard Code for Information
Interchange
This code is a popular code used to
represent information sent as character-
based data. It uses 7-bits to represent:
94 Graphic printing characters.
34 Non-printing characters
Some non-printing characters are used for
text format (e.g. BS = Backspace, CR =
carriage return, STX and ETX start and end
text areas).
ASCII Code: B7B6B5 B4B3B2B1 H=(1001000)
Binary Codes
ASCII Character Code
ASCII Properties
ASCII has some interesting properties:
Digits 0 to 9 span Hexadecimal values 3016 to 3916
Upper case A-Z span 4116 to 5A16
Lower case a-z span 6116 to 7A16
» Lower to upper case translation (and vice versa)
occurs by flipping the 6th bit.
Binary Codes
Error-Detecting Code
To detect errors in data communication and processing, an eighth bit is
sometimes added to the ASCII character to indicate its parity.
A parity bit is an extra bit included with a message to make the total
number of 1's either even or odd.
Example:
Consider the following two characters and their even and odd parity:
PARITY BIT Error-Detection Codes
Redundancy (e.g. extra information), in the form of
extra bits, can be incorporated into binary code words
to detect and correct errors.
A simple form of redundancy is parity, an extra bit
appended onto the code word in the most significant
position to make the number of 1’s odd or even.
Parity can detect all single-bit errors and some
multiple-bit errors.
A code word has even parity if the
number of 1’s in the code word is 7
even. TX RX
A code word has odd parity if the Parity bit
number of 1’s in the code word is
odd.
1.8 Binary Storage and Registers
Registers
A binary cell is a device that possesses two stable states and is capable of
storing one of the two states.
A register is a group of binary cells. A register with n cells can store any
discrete quantity of information that contains n bits.
n cells 2n possible states
A binary cell
Two stable state
Store one bit of information
Examples: flip-flop circuits, ferrite cores, and capacitor.
Register Transfer
A transfer of the information stored in one register to another.
One of the major operations in digital system.
1.9 Binary Logic
Definition of Binary Logic
Binary logic consists of binary variables and a set of logical operations.
The variables are designated by letters of the alphabet, such as A, B, C, x, y, z,
etc, with each variable having two and only two distinct possible values: 1 and 0,
Three basic logical operations: AND, OR, and NOT.
Binary Logic
Truth Tables, Boolean Expressions, and Logic Gates
AND OR NOT
x y z x y z x z
0 0 0 0 0 0 0 1
0 1 0 0 1 1 1 0
1 0 0 1 0 1
1 1 1 1 1 1
z=x•y=xy z=x+y z = x = x’
x x x
y z y z z
Switching Circuits
Switching Circuits
AND OR
Binary Logic
Logic gates
Example of binary signals
3
Logic 1
2
Un-define
1
Logic 0
0
Figure 1.3 Example of binary signals
Binary Logic
Logic gates
Graphic Symbols and Input-Output Signals for Logic gates:
Fig. 1.4 Symbols for digital logic circuits
Fig. 1.5 Input-Output signals for gates
Binary Logic
Logic gates
Graphic Symbols and Input-Output Signals for Logic gates:
Fig. 1.6 Gates with multiple inputs