1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur
2 Number Systems and Codes
3 Number Systems Decimal number: = Base b number: N = a q-1 b q-1 + … + a 0 b 0 + … + a -p b -p b >1, 0 <= a i <= b-1 Integer part: a q-1 a q-2 … a 0 Fractional part: a -1 a -2 … a -p Most significant digit: a q-1 Least significant digit: a -p Binary number (b=2): = Representing number N in base b: (N) b Complement of digit a: a’ = (b-1)-a Decimal system: 9’s complement of 3 = 9-3 = 6 Binary system: 1’s complement of 1 = 1-1 = 0
4 Representation of Integers
5 Conversion of Bases Example: Base 8 to base 10 (432.2) 8 = = (282.25) 10 Example: Base 2 to base 10 ( ) 2 = = (13.25) 10 Base b 1 to b 2, where b 1 > b 2 :
6 Conversion of Bases (Contd.) Example: Convert (548) 10 to base 8 Thus, (548) 10 = (1044) 8 Thus, (345) 10 = (1333) 6 Example: Convert (345) 10 to base 6
7 Converting Fractional Numbers Fractional number: Example: Convert (0.3125) 10 to base = hence a -1 = = hence a -2 = 4 Thus, (0.3125) 10 = (0.24) 8
8 Decimal to Binary Example: Convert ( ) 10 to binary
9 Decimal to Binary Example: Convert ( ) 10 to binary = hence a -1 = = hence a -2 = = hence a -3 = = hence a -4 = = hence a -5 = = hence a -6 = 0 a -7 = 1 etc. Thus, ( ) 10 = ( …) 2
10 Octal/Binary Conversion Example: Convert (123.4) 8 to binary (123.4) 8 = ( ) 2 Example: Convert ( ) 2 to octal ( ) 2 = ( ) 2 = (126.24) 8
11 Binary Arithmetic
12 Binary Addition/Subtraction Example: Binary addition 1111 = carries of = (15.25) = ( 7.50) = (22.75) 10 Example: Binary subtraction 1 = borrows of = (18.75) = (12.50) = ( 6.25) 10
13 Binary Multiplication/Division Example: Binary multiplication = (25.5) = ( 6.5) = (165.75) 10 Example: Binary division = quotient = remainder
Binary and Weighted Codes Although binary systems have advantages in digital computers (to control the switches), humans work in decimal systems. It is convenient to represent decimal digits by sequence of binary digits. Several coding techniques have been developed to do so. Decimal digits: 0, 1, …, 9 (10) can be represented by 4 bits. Since, we need 10 out of 16 values, several codes possible. Weighted Codes: If x 1, x 2, x 3, x 4 are the binary digits, with weights w 1, w 2, w 3, w 4, then the decimal digit is: N=w 4 x 4 +w 3 x 3 +w 2 x 2 +w 1 x 1 We say, the sequence (x 1, x 2, x 3, x 4 ) denotes the code word for N. 14
15 Binary Codes BCD Self-complementing code: Code word of 9’s complement of N obtained by interchanging 1’s and 0’s in the code word of N Self-complementing Codes Is this unique?
16 Nonweighted Codes Add 3 to BCD Successive code words differ in only one digit Can you see some interesting properties in the excess-3 code?
17 Gray Code
18 Binary Gray Example: Binary: Gray: Gray-to-binary: b i = g i if no. of 1’s preceding g i is even b i = g i ’ if no. of 1’s preceding g i is odd
19 Reflection of Gray Codes
20 Error-detecting Codes p: parity bit; even parity used in above codes Distance between codewords: no. of bits they differ in Minimum distance of a code: smallest no. of bits in which any two code words differ Minimum distance of above single error-detecting codes = 2
21 Hamming Codes: Single Error-correcting Minimum distance for SEC or double-error detecting (DED) codes = 3 Example: {000,111} Minimum distance for SEC and DED codes = 4 No. of information bits = m No. of parity check bits, p 1, p 2, …, p k = k No. of bits in the code word = m+k Assign a decimal value to each of the m+k bits: from 1 to MSB to m+k to LSB Perform k parity checks on selected bits of each code word: record results as 0 or 1 Form a binary number (called position number), c 1 c 2 …c k, with the k parity checks
22 Hamming Codes (Contd.) No. of parity check bits, k, must satisfy: 2 k >= m+k+1 Example: if m = 4 then k =3 Place check bits at the following locations: 1, 2, 4, …, 2 k-1 Example code word: Check bits: p 1 = 1, p 2 = 1, p 3 = 0 Information bits: 0, 1, 1, 0
23 Hamming Code Construction Select p 1 to establish even parity in positions: 1, 3, 5, 7 Select p 2 to establish even parity in positions: 2, 3, 6, 7 Select p 3 to establish even parity in positions: 4, 5, 6, 7
24 Hamming Code Construction (Contd.) Position: p 1 p 2 m 1 p 3 m 2 m 3 m 4 Original BCD message: Parity check in positions 1,3,5,7 requires p 1 =1: Parity check in positions 2,3,6,7 requires p 2 =0: Parity check in positions 4,5,6,7 requires p 3 =1: Coded message:
25 Hamming Code for BCD Position: Intended message: Message received: parity check: c 1 = 1 since parity is odd parity check: c 2 = 0 since parity is even parity check: c 3 = 1 since parity is odd
26 SEC/DED Code Add another parity bit such that all eight bits have even parity Two errors occur: overall parity check satisfied, but position number indicates error double error (cannot be corrected) Single error occurs: overall parity check not satisfied Position no. is 0: error in last parity bit Else, position no. indicates erroneous bit No error occurs: all parity checks indicate even parities