LOGIC DESIGN Dr. Mahmoud Abo_elfetouh
Course objectives 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.
Contents Week No. Topic Lecture Practical Total 1 Number Systems and Codes 3 2 5 2 3 4 5 Number Systems and Codes Boolean Algebra and Logic Simplification Minimization Techniques- Karnaugh Map Minimization Techniques- Karnaugh Map 3 3 3 3 2 2 2 2 5 5 5 5 6 Logic Gates 3 2 5 7 Arithmetic Circuits-Adders 3 2 5 8 Mid- Term Exam
Contents Week No. Topic Lecture Practical Total 9 Arithmetic Circuits -Subtracter 3 2 5 10 Combinational Circuits 3 2 5 11 Combinational Circuits 3 2 5 12 Flip-Flops 3 2 5 13 Flip-Flops 3 2 5 14 Counters - Registers 3 2 5 15 Memory Devices 3 2 5 16 Final- Term Exam
Textbook Logic and Computer Design Fundamentals, 4th Edition by M. Morris Mano and Charles R. Kime, Prentice Hall, 2008
Chapter 1 Number Systems
1. Number Systems Location in course textbook Chapt. 1
Common Number Systems System Base Symbols Used 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 Hexadecimal 16 0, 1, 9, A, B, F No No
Quantities/Counting (1 of 3) Decimal Binary Octal Hexadecimal 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 7 p. 33
Quantities/Counting (2 of 3) Decimal Binary Octal Hexadecimal 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
Quantities/Counting (3 of 3) Decimal Binary Octal Hexadecimal 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.
Conversion Among Bases The possibilities: Decimal Octal Binary Hexadecimal pp. 40-46
Quick Example 25 10 = 11001 2 = 31 8 = 19 16 Base
Decimal to Decimal (just for fun) Decimal Octal Binary Hexadecimal Next slide
Weight 125 10 => 5 x 10 0 = 5 2 x 10 1 = 20 1 x 10 2 = 100 125 Base
Binary to Decimal Decimal Octal Binary Hexadecimal
Binary to Decimal Technique Multiply each bit by 2 n, 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
Example Bit 0 101011 2 => 1 x 2 0 = 1 1 x 2 1 = 2 0 x 2 2 = 0 1 x 2 3 = 8 0 x 2 4 = 0 1 x 2 5 = 32 43 10
Octal to Decimal Decimal Octal Binary Hexadecimal
Octal to Decimal Technique Multiply each bit by 8 n, 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
Example 724 8 => 4 x 8 0 = 4 2 x 8 1 = 16 7 x 8 2 = 448 468 10
Hexadecimal to Decimal Decimal Octal Binary Hexadecimal
Hexadecimal to Decimal Technique Multiply each bit by 16 n, 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
Example ABC 16 => C x 16 0 = 12 x 1 = 12 B x 16 1 = 11 x 16 = 176 A x 16 2 = 10 x 256 = 2560 2748 10
Decimal to Binary Decimal Octal Binary Hexadecimal
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.
Example 125 10 =? 2 2 125 2 62 1 2 31 0 2 15 1 2 7 1 2 3 1 2 1 1 0 1 125 10 = 1111101 2
Decimal to Octal Decimal Octal Binary Hexadecimal
Decimal to Octal Technique Divide by 8 Keep track of the remainder
Example 1234 10 =? 8 8 1234 8 154 2 8 19 2 8 2 3 0 2 1234 10 = 2322 8
Decimal to Hexadecimal Decimal Octal Binary Hexadecimal
Decimal to Hexadecimal Technique Divide by 16 Keep track of the remainder
Example 1234 10 =? 16 16 1234 16 77 2 16 4 13 = D 0 4 1234 10 = 4D2 16
Octal to Binary Decimal Octal Binary Hexadecimal
Octal to Binary Technique Convert each octal digit to a 3-bit equivalent binary representation
Example 705 8 =? 2 7 0 5 111 000 101 705 8 = 111000101 2
Hexadecimal to Binary Decimal Octal Binary Hexadecimal
Hexadecimal to Binary Technique Convert each hexadecimal digit to a 4-bit equivalent binary representation
Example 10AF 16 =? 2 1 0 A F 0001 0000 1010 1111 10AF 16 = 0001000010101111 2
Binary to Octal Decimal Octal Binary Hexadecimal
Binary to Octal Technique Group bits in threes, starting on right Convert to octal digits
Example 1011010111 2 =? 8 1 011 010 111 1 3 2 7 1011010111 2 = 1327 8
Binary to Hexadecimal Decimal Octal Binary Hexadecimal
Binary to Hexadecimal Technique Group bits in fours, starting on right Convert to hexadecimal digits
Example 1010111011 2 =? 16 10 1011 1011 2 B B 1010111011 2 = 2BB 16
Octal to Hexadecimal Decimal Octal Binary Hexadecimal
Octal to Hexadecimal Technique Use binary as an intermediary
Example 1076 8 =? 16 1 0 7 6 001 000 111 110 2 3 E 1076 8 = 23E 16
Hexadecimal to Octal Decimal Octal Binary Hexadecimal
Hexadecimal to Octal Technique Use binary as an intermediary
Example 1F0C 16 =? 8 1 F 0 C 0001 1111 0000 1100 1 7 4 1 4 1F0C 16 = 17414 8
Exercise Convert... Decimal Binary Octal 33 1110101 703 Hexadecimal 1AF Don t use a calculator! Skip answer Answer
Exercise Convert Answer Decimal Binary Octal Hexadecimal 33 100001 41 21 117 1110101 165 75 451 111000011 703 1C3 431 110101111 657 1AF
Common Powers (1 of 2) Base 10 Power Preface Symbol 10-12 pico p 10-9 nano n 10-6 micro 10-3 milli m 10 3 kilo k 10 6 mega M 10 9 giga G 10 12 tera T Value.000000000001.000000001.000001.001 1000 1000000 1000000000 1000000000000
Common Powers (2 of 2) Base 2 Power Preface Symbol 2 10 kilo k 2 20 mega M 2 30 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
Example In the lab 1. Double click on My Computer 2. Right click on C: 3. Click on Properties / 2 30 =
Exercise Free Space Determine the free space on all drives on a machine in the lab Drive Bytes Free space GB A: C: D: E: etc.
Review multiplying powers For common bases, add powers a b a c = a b+c 2 6 2 10 = 2 16 = 65,536 or 2 6 2 10 = 64 2 10 = 64k
Fractions Decimal to decimal (just for fun) 3.14 => 4 x 10-2 = 0.04 1 x 10-1 = 0.1 3 x 10 0 = 3 3.14 pp. 46-50
Fractions Binary to decimal 10.1011 => 1 x 2-4 = 0.0625 1 x 2-3 = 0.125 0 x 2-2 = 0.0 1 x 2-1 = 0.5 0 x 2 0 = 0.0 1 x 2 1 = 2.0 2.6875 pp. 46-50
Fractions Decimal to binary 3.14579 11.001001....14579 x 2 0.29158 x 2 0.58316 x 2 1.16632 x 2 0.33264 x 2 0.66528 x 2 1.33056 etc. p. 50
Fractions Octal to decimal 15.42 => 2 x 8-2 = 0.03125 4 x 8-1 = 0.5 5 x 8 0 = 5.0 1 x 8 1 = 8.0 13.53125 pp. 46-50
Fractions Decimal to octal 3.14 3.107534....14 x 8 1.12 x 8 0.96 x 8 7.68 x 8 5.44 x 8 3.52 x 8 4.16 etc. p. 50
Fractions Hexadecimal to decimal 2B.84 => 4 x 16-2 = 0.015625 8 x 16-1 = 0.5 B x 16 0 = 11.0 2 x 16 1 = 32.0 43.515625 pp. 46-50
Fractions Decimal to Hexadecima 3.1 3.199999....1 x 16 1.6 x 16 9.6 x 16 9.6 x 16 9.6 x 16 9.6 x 16 9.6 etc. p. 50
Exercise Convert... Decimal Binary Octal 29.8 101.1101 3.07 Hexadecimal C.82 Don t use a calculator! Skip answer Answer
Exercise Convert Answer Decimal Binary Octal Hexadecimal 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
Binary Addition (1 of 2) Two 1-bit values A B A + B 0 0 0 0 1 1 1 0 1 1 1 10 two pp. 36-38
Binary Addition (2 of 2) Two n-bit values Add individual bits Propagate carries E.g., 1 1 10101 21 + 11001 + 25 101110 46
Multiplication (2 of 3) Binary, two 1-bit values A B A B 0 0 0 0 1 0 1 0 0 1 1 1
Binary Subtraction (1 of 2) Two 1-bit values Borrow 1 A B A - B 0 0 0 0 1 1 1 0 1 1 1 0 pp. 36-38
Binary Subtraction (2 of 2) Two n-bit values Subtract individual bits Propagate borrows E.g., 10 11001 0 25-10101 - 21 00100 4
Binary Subtraction (2 of 2) Two n-bit values Subtract individual bits Propagate borrows E.g., 10 10001-10101 00100 10 0 11001 25-10101 - 21 00100 4
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.
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.
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
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.
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
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.
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.
X Y= 1010100 1000011 X = 1010100 2's complement of Y = + 0111101 Sum = 10010001 Discard end carry = -10000000 Answer: X Y = 0010001
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
Thank you Next topic
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
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.
Weighted Binary Systems
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]
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.
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.
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.
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.
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
Error Detecting and Correction Codes For reliable transmission and storage of digital data, error detection and correction is required.
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.
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
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. Message xyz 000 001 011 Even parity code xyz p 000 0 001 1 011 0
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. Message xyz 000 001 011 Odd parity code xyz p 000 1 001 0 011 1
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.
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 2 7 = 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.
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. Character A B 3 7-bit ASCII 100 0001 100 0010 011 0011
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.
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).