Dr. Mahmoud Abo_elfetouh LOGIC DESIGN
Jan 28, 2015
Dr. Mahmoud Abo_elfetouh
LOGIC DESIGN
• This course provides you with a basic understanding of what digital devices are, how they operate, and how they can be designed to perform useful functions.
• The course is intended to give you an understanding of Binary systems, Boolean algebra, digital design techniques, logic gates, logic minimization, standard combinational circuits, sequential circuits, flip-flops, synthesis of synchronous sequential circuits, and arithmetic circuits.
Course objectives
Contents
Total Practical Lecture Topic Week No.
5 2 3 Number Systems and Codes 1
5 2 3Number Systems and Codes 2
5 2 3Boolean Algebra and Logic Simplification
3
5 2 3Minimization Techniques-Karnaugh Map
4
5 2 3Minimization Techniques-Karnaugh Map
5
5 2 3 Logic Gates 6
5 2 3 Arithmetic Circuits-Adders7
Mid- Term Exam 8
ContentsTotal Practical Lecture Topic Week No.
5 2 3Arithmetic Circuits -Subtracter
9
5 2 3Combinational Circuits 10
5 2 3 Combinational Circuits 11
5 2 3 Flip-Flops 12
5 2 3Flip-Flops
13
5 2 3 Counters - Registers 14
5 2 3 Memory Devices 15
Final- Term Exam 16
Textbook
Logic and Computer Design Fundamentals, 4th Edition by M. Morris Mano and Charles R. Kime, Prentice Hall, 2008
Chapter 1
Number Systems
ITEC 1011 Introduction to Information Technologies
1. Number Systems
Chapt. 1
Location in course textbook
ITEC 1011 Introduction to Information Technologies
Common Number Systems
System Base SymbolsUsed by humans?
Used in computers?
Decimal 10 0, 1, … 9 Yes No
Binary 2 0, 1 No Yes
Octal 8 0, 1, … 7 No No
Hexa-decimal
16 0, 1, … 9,A, B, … F
No No
ITEC 1011 Introduction to Information Technologies
Quantities/Counting (1 of 3)
Decimal Binary OctalHexa-
decimal
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7p. 33
ITEC 1011 Introduction to Information Technologies
Quantities/Counting (2 of 3)
Decimal Binary OctalHexa-
decimal
8 1000 10 8
9 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
ITEC 1011 Introduction to Information Technologies
Quantities/Counting (3 of 3)
Decimal Binary OctalHexa-
decimal
16 10000 20 10
17 10001 21 11
18 10010 22 12
19 10011 23 13
20 10100 24 14
21 10101 25 15
22 10110 26 16
23 10111 27 17 Etc.
ITEC 1011 Introduction to Information Technologies
Conversion Among Bases
• The possibilities:
Hexadecimal
Decimal Octal
Binary
pp. 40-46
ITEC 1011 Introduction to Information Technologies
Quick Example
2510 = 110012 = 318 = 1916
Base
ITEC 1011 Introduction to Information Technologies
Decimal to Decimal (just for fun)
Hexadecimal
Decimal Octal
Binary
Next slide…
ITEC 1011 Introduction to Information Technologies
12510 => 5 x 100 = 52 x 101 = 201 x 102 = 100
125
Base
Weight
ITEC 1011 Introduction to Information Technologies
Binary to Decimal
Hexadecimal
Decimal Octal
Binary
ITEC 1011 Introduction to Information Technologies
Binary to Decimal
• Technique– Multiply each bit by 2n, where n is the “weight”
of the bit– The weight is the position of the bit, starting
from 0 on the right– Add the results
ITEC 1011 Introduction to Information Technologies
Example
1010112 => 1 x 20 = 11 x 21 =
20 x 22 =
01 x 23 =
80 x 24 =
01 x 25 =
32
4310
Bit “0”
ITEC 1011 Introduction to Information Technologies
Octal to Decimal
Hexadecimal
Decimal Octal
Binary
ITEC 1011 Introduction to Information Technologies
Octal to Decimal
• Technique– Multiply each bit by 8n, where n is the “weight”
of the bit– The weight is the position of the bit, starting
from 0 on the right– Add the results
ITEC 1011 Introduction to Information Technologies
Example
7248 => 4 x 80 = 42 x 81 = 167 x 82 = 448
46810
ITEC 1011 Introduction to Information Technologies
Hexadecimal to Decimal
Hexadecimal
Decimal Octal
Binary
ITEC 1011 Introduction to Information Technologies
Hexadecimal to Decimal
• Technique– Multiply each bit by 16n, where n is the
“weight” of the bit– The weight is the position of the bit, starting
from 0 on the right– Add the results
ITEC 1011 Introduction to Information Technologies
Example
ABC16 => C x 160 = 12 x 1 = 12 B x 161 = 11 x 16 = 176 A x 162 = 10 x 256 = 2560
274810
ITEC 1011 Introduction to Information Technologies
Decimal to Binary
Hexadecimal
Decimal Octal
Binary
ITEC 1011 Introduction to Information Technologies
Decimal to Binary
• Technique– Divide by two, keep track of the remainder– First remainder is bit 0 (LSB, least-significant
bit)– Second remainder is bit 1– Etc.
ITEC 1011 Introduction to Information Technologies
Example
12510 = ?22 125 62 12 31 02 15 12 7 12 3 12 1 12 0 1
12510 = 11111012
ITEC 1011 Introduction to Information Technologies
Decimal to Octal
Hexadecimal
Decimal Octal
Binary
ITEC 1011 Introduction to Information Technologies
Decimal to Octal
• Technique– Divide by 8– Keep track of the remainder
ITEC 1011 Introduction to Information Technologies
Example
123410 = ?8
8 1234 154 28 19 28 2 38 0 2
123410 = 23228
ITEC 1011 Introduction to Information Technologies
Decimal to Hexadecimal
Hexadecimal
Decimal Octal
Binary
ITEC 1011 Introduction to Information Technologies
Decimal to Hexadecimal
• Technique– Divide by 16– Keep track of the remainder
ITEC 1011 Introduction to Information Technologies
Example
123410 = ?16
123410 = 4D216
16 1234 77 216 4 13 = D16 0 4
ITEC 1011 Introduction to Information Technologies
Octal to Binary
Hexadecimal
Decimal Octal
Binary
ITEC 1011 Introduction to Information Technologies
Octal to Binary
• Technique– Convert each octal digit to a 3-bit equivalent
binary representation
ITEC 1011 Introduction to Information Technologies
Example
7058 = ?2
7 0 5
111 000 101
7058 = 1110001012
ITEC 1011 Introduction to Information Technologies
Hexadecimal to Binary
Hexadecimal
Decimal Octal
Binary
ITEC 1011 Introduction to Information Technologies
Hexadecimal to Binary
• Technique– Convert each hexadecimal digit to a 4-bit
equivalent binary representation
ITEC 1011 Introduction to Information Technologies
Example
10AF16 = ?2
1 0 A F
0001 0000 1010 1111
10AF16 = 00010000101011112
ITEC 1011 Introduction to Information Technologies
Binary to Octal
Hexadecimal
Decimal Octal
Binary
ITEC 1011 Introduction to Information Technologies
Binary to Octal
• Technique– Group bits in threes, starting on right– Convert to octal digits
ITEC 1011 Introduction to Information Technologies
Example
10110101112 = ?8
1 011 010 111
1 3 2 7
10110101112 = 13278
ITEC 1011 Introduction to Information Technologies
Binary to Hexadecimal
Hexadecimal
Decimal Octal
Binary
ITEC 1011 Introduction to Information Technologies
Binary to Hexadecimal
• Technique– Group bits in fours, starting on right– Convert to hexadecimal digits
ITEC 1011 Introduction to Information Technologies
Example
10101110112 = ?16
10 1011 1011
2 B B
10101110112 = 2BB16
ITEC 1011 Introduction to Information Technologies
Octal to Hexadecimal
Hexadecimal
Decimal Octal
Binary
ITEC 1011 Introduction to Information Technologies
Octal to Hexadecimal
• Technique– Use binary as an intermediary
ITEC 1011 Introduction to Information Technologies
Example
10768 = ?16
1 0 7 6
001 000 111 110
2 3 E
10768 = 23E16
ITEC 1011 Introduction to Information Technologies
Hexadecimal to Octal
Hexadecimal
Decimal Octal
Binary
ITEC 1011 Introduction to Information Technologies
Hexadecimal to Octal
• Technique– Use binary as an intermediary
ITEC 1011 Introduction to Information Technologies
Example
1F0C16 = ?8
1 F 0 C
0001 1111 0000 1100
1 7 4 1 4
1F0C16 = 174148
ITEC 1011 Introduction to Information Technologies
Exercise – Convert ...
Don’t use a calculator!
Decimal Binary OctalHexa-
decimal
33
1110101
703
1AF
Skip answer Answer
ITEC 1011 Introduction to Information Technologies
Exercise – Convert …
Decimal Binary OctalHexa-
decimal
33 100001 41 21
117 1110101 165 75
451 111000011 703 1C3
431 110101111 657 1AF
Answer
ITEC 1011 Introduction to Information Technologies
Common Powers (1 of 2)
• Base 10Power Preface Symbol
10-12 pico p
10-9 nano n
10-6 micro
10-3 milli m
103 kilo k
106 mega M
109 giga G
1012 tera T
Value
.000000000001
.000000001
.000001
.001
1000
1000000
1000000000
1000000000000
ITEC 1011 Introduction to Information Technologies
Common Powers (2 of 2)
• Base 2Power Preface Symbol
210 kilo k
220 mega M
230 Giga G
Value
1024
1048576
1073741824
• What is the value of “k”, “M”, and “G”?• In computing, particularly w.r.t. memory,
the base-2 interpretation generally applies
ITEC 1011 Introduction to Information Technologies
Example
/ 230 =
In the lab…1. Double click on My Computer2. Right click on C:3. Click on Properties
ITEC 1011 Introduction to Information Technologies
Exercise – Free Space
• Determine the “free space” on all drives on a machine in the lab
DriveFree space
Bytes GB
A:
C:
D:
E:
etc.
ITEC 1011 Introduction to Information Technologies
Review – multiplying powers
• For common bases, add powers
26 210 = 216 = 65,536
or…
26 210 = 64 210 = 64k
ab ac = ab+c
ITEC 1011 Introduction to Information Technologies
Fractions
• Decimal to decimal (just for fun)
pp. 46-50
3.14 => 4 x 10-2 = 0.041 x 10-1 = 0.1
3 x 100 = 3 3.14
ITEC 1011 Introduction to Information Technologies
Fractions
• Binary to decimal
pp. 46-50
10.1011 => 1 x 2-4 = 0.06251 x 2-3 = 0.1250 x 2-2 = 0.01 x 2-1 = 0.50 x 20 = 0.01 x 21 = 2.0 2.6875
ITEC 1011 Introduction to Information Technologies
Fractions
• Decimal to binary
p. 50
3.14579
.14579x 20.29158x 20.58316x 21.16632x 20.33264x 20.66528x 21.33056
etc.11.001001...
ITEC 1011 Introduction to Information Technologies
Fractions
• Octal to decimal
pp. 46-50
15.42 => 2 x 8-2 = 0.031254 x 8-1 = 0.55 x 80 = 5.01 x 81 = 8.0 13.53125
ITEC 1011 Introduction to Information Technologies
Fractions
• Decimal to octal
p. 50
3.14
.14x 81.12x 80.96x 87.68x 85.44x 83.52x 84.16
etc. 3.107534...
ITEC 1011 Introduction to Information Technologies
Fractions
• Hexadecimal to decimal
pp. 46-50
2B.84 => 4 x 16-2 = 0.015625 8 x 16-1 = 0.5
B x 160 = 11.02 x 161 = 32.0 43.515625
ITEC 1011 Introduction to Information Technologies
Fractions
• Decimal to Hexadecima
p. 50
3.1
.1x 161.6x 16 9.6x 16 9.6x 16 9.6x 16 9.6x 16 9.6
etc. 3.199999...
ITEC 1011 Introduction to Information Technologies
Exercise – Convert ...
Don’t use a calculator!
Decimal Binary OctalHexa-
decimal
29.8
101.1101
3.07
C.82
Skip answer Answer
ITEC 1011 Introduction to Information Technologies
Exercise – Convert …
Decimal Binary OctalHexa-
decimal
29.8 11101.110011… 35.63… 1D.CC…
5.8125 101.1101 5.64 5.D
3.109375 11.000111 3.07 3.1C
12.5078125 1100.10000010 14.404 C.82
Answer
ITEC 1011 Introduction to Information Technologies
Binary Addition (1 of 2)
• Two 1-bit values
pp. 36-38
A B A + B
0 0 0
0 1 1
1 0 1
1 1 10“two”
ITEC 1011 Introduction to Information Technologies
Binary Addition (2 of 2)
• Two n-bit values– Add individual bits– Propagate carries– E.g.,
10101 21+ 11001 + 25 101110 46
11
ITEC 1011 Introduction to Information Technologies
Multiplication (1 of 3)
• Decimal (just for fun)
pp. 39
35x 105 175 000 35 3675
ITEC 1011 Introduction to Information Technologies
Multiplication (2 of 3)
• Binary, two 1-bit values
A B A B0 0 00 1 01 0 01 1 1
ITEC 1011 Introduction to Information Technologies
Multiplication (3 of 3)
• Binary, two n-bit values– As with decimal values– E.g.,
1110 x 1011 1110 1110 0000 111010011010
ITEC 1011 Introduction to Information Technologies
Binary Subtraction (1 of 2)
• Two 1-bit values
pp. 36-38
A B A - B
0 0 0
0 1 1
1 0 1
1 1 0
Borrow 1
ITEC 1011 Introduction to Information Technologies
Binary Subtraction (2 of 2)
• Two n-bit values– Subtract individual bits– Propagate borrows– E.g.,
11001 25- 10101 - 21 00100 4
10
0
ITEC 1011 Introduction to Information Technologies
Binary Subtraction (2 of 2)
• Two n-bit values– Subtract individual bits– Propagate borrows– E.g.,
11001 25- 10101 - 21 00100 4
10 0 10001 - 10101 00100
10
ITEC 1011 Introduction to Information Technologies
Subtraction with Complements
• Complements are used for simplifying the subtraction operations.
• There are two types of complements for each base-r system: the r's complement and the (r — l)'s complement.
• 2's complement and 1's complement for binary numbers, and the 10's complement and 9's com plement for decimal numbers.
ITEC 1011 Introduction to Information Technologies
9's complement
• The 9's complement of a decimal number is obtained by subtracting each digit from 9.
• • The 9's complement of 546700 is:• 999999 - 546700 = 453299.• The 9's complement of 012398 is:• 999999 - 012398 = 987601.
ITEC 1011 Introduction to Information Technologies
Binary numbers, the 1's complement
• The 1's complement of a binary number is formed by changing 1's to 0's and 0's to 1's.
• Examples: • The 1's complement of 1011000 is• 0100111• The 1's complement of 0101101 is• 1010010
ITEC 1011 Introduction to Information Technologies
10's complement
• The 10's complement can be formed by leaving all least significant 0's un changed, subtracting the first nonzero least significant digit from 10, and subtracting all higher significant digits from 9.
• The 10's complement of 012398 is 987602.• The 10's complement of 246700 is 753300.
ITEC 1011 Introduction to Information Technologies
2's complement
• The 2's complement can be formed by leaving all least significant 0's and the first 1 unchanged, and replacing 1's with 0's and 0's with 1's in all other higher significant digits.
• The 2's complement of 1101100 is• 0010100• The 2's complement of 0110111 is• 1001001
ITEC 1011 Introduction to Information Technologies
Subtraction with Complements
• The subtraction of two n-digit unsigned numbers M — N in base r can be done as follows:
• Add M to the r's complement of N. • If M ≥ N, the sum will produce an end carry, r n,
which is discarded; what is left is the result M - N.• If M < N, the sum does not produce an end carry.
To obtain the answer in a familiar form, take the r's complement of the sum and place a negative sign in front.
ITEC 1011 Introduction to Information Technologies
Examples to illustrate the procedure
• Given the two binary numbers;• X = 1010100 and Y = 1000011, • perform the subtraction:• (a) X — Y • (b) Y — X • using 2's complements.
ITEC 1011 Introduction to Information Technologies
X — Y= 1010100 —1000011
• X = 1010100• 2's complement of Y = + 0111101• Sum = 10010001• Discard end carry = -10000000• Answer: X — Y = 0010001•
ITEC 1011 Introduction to Information Technologies
Y — X= 1000011 — 1010100
• Y = 1000011• 2's complement of X = + 0101100• Sum = 1101111• There is no end carry.• Answer:• Y - X = -(2's complement of 1101111) • = - 0010001
ITEC 1011 Introduction to Information Technologies
Thank you
Next topic
ITEC 1011 Introduction to Information Technologies
Binary Codes
• Binary codes are codes which are represented in binary system with modification from the original ones.
• Binary codes are classified as:– Weighted Binary Systems – Non Weighted Codes
ITEC 1011 Introduction to Information Technologies
Weighted Binary Systems
• Weighted binary codes are those which obey the positional weighting principles,
• Each position of the number represents a specific weight.
• The codes 8421, 2421, 5421, and 5211 are weighted binary codes.
ITEC 1011 Introduction to Information Technologies
Weighted Binary Systems
ITEC 1011 Introduction to Information Technologies
8421 Code/BCD Code
• The BCD (Binary Coded Decimal) is a straight assignment of the binary equivalent.
• It is possible to assign weights to the binary bits according to their positions.
• The weights in the BCD code are 8,4,2,1.• Example: The bit assignment 1001, can be seen by
its weights to represent the decimal 9 because:• 1x8+0x4+0x2+1x1 = 9• Ex. number 12 is represented in BCD as [0001 0010]
ITEC 1011 Introduction to Information Technologies
2421 Code
• 2421 Code This is a weighted code, its weights are 2, 4, 2 and 1.
• A decimal number is represented in 4-bit form and the total four bits weight is 2 + 4 + 2 + 1 = 9.
• Hence the 2421 code represents the decimal numbers from 0 to 9.
ITEC 1011 Introduction to Information Technologies
5211 Code
• 5211 Code This is a weighted code, its weights are 5, 2, 1 and 1.
• A decimal number is represented in 4-bit form and the total four bits weight is 5 + 2 + 1 + 1 = 9.
• Hence the 5211 code represents the decimal numbers from 0 to 9.
ITEC 1011 Introduction to Information Technologies
Reflective Code• Reflective Code A code is said to be
reflective when code for 9 is complement for the code for 0, and so is for 8 and 1 codes, 7 and 2, 6 and 3, 5 and 4.
• Codes 2421, 5211, and excess-3 are reflective, whereas the 8421 code is not.
ITEC 1011 Introduction to Information Technologies
Sequential Codes• Sequential Codes A code is said to be sequential
when two subsequent codes, seen as numbers in binary representation, differ by one.
• This greatly aids mathematical manipulation of data.
• The 8421 and Excess-3 codes are sequential, whereas the 2421 and 5211 codes are not.
ITEC 1011 Introduction to Information Technologies
Excess-3 Code• Excess-3 Code Excess-3 is a non weighted code
used to express decimal numbers. • The code derives its name from the fact that each
binary code is the corresponding 8421 code plus 0011(3).
• Example: 1000 of 8421 = 1011 in Excess-3
ITEC 1011 Introduction to Information Technologies
Error Detecting and Correction Codes
• For reliable transmission and storage of digital data, error detection and correction is required.
ITEC 1011 Introduction to Information Technologies
Error Detecting Codes
• When data is transmitted from one point to another there are chances that data may get corrupted.
• To detect these data errors, we use special codes, which are error detection codes.
ITEC 1011 Introduction to Information Technologies
Parity check
• In parity codes, every binary message is checked if they have even number of ones or even number of zeros.
• Based on this information an additional bit is appended to the original data.
• At the receiver side, once again parity is calculated and matched with the received parity, and if they match, data is ok, otherwise data is corrupt.
• There are two types of parity: Even parity and Odd Parity
ITEC 1011 Introduction to Information Technologies
Parity
• There are two types of parity:• Even parity: Checks if there is an even
number of ones; if so, parity bit is zero. When the number of ones is odd then parity bit is set to 1.
Even parity codexyz p
Messagexyz
000 0 000
001 1 001
011 0 011
ITEC 1011 Introduction to Information Technologies
Parity
• Odd Parity: Checks if there is an odd number of ones; if so, parity bit is zero. When number of ones is even then parity bit is set to 1.
• •
Odd parity codexyz p
Messagexyz
000 1 000
001 0 001
011 1 011
ITEC 1011 Introduction to Information Technologies
Alphanumeric Codes
• The binary codes that can be used to represent all the letters of the alphabet, numbers and mathematical symbols, punctuation marks, are known as alphanumeric codes or character codes.
• These codes enable us to interface the input-output devices like the keyboard, printers, video displays with the computer.
ITEC 1011 Introduction to Information Technologies
ASCII Code
• ASCII Code ASCII stands for American Standard Code for Information Interchange.
• It has become a world standard alphanumeric code for microcomputers and computers.
• It is a 7-bit code representing 27 = 128 different characters.
• These characters represent 26 upper case letters (A to Z), 26 lowercase letters (a to z), 10 numbers (0 to 9), 33 special characters and symbols and 33 control characters.
•
ITEC 1011 Introduction to Information Technologies
ASCII Code
• The 7-bit code is divided into two portions, The leftmost 3 bits portion is called zone bits and the 4-bit portion on the right is called numeric bits.
7-bit ASCII Character
100 0001 A
100 0010 B
011 0011 3
ITEC 1011 Introduction to Information Technologies
ASCII Code
• An 8-bit version of ASCII code is known as ASCII-8.
• The 8-bit version can represent a maximum of 256 characters.
ITEC 1011 Introduction to Information Technologies
EBCDIC Code
• EBCDIC Code EBCDIC stands for Extended Binary Coded Decimal Interchange.
• It is mainly used with large computer systems like mainframes.
• EBCDIC is an 8-bit code and thus accommodates up to 256 characters.
• An EBCDIC code is divided into two portions: 4 zone bits (on the left) and 4 numeric bits (on the right).