Digital Logic Design
Introduction
Systems
The essential requirements of a system
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.
Digital System
Takes a set of discrete information inputs and discrete internal information
(system state) and generates a set of discrete information outputs.
Discrete
Digital systems: discrete inputs,
Information process and output
Discrete Discrete
Inputs Processing Outputs Telephone switching exchanges
System Digital camera
Digital TV
Discrete information-processing
System State systems
Manipulate discrete elements of
information
For example, {1, 2, 3, …} and {A,
B, C, …}…
Binary Digital Signal
Signal is an information variable represented by physical quantity.
For digital systems, the variable takes on discrete values.
Two level, 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) ()
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. unacceptable
Logic 0
Binary digital signal
Digital Logic Design
Chapter 1
Binary Numbers and Logic Gates
Number system
Decimal (base 10)
Weights in powers of 10
Decimal digits: 0, 1,….9
Octal (base 8)
Weights in powers of 8
Octal digits: 0, 1, 2, 3, 4, 5, 6, 7.
Hexadecimal (base 16)
Weights in powers of 16
Hexadecimal digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Binary (base 2)
Weights in powers of 2
Binary digits (bits): 0, 1
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 = (
Magnitude 100 10 1 0.1 0.01
Sum of “ x ”
5 1 2 7 4
Formal Notation
500 10 2 0.7 0.04
2 1 0 -1 -2
d2*B +d1*B +d0*B +d-1*B +d-2*B
(512.74)10
Octal Number System
Base = 8 2 1 0 -1 -2
8 digits { 0, 1, 2, 3, 4, 5, 6, 7 }
5 1 2 7 4
Weights
Weight = ( 64 8 1 1/8 1/64
Magnitude 5 1 2 7 4
Sum of “ x ”
2 1 0 -1 -2
Formal Notation 2 1
5*8 +1 *8 +2 *8 +7 *8 +4 *8
0 -1 -2
=(330.9375)10
(512.74)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 = ( 256 16 1 1/16 1/256
Magnitude 1 E 5 7 A
Sum of “ x ”
2 1 0 -1 -2
Formal Notation 2 1 0 -1 -2
1 *16 +14 *16 +5 *16 +7 *16 +10 *16
=(485.4765625)10
(1E5.7A)16
Binary Number System
Base = 2
2 digits { 0, 1 }, called inary dig or “ ”
Weights
Weight = ( 4 2 1 1/2 1/4
Magnitude 1 0 1 0 1
Sum of “ x ” 2 1 0 -1 -2
Formal Notation 2 1 0
1*2 +0 *2 +1 *2 +0 *2 +1 *2
-1 -2
Groups of bits
=(5.25)10
(101.01)2
1011
11000101
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
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
Try this
1 1 0 0 1 1 0 1 0
− 1 1 1 1 0 0
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
Number Base Conversions
Evaluate
Magnitude
Octal
(Base 8)
Evaluate
Magnitude
Decimal Binary
(Base 10) (Base 2)
Hexadecimal
(Base 16)
Evaluate
Magnitude
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 multiplication
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
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
Try this : convert it to octal (575.6125)10
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
Complements
Complements are used in the digital computers in
order to simplify the subtraction operation and for the
logical manipulations.
Unsigned numbers: only non-negative values.
Signed numbers: include all values (positive and
negative)
There are 3 common representations for signed
binary numbers:
1s Complement
2s Complement
Sign-and-Magnitude
Complements
There are two types of complements for each base- system: the radix
complement and diminished radix complement.
Diminished Radix Complement - (r-1)’s Complement
Given a number in base having digits, the ( – )‟s
complement is defined as:
– –
Example for 6-digit decimal numbers:
9‟s complement is – – = (106–1)– = 999999–
9‟s complement of 546700 is 999999–546700 = 453299
Example for 6-digit binary numbers:
1‟s complement is – – = (26–1)– = 111111–
1‟s complement of 101100 is 111111–101100 = 010011
Complements
1‟s Complement ( 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 's complement of an -digit number in base is defined as
– for ≠ 0 and as 0 for = 0. Comparing with the ( 1) 's
complement, we note that the 's complement is obtained by adding 1
to the ( 1) 's complement, since – = [( 1) – ] + 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 ( Complement)
Take 1‟s complement then add 1
:
Number:
1‟s Comp.:
10110000
01001111
+ 1
01010000
Complements
Subtraction with Complements
The subtraction of two -digit unsigned numbers – in base
can be done as follows:
Complements
Example
Using 10's complement, subtract 72532 – 3250.
Example
Using 10's complement, subtract 3250 – 72532.
There is no end carry.
Therefore, the answer is – (10's complement of 30718) = 69282.
Complements
Example
Given the two binary numbers = 1010100 and = 1000011,
perform the subtraction (a) – ; and (b) , 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 ( 1)'s
complement. Remember that the ( 1) 's complement is one less then the 's
complement.
Example
Repeat the above Example, but this time using 1's complement.
There is no end carry,
Therefore, the answer is Y –
X = (1's complement of
1101110) = 0010001.
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 in binary digits.
The convention is to make the sign bit 0 for positive and 1 for negative.
Example:
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 if 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.
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
Example:
( 6) ( 13) (11111010 11110011)
(11111010 + 00001101)
00000111 (+ 7)
Binary codes
If we want to represent a denary/Decimal number in a
binary form, we have more ways than the obvious choice of a
straight conversion.
There are a dozen or more ways of representing a denary
number, each with their own advantages and disadvantages.
If the input to a circuit gives rise to a binary code at the
output, we have what we call a or
BCD.
Binary Coded Decimal
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.
Implementation of Inverter (NOT) gate
Implementation of AND gate
Implementation of OR gate
NAND Gate
NAND
A B C
A 0 0 1
0 1 1
Z
1 0 1
B 1 1 0
C = ~(A & B)
nand(C,A,B)
NAND Gate
NOT-AND
A B D C
A 0 0 0 1
D 0 1 0 1
C
1 0 0 1
B 1 1 1 0
D = A & B
C = ~D = ~(A & B)
NOR Gate
NOR
A B C
A 0 0 1
C 0 1 0
B 1 0 0
1 1 0
C = ~(A | B)
nor(C,A,B)
NOR Gate
NOT-OR
A B D C
A 0 0 0 1
D C 0 1 1 0
B 1 0 1 0
1 1 1 0
D = A | B
C = ~D = ~(A | B)
NAND Gate
A C A C
=
B B
C = ~(A & B) Z = ~A | ~B
A B D C A B ~A ~B C
0 0 0 1 0 0 1 1 1
0 1 0 1 0 1 1 0 1
1 0 0 1 1 0 0 1 1
1 1 1 0 1 1 0 0 0
-1
~(A & B) = ~A | ~B
•
•
•
NOR Gate
A A
C C
B B
C = ~(A | B) C = ~A & ~B
A B C A B ~A ~B C
0 0 1 0 0 1 1 1
0 1 0 0 1 1 0 0
1 0 0 1 0 0 1 0
1 1 0 1 1 0 0 0
-2
~(A | B) = ~A & ~B
•
•
•
Implementation of NAND gate
Implementation of NOR gate
Exclusive-OR Gate
XOR A B C
A
C 0 0 0
B
0 1 1
C = A ^ B 1 0 1
xor(C,A,B)
1 1 0
Exclusive-NOR Gate
XNOR A B C
A
C 0 0 1
B
0 1 0
C = ~(A ^ B)
C = A ~^ B 1 0 0
xnor(C,A,B) 1 1 1
Multiple-input Gates
C1 C2
C3 C4