1 digital design debdeep mukhopadhyay associate professor dept of computer science and engineering...

26
1 Digital Design Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

Upload: osborn-fowler

Post on 17-Jan-2018

222 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

1

Digital DesignDigital Design

Debdeep Mukhopadhyay

Associate ProfessorDept of Computer Science and Engineering

NYU Shanghai and IIT Kharagpur

Page 2: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

2

Number Systems and CodesNumber Systems and Codes

Page 3: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

3

Number SystemsNumber SystemsDecimal number: 123.45 = 1 102 + 2 101 + 3 100 + 4 10-1 + 5 10-2

Base b number: N = aq-1bq-1 + … + a0b0 + … + a-pb-p

b >1, 0 <= ai <= b-1

Integer part: aq-1aq-2 … a0

Fractional part: a-1a -2 … a-p

Most significant digit: aq-1

Least significant digit: a-p

Binary number (b=2): 1101.01 = 1 23 + 1 22 + 0 21 + 1 20 + 0 2-1 + 1 2-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

Page 4: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

4

Representation of IntegersRepresentation of Integers

Page 5: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

5

Conversion of BasesConversion of Bases

Example: Base 8 to base 10 (432.2)8 = 4 82 + 3 81 + 2 80 + 2 8-1 = (282.25)10

Example: Base 2 to base 10 (1101.01)2 = 1 23 + 1 22 + 0 21 + 1 20 + 0 2-1 + 1 2-2 = (13.25)10

Base b1 to b2, where b1 > b2:

Page 6: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

6

Conversion of Bases (Contd.)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

Page 7: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

7

Converting Fractional NumbersConverting Fractional Numbers

Fractional number:

Example: Convert (0.3125)10 to base 8 0.3125 8 = 2.5000 hence a-1 = 2 0.5000 8 = 4.0000 hence a-2 = 4

Thus, (0.3125)10 = (0.24)8

Page 8: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

8

Decimal to BinaryDecimal to BinaryExample: Convert (432.354)10 to binary

Page 9: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

9

Decimal to BinaryDecimal to Binary

Example: Convert (432.354)10 to binary

0.354 2 = 0.708 hence a-1 = 0 0.708 2 = 1.416 hence a-2 = 10.416 2 = 0.832 hence a-3 = 00.832 2 = 1.664 hence a-4 = 10.664 2 = 1.328 hence a-5 = 10.328 2 = 0.656 hence a-6 = 0 a-7 = 1 etc.

Thus, (432.354)10 = (110110000.0101101…)2

Page 10: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

10

Octal/Binary ConversionOctal/Binary Conversion

Example: Convert (123.4)8 to binary (123.4)8 = (001 010 011.100)2

Example: Convert (1010110.0101)2 to octal (1010110.0101)2 = (001 010 110.010 100)2 = (126.24)8

Page 11: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

11

Binary ArithmeticBinary Arithmetic

Page 12: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

12

Binary Addition/SubtractionBinary Addition/Subtraction

Example: Binary addition 1111 = carries of 1 1111.01 = (15.25)10

0111.10 = ( 7.50)10

10110.11 = (22.75)10

Example: Binary subtraction 1 = borrows of 1 10010.11 = (18.75)10

01100.10 = (12.50)10

00110.01 = ( 6.25)10

Page 13: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

13

Binary Multiplication/DivisionBinary Multiplication/DivisionExample: Binary multiplication 11001.1 = (25.5)10

110.1 = ( 6.5)10

110011 000000 110011 110011 10100101.11 = (165.75)10

Example: Binary division 10110 = quotient 11001 1000100110 11001 00100101 11001 0011001 11001 00000 = remainder

Page 14: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

Binary and Weighted CodesBinary 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 x1, x2, x3, x4 are the binary digits, with

weights w1, w2, w3, w4, then the decimal digit is:

N=w4x4+w3x3+w2x2+w1x1

We say, the sequence (x1, x2, x3, x4) denotes the code word for N.

14

Page 15: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

15

Binary CodesBinary 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?

Page 16: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

16

Nonweighted CodesNonweighted Codes

Add 3 to BCD

Successive code wordsdiffer in only one digit

Can you see some interesting properties in the excess-3 code?

Page 17: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

17

Gray CodeGray Code

Page 18: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

18

Binary GrayBinary GrayExample: Binary:

Gray:

Gray-to-binary:• bi = gi if no. of 1’s preceding gi is even• bi = gi’ if no. of 1’s preceding gi is odd

+ ++++ +

1 0 11 10

1 1 1 0 1 1g5 g4 g3 g2 g1 g0

b5 b4 b3 b2 b1 b0

Page 19: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

19

Reflection of Gray CodesReflection of Gray Codes

00011110

00001111

10110100

00011110

00000000

000001011010110111101100

11111111

100101111110010011001000

Page 20: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

20

Error-detecting CodesError-detecting Codes

p: parity bit; even parity used in above codesDistance between codewords: no. of bits they differ inMinimum distance of a code: smallest no. of bits in which any two code words differMinimum distance of above single error-detecting codes = 2

Page 21: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

21

Hamming Codes: Single Error-correctingHamming Codes: Single Error-correcting

Minimum distance for SEC or double-error detecting (DED) codes = 3Example: {000,111} Minimum distance for SEC and DED codes = 4

No. of information bits = mNo. of parity check bits, p1, p2, …, pk = kNo. 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), c1c2…ck, with the k parity checks

Page 22: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

22

Hamming Codes (Contd.)Hamming Codes (Contd.)No. of parity check bits, k, must satisfy: 2k >= m+k+1Example: if m = 4 then k =3

Place check bits at the following locations: 1, 2, 4, …, 2k-1

Example code word: 1100110• Check bits: p1= 1, p2 = 1, p3 = 0• Information bits: 0, 1, 1, 0

Page 23: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

23

Hamming Code ConstructionHamming Code Construction

Select p1 to establish even parity in positions: 1, 3, 5, 7Select p2 to establish even parity in positions: 2, 3, 6, 7Select p3 to establish even parity in positions: 4, 5, 6, 7

Page 24: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

24

Hamming Code Construction (Contd.)Hamming Code Construction (Contd.)

Position: 1 2 3 4 5 6 7 p1 p2 m1 p3 m2 m3 m4

Original BCD message: 0 1 0 0Parity check in positions 1,3,5,7 requires p1=1: 1 0 1 0 0Parity check in positions 2,3,6,7 requires p2=0: 1 0 0 1 0 0Parity check in positions 4,5,6,7 requires p3=1: 1 0 0 1 1 0 0 Coded message: 1 0 0 1 1 0 0

Page 25: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

25

Hamming Code for BCDHamming Code for BCD

Position: 1 2 3 4 5 6 7 Intended message: 1 1 0 1 0 0 1 Message received: 1 1 0 1 1 0 14-5-6-7 parity check: 1 1 0 1 c1 = 1 since parity is odd2-3-6-7 parity check: 1 0 0 1 c2 = 0 since parity is even1-3-5-7 parity check: 1 0 1 1 c3 = 1 since parity is odd

Page 26: 1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur

26

SEC/DED CodeSEC/DED CodeAdd 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