01 Number Systems

Post on 07-Apr-2015

260 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

1

EE2000 Logic Circuit Design

Number Systems & Arithmetic

2

OutlineNumber systems

Conversion between different radix systemsBinary arithmetic

Complement of binary numbersSigned number representations

Codes in Digital WorldBCDASCIIGray codes

Parity and error correction

3

Number Systems

Decimal number system employed in everyday arithmeticRepresent numbers by strings of digits called positional notation

Digits – the Latin word for fingersan-1 an-2 … a2 a1 a0 (0 ≤ ai < 10)Each digit is associated to a value depends on its position in the string

4

Polynomial Form of IntegerThe no. can be expressed in power seriesN = an-1rn-1 + an-2rn-2 + … + a2r2 + a1r + a0

N: the decimal value of the integern: number of digitsr: radix (base)ai: coefficients (digit), 0 ≤ ai < r

e.g. (7672)104 digits, so n = 4decimal number, i.e. r = 10ai: 0 ≤ ai < 10, i.e. one of the ten digits (0, 1, 2, …, 9)N = 7 x 103 + 6 x 102 + 7 x 10 + 2

These two 7 symbols have different meaning

5

Floating Point Numberan-1 an-2 … a2 a1 a0 . a-1 a-2 … a-(m-1) a-m (0 ≤ ai < 10)

“.” is the radix pointThe left most digit an-1 is the most significant digit (MSD)The right most digit a-m is the least significant digit (LSD)

General polynomial formN = an-1rn-1 + … + a1r1 + a0r0 + a-1r -1 + … + a-mr -m

Number of digits = n + me.g. (767.2)10

n = 3, m = 1N = 7 x 102 + 6 x 101 + 7 + 2 x 10-1

6

Alternative Conversion Method

(…((an-1r + an-2)r + an-3)r + … + a1)r + a0

+(a-1+ (a-2 + (… + (a-m+1+ a-mr -1)r -1)…r -1)r -1

e.g. (767.295)10

= ((7 x 10 + 6)10 + 7)+ (2 + (9 + 5 x 10-1)10-1)10-1

7

Other Number Systems

Decimal (base 10) are for human

Three number systems are commonly used in computer work

Binary (base 2)Octal (base 8)Hexadecimal (base 16)

8

Binary Number SystemA base 2 system with two digits: 0 and 1Expressed with a string of 1s and 0sThe digits are called bits(binary digits).The left most bit called most significant bit (MSB)The right most bit called least significant bit (LSB)

Decimal Binary01234567

01

1011

100101110111

9

Radix Conversion

Convert from binary to decimale.g. convert (1011.11)2 to decimal

= 1 x 23 + 0 x 22 + 1 x 2 + 1 + 1 x 2-1 + 1 x 2-2

= 8 + 0 + 2 + 1 + 0.5 + 0.25= (11.75)10

i.e. the summation of the power series only

Powers of 2n 0 1 2 3 4 … 202n 1 2 4 8 16 … 1,048,576

10

From Decimal to Binary

Convert from decimal to binarye.g. convert (746)10 to binary

= 7 x 102 + 4 x 101 + 6 x 100

= 111 x 101010 + 100 x 10101 + 110 x 10100

Involve binary multiplication!Time consuming and not easy to compute

11

Two MethodsMethod 1: Subtraction

Subtract from the largest power of 2 that less than or equal to that numberPut a 1 in the corresponding position of the binary equivalentRepeat the subtract procedure with the remainder until the reminder becomes 0

Method 2: DivisionDivide the number by 2The remainder (either 0 or 1) gives the least significant bitDivide the quotient by 2 repeatedly until the quotient becomes 0

12

Method 1: SubtractionN = 746The largest power of 2 that less than or equal to 746 is 512 (i.e. 29)Put a “1” in the 29 positionCompute remainder: 746 - 512 = 234The next smaller power of 2 is 256 (28), but that is larger than 234.So put a “0” in the 28 positionThe next smaller power of 2 is 128 (27), which is smaller than 234.So put a “1” in the 27 positionThe new remainder is 234 - 128 = 106

Answer: - - - - - - - - - -

Answer: 1 - - - - - - - - -

Answer: 10 - - - - - - - -

Answer: 101 - - - - - - -

13

Method 1: Subtraction

And so on until the remainder becomes zeroFinally we will have (746)10

= 1 x 29 + 0 x 28 + 1 x 27 + 1 x 26 + 1 x 25 + 0x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 0= (1011101010)2

Do you think it is easy to compute?

14

Method 2: DivisionN = 746

746 / 2 = 373 + 0/2373 / 2 = 186 + 1/2186 / 2 = 93 + 0/293 / 2 = 46 + 1/246 / 2 = 23 + 0/223 / 2 = 11 + 1/211 / 2 = 5 + 1/25 / 2 = 2 + 1/22 / 2 = 1 + 0/21 / 2 = 0 + 1/2

?????????0????????10???????010??????1010?????01010????101010???1101010??11101010?0111010101011101010

quotientremainder

15

Method 2 (Another Format)

010

0101010

01010101010

110101011101010

0111010101011101010

7 4 623 7 32 … 01 8 62 … 1

9 32 … 04 62 … 12 32 … 01 12 … 1

52 … 122 … 112 … 00 … 1

quotient remainder

MSB

LSB

16

How About Decimal Factions?Multiply by 2 to give an integer and a fractionRepeat multiplying the fraction until it becomes 0e.g. convert decimal 0.6875 to binary

0.6875 x 2 = 1.37500.3750 x 2 = 0.75000.7500 x 2 = 1.50000.5000 x 2 = 1.0000(0.6875)10 = (0.1011)2

Integer and fractional parts is done separately(746.6875)10 = (1011101010.1011)2

MSB

LSB

17

Method 1 vs. Method 2

Subtraction produces binary digits from the MSB to the LSB (from left to right)Division produces binary digits reversely, from the LSB to the MSB (from right to left)

Both methods work slowly, do we have faster methods?

18

Octal NumbersOctal digits are: 0, 1, 2, … 7e.g. (1352)8

= 1 x 83 + 3 x 82 + 5 x 81 + 2 x 80

= 512 + 192 + 40 + 2= (746)10

To convert decimal to octalDivide the number by 8 repeatedlye.g. (746)10

746 / 8 = 93 … 293 / 8 = 11 … 511 / 8 = 1 … 31 / 8 = 0 … 1

Answer: (1352)8

19

Octal FractionMultiply by 8 to give an integer and a fractionRepeat multiplying the fraction until it becomes 0Convert decimal 0.513 to a 3-digit octal fraction

0.513 x 8 = 4.1040.104 x 8 = 0.8320.832 x 8 = 6.6560.656 x 8 = 5.248…(0.513)10 = (0.4065…)2 = (0.407)2 (rounded)

MSB

LSB

20

Octal NumbersBase 8, a power of 2 (23 = 8)Each octal digit corresponds to 3 binary digitsTo convert binary to octal

Partition the binary digits into groups of 3 bits eachNote the way of groupingAdd 0s to the MSB and LSB to make the no. of bits a multiple of 3e.g. (1 011 101 010 . 001 01)2 = (001 011 101 010 . 001 010)2= (1 3 5 2.1 2)8

21

Octal Numbers

To convert octal to binaryReplace each octal digit by 3-bit binary equivalentFinally remove the extra 0s from MSB & LSBe.g. (1352.12)8

= (001 011 101 010 . 001 010)2

= (001 011 101 010 . 001 010)2

= (1 011 101 010 . 001 01)2

22

Hex Conversion

Hex digits are: 0, 1, … 9, A, B, C, D, E, FA is 10B is 11C is 12D is 13E is 14F is 15

Each hex digit can be in the range 0 to 15

23

Hex ConversionTo convert hex to decimal

e.g. (2EA)16= 2 x 162 + 14 x 161 + 10 x 160

= 512 + 224 + 10= (746)10

To convert decimal to hexDivide the number by 16 repeatedlye.g. (746)10

746 / 16 = 46 … 10 (A)46 / 16 = 2 … 14 (E)2 / 16 = 0 … 2 Answer: (2EA)16

24

Hex ConversionTo convert binary to hex

Partition the binary digits into groups of 4 bits eachAdd necessary 0s to left and righte.g. (10 1110 1010)2 = (2 E A)16

To convert hex to binaryReplace each hex digit by 4-bit binary equivalent and remove the extra 0se.g. (2EA)16 = (0010 1110 1010)2

2 E A

25

Method 3: Convert via Octal

Convert decimal to octal firstDivide by 8 repeatedly, and we have(746)10 = (1352)8

Now convert octal to binaryReplace each octal digit by 3-bit binary equivalent and remove the extra 0s(1352)8 = (1 011 101 010)2

26

Or Via Hexadecimal

Convert decimal to hex firstDivide by 16 repeatedly, and we have(746)10 = (2EA)16

Now convert hex to binaryReplace each hex digit by 4-bit binary equivalent and remove the extra 0s(2EA)16 = (10 1110 1010)2

27

Octal and HexadecimalCompact representation of binary numbersMore convenient for people than using bit strings (3 or 4 times longer)Computer manuals usually use octal or hexadecimal numbers to specify binary quantities

e.g. memory address of computer usually written in hex. FormatWhich one more easy to read? 2EA or 001011101010

28

Binary Arithmetic

29

Binary Addition

Four cases only0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 10 (a carry of 1 to the next bit)

An XOR relation0 1

0 0 1

1 1 0The carry bit is omitted here

30

Binary Addition: Example

Compute the sum of (0110)2 and (0111)2(0110)2 = (6)10

(0111)2 = (7)10

0 1 1 00 1 1 1+)

1

00 1 1 00 1 1 1+)

0 1

1 0Carries

Sum the 2nd LSBs and the carry bit: 0 + (1 + 1) = 0 + 10 = 10

0 1 1 00 1 1 1+)

1 0 1

1 1 00 1 1 00 1 1 1+)

1 1 0 1

1 1 0

The final result is 11012 (1310)

Sum the LSBsfirst: 0 + 1 = 1

Augend

Addend

Sum

31

Binary Addition: 2nd Example

Compute the sum of (1101)2 and (0101)2(1101)2 = (13)10 ,(0101)2 = (5)10

Result should be (18)10

But…

1 1 0 10 1 0 1+)

1 0 0 1 0

1 1 0 1

Overflow (result out of range)

Addition of n-bit positive integers may produces (n+1)-bit result

0 0 1 02 = 210

1 0 0 1 02 = 1810

32

One-bit adder

A complete table defining the addition process

a b cin cout s00001111

00011001

101010

1 1

0 00 10 11 00 11 01 01 1

0 1 1 00 1 1 1+)

1 1 0 1

1 1 0ab

s

Cout cin

The resulting carry from the addition

33

Signed NumberUnsigned numbers

Either zero or positive integers, e.g. 5, 3, 0Signed numbers

An integer has a sign to indicate positive or negative numbers

Signed-magnitude, e.g. +5, -5, -3How about binary system?

The MSB be a sign bit (0 means +, 1 means -)i.e. +5 = 0101, -5 = 1101 (4-bit system, 3 bits for magnitude)

34

Negative Binary NumberHow to compute the sum if they involve negative numbers?

e.g. assume 4-bit binary system is used, compute (+5) + (-3)+5 = 01012-3 = 10112Result is 100002 (overflow and incorrect!)

Another problem0000 (positive zero)1000 (negative zero)Any difference between them? Cause confusion!

35

How to represent negative binary?

The MSB is still a sign bit Positive number, +a, is still stored as usual

e.g. +5 = 01012, 0 = 00002 (0 means positive)Negative number, -a, is stored as 2n - a

e.g. -3= 24 – 3= 16 – 3= 13= 11012

This is called two’s complement format

36

Two’s ComplementThe largest number can be stored is 2n-1 - 1for n-bit binary system

e.g. 7 (i.e. 01112) for 4-bit binary

The smallest number can be stored is -2n-1

e.g. -8 (i.e. 10002) for 4-bit binary

Binary Unsigned Signed0000 0 0

1010 10 -6

1011 11 -5

… … …

0001 1 +1

0010 2 +2

0011 3 +3

0100 4 +4

0101 5 +5

0110 6 +6

0111 7 +7

1000 8 -8

1001 9 -7

1110 14 -2

15 -11111

37

Find the Two’s Complement

Negative number, -a, is stored as 2n - aNot convenient to compute 2n – aAn easier way to find the 2’s complement

Step 1) Find the binary equivalent of the magnitudeStep 2) Complement each bit (i.e. 0’s to 1’s, 1’s to 0’s) (this is 1’s complement)Step 3) Add 1 (this is 2’s complement)

38

3 Examples

0 1 0 1

1 0 1 0

+)

1 0 1 1

1

Complement the bits

Magnitude

= 5 =

Add 1

0 0 0 1

1 1 1 0

+)

1 1 1 1

1

a) -5 b) -1

0 0 0 0

1 1 1 1

+)

0 0 0 0

1

c) -0

The carry bit is ignored here

Find the 2’s complement of -5, -1 and 0

Magnitude

= 1 =

Magnitude

= 0 =

39

Find the magnitude

Now giving a negative number that stored in 2’s complement format, how can you tell the magnitude?Two methods

1) reverse the process of 2’s complementi.e. Subtract 1, then complement

2) complement first, then add 1Addition is easier than subtraction

40

Example: Find the magnitude

1 0 1 1

1-)

1 0 1 0

0 1 0 1

subtract 1

= (5)10

complement

-5 1 0 1 1

0 1 0 0

+)

0 1 0 1

1

complement

add 1

Method 1: Method 2:

Compute the magnitude of binary no. (1011)2 which is stored in 2’s complement format

-5

= (5)10

41

1’s & 2’s ComplementFor a n-digit binary number,

The sum of the number and its 1’s complement will be 1…1 (n 1s) = 2n - 1The sum of the number and its 2’s complement will be 10…0 (n 0s) = 2n

e.g. -a is represented as 2n - a in 2’s complement format

a + -a = a + (2n - a)= 2n

42

Back to the Addition Problem

Now we know how to represent negative binary numbersHow to do addition?

1 0 1 1

1 1 1 0

0 0 1 1

- 5

- 2

+ 3

Example 1:

1 0 1 1

1 0 0 0 0

0 1 0 1

- 5

0

+ 5

Example 2:

The carry outs are ignored

1 0 1 1

1 0 0 1 0

0 1 1 1

- 5

2

+ 7

Example 3:

43

Overflow

There is a limitation in additionWhen the sum is out of range, we call it overflowe.g. For 4-bit system, sum = a + b

The range of sum: -8 ≤ sum ≤ +7Overflow when sum < -8, or sum > 7Note: overflow will occur even if a and b are in the range!

44

Overflow Example0 1 0 1

1 0 0 1

0 1 0 0

+ 5

+ 9

+ 4-7?

Both +5, +4 are in the range

1 1 0 1

(1) 0 1 1 1

1 1 0 0

- 5

- 9

- 4+7?

Both -5, -4 are in the range

Overflow may occur if the two no. are of the same signBut addition of opposite signs will never produces overflow (why?)

45

Binary Subtraction

Subtraction can be accomplished by 1) taking the 2’s complement of the 2nd

operand2) then perform addition

Work for both signed and unsigned numbersi.e. a – b is computed as a + (-b)

46

Binary Subtraction Example

0 1 1 1

(1) 0 0 1 0

1 0 1 1

+ 7

+ 2

– 52’s complement

of +5

Compute 7 – 5:

Ignore the carry out

0 1 1 1

1 1 0 0

0 1 0 1

+ 7

+12

– – 52’s complement

of -5

Compute 7 – (–5):

-4? overflow

47

Radix ComplementThere are 2 types of complement for any radix-rnumber system

r’s complement & (r-1)’s complementBinary system: 2’s & 1’s complementDecimal system: 10’s & 9’s complement

For a n-digit radix-r number systemThe (r-1)’s complement of number a is

r n - a - 1

The r’s complement of number a isr n - a

48

ExampleGiven a decimal number 35, compute its 10’s and 9’s complement

a = 35Radix r = 10No. of digits n = 29’s complement = 102 - 35 - 1 = 6410’s complement = 102 - 35 = 65

49

Subtraction with ComplementFor radix-r number system, the general form of subtraction is

a – b= a + (r’s complement of b)= a + (rn – b)= a – b + rn

If a > b, the sum is a positive numbera – b + rn = a – b if we discard the carry out (i.e. rn)

If a < b, the sum is a negative numbera – b + rn = rn – (b – a) = r’s complement of (b – a)

50

Codes in Digital World

51

Decimal Codes

Computer systems operate on binary no.Human use decimalWhen communicate with computer systems

Input: convert decimal no. to binaryProcess: perform arithmetic calculations in binaryOutput : convert binary result back to decimal

52

Binary Coded Decimal (BCD)

Computer can accept binary values onlyMust represent the decimal digits by a code that contains 1s and 0sCalled binary coded decimal (BCD)Possible to perform arithmetic operations directly with BCD

53

BCD Example739 would be stored as

011100111001 (12 bits in series)

There are several BCD codes8421 code5421 code2121 codeExcess 3 code2 of 5 codes

7 3 9Compare with the binary representation of 73910

= 10111000112

10 bits only!

54

8421 Code8421 code is a kind of weighted codeUse 4-bit to represent a decimal digit8, 4, 2, 1 are the weight of the bits

Code: a3a2a1a0Value: (8 x a3) + (4 x a2) + (2 x a1)+ (1 x a0)

ExampleCode: 0110Value: (8 x 0) + (4 x 1) + (2 x 1)+ (1 x 0)= 4 + 2 = 6

55

Three Weighted CodesValue

(decimal digit) 8421 code 5421 code 2421 code

0 0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

0000

10000

0001

0010

0011

0100

1000

1001

1010

1011

1100

0101

0110

0111

1101

1110

0001

2 0010

3 0011

4 0100

5 1011

6 1100

7 1101

8 1110

9 1111

0101

0110

0111

1000

1001

1111 1010

unused

The code are the same for the first 5 digits

(5 x 1) + (4 x 0) + (2 + 1) + (1 x 1)= 5 + 2 + 1= 8

(2 x 1) + (4 x 1) + (2 + 1) + (1 x 0)= 2 + 4 + 2= 8

4-bit codes have 16 combinations, but we just use 10 of them. The remaining 6 codes are unused (redundancy)

56

2421 CodeA self-complementing code (9’s complement)

The complement of 0 is 9 (0000 ↔ 1111)The complement of 1 is 8 (0001 ↔ 1110)The complement of 2 is 7 (0010 ↔ 1101)The complement of 3 is 6 (0011 ↔ 1100)The complement of 4 is 5 (0100 ↔ 1011)

Evenly distribution of 1s and 0sEach bit has exactly five 1s and five 0s for the ten decimal values

57

Excess 3 Code (XS3)Value

(decimal digit) 8421code Excess 3 code

0 0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

10011

0100

0101

0110

0111

1000

1001

1010

1011

1100

0000

0001

0010

1101

1110

23456789

unused

1111

Excess 3 code is a shifted 8421 code

XS3’s 0 = 8421 code’s 3

XS3’s 1 = 8421 code’s 4

Evenly distribution of 1s and 0s

8421 code: the MSB has eight 0s, only two 1s

XS3: each bit has exactly five 1s and five 0s

9’s complement code:Complement of 0 is 9 (0011 ↔ 1100)Complement of 1 is 8 (0100 ↔ 1011)…Complement of 4 is 5 (0111 ↔ 1000)

58

2 of 5 CodeValue

(decimal digit) 2 of 5 Code

0 11000

10100

10010

10001

01100

01010

01001

00110

00101

00011

the rest of the 22

patterns with 0, 1, 3, 4 or 5 1’s

123456789

unused

Use 5 bits to represent each digit

exactly two 1s and three 0s for all code

Advantage: capable for error detection

If an error is made in just one of the bits during storage or transmission (the result will contain either one or three 1’s), can be detected as an error

Any limitation in error detection?

59

BCD SummaryWeighted code

8421, 5421, 2124 codesNon-weighted code

XS3, 2 of 5 codesCode that self-complementing

2124, XS3 codesCode that able to detect error

2 of 5 codeCode that easy to determine negative number

5421, 2421, XS3 codes (why?)

60

Determine Negative NumbersFor a signed 10’s complement (decimal) number, the first digit of that number would be in the range of 5 to 9 for negative numbersIn 5421, 2421 and XS3 codes, correspond to the first bit of the no. being 1

For these 3 codes, the first bit of no. 0 to 4 is “0”, while the first bit of no. 5 to 9 is “1”

Therefore, only check 1 bit can determine if it is a negative number

More complex logic is required for 8421, 2 of 5 codes

61

BCD drawbacks

Inefficiency of storageUsed 10 out of 16 combinations (weighted codes and XS3 code)Used 10 out of 32 combinations (2 of 5 code)

Complex arithmetic calculation

62

Example: 8421 Code Addition

0 1 1 1

1 1 0 1

0 1 1 0

7

1 3

6

The 8421 code representation of decimal 7 and 6

Compute 7 + 6:

1 1 0 1

1 0 0 1 1

0 1 1 0If the result is an unused code, add 110 to it

1

The resultant value is unused in 8421 code!

3Result is correct now

63

Example: 8421 Code Addition

1 0 0 1

1 0 0 1 0

1 0 0 1

9

1 8

9

The 8421 code representation of decimal 9

Compute 9 + 9:

1 0 0 1 0

1 1 0 0 0

0 1 1 0Also add 110 to it

1

The resultant value has a carry out!

8Result is correct now

64

ASCII CodeAmerican Standard Code for Information InterchangeTo store alphanumeric information

AlphaLetters: A, B, C, …, Z, a, b, c, …, zSymbols: ?, !, #, @, (, space, tab …

Numeric: 0, 1, 2, …, 9Control signals: carriage return, delete, Esc, break…

7-bit, to code various characters on standard keyboard

65

100 1100 110 1111

110 0111 110 1001 110 0011

ASCII Code TableASCII Code Value

000 0000 NULL

… …

010 0000 Space

010 0001 ! (exclamation mark)

010 0010 “ (double quote)

… …

011 0000 0

011 0001 1

… …

011 1010 : (colon)

… …

100 0001 A

… …

101 1010 Z

… …

110 0001 a

… …

111 1010 z

… …

control signals

symbols

numeric characters

capital letters

symbols

small letters

symbols

symbols

The word Logic would be coded as:

L o

g i c

(Please refer to the complete ASCII table in your book)

011 0111 011 0011 011 1001

739 would be coded as:

7 3 9

66

Bit Changes in CodeLook at the BCD code table, the no. of bits that change from one binary value to the next variesMultiple bit changes may not be good for some applicationsIn 1953, Frank Gray invented a code that has one-bit fixed difference between adjacent code word

Value 8421 code0 0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

123456789

1-bit changes

2-bit changes

3-bit changes

67

Gray CodeNumber Gray code

0123456789101112131415

0000

0001

0011

0010

0110

0111

0101

0100

1100

1101

1111

1110

1010

1011

1001

1000

00000001

01110101

11101010

Consecutive numbers differ in one bit only, but can you memorize the pattern?

68

Gray Code

A class of unit distance codeNo need to memorize the Gray code tableWe can compute the Gray code easily

Step 1) Convert to binary number firstStep 2) Add a leading 0 to the MSBStep 3) XOR each two adjacent bits

69

Example: Gray Code

Find the Gray code of decimal value 13(1 3)10 = (1 1 0 1)2

(0 1 1 0 1)2

1 0 1 1

Convert to binary number

Add a leading 0 to the MSB

XOR each two adjacent bits

The Gray code of 13♁ ♁ ♁ ♁

70

Example: Convert to Binary

Given a Gray code 10001011, find its representing decimal value

1 0 0 0 1 0 1 1

1 1 1 10 0

10

= (1 1 1 1 0 0 1 0)2 = (242)10

If the code has leading 0s, remove them

Set the output bit as 1

Starting from MSB, replace each bit in the Gray code to the output bit

If meet an one in the Gray code, complement the output bit

And continue to replace process

The representing decimal value

71

Parity and Error Correction

72

Data Communication

The transmission of data over a channel may result in error (e.g. interference, noise)Some schemes are developed to detect and/or correct the error(s)We have to insert extra bits in the data

73

Parity Bit

The simplest method for error detectionAn additional bit is added, called parity bitThe value of parity bit is set to make the total no. of 1s in the resulting code word either even or odd

74

Even / Odd Parity Bit

1000 10001 10000

1010 10100 10101

Original code word Even parity Odd parity

no. of 1s = 2 (even) no. of 1s = 3 (odd)no. of 1s = 2

Original Code: a1 a2 a3 a4 (4-bit)Even Parity bit a5 = a1 ♁ a2 ♁ a3 ♁ a4

Odd Parity bit a5 = a1 ♁ a2 ♁ a3 ♁ a4 ♁ 1Parity: a1 a2 a3 a4 a5 (5-bit)

75

Error DetectionAssume even parity is usedIf the received code word is 01011Total no. of 1s in code word is 3 (odd no.)Conclusion: errors occurred during transmission (at least 1 bit has been changed)Limitation

Able to detect 1, 3 or any odd no. of error bitsBut an even no. of errors is undetected!

76

Vertical Longitudinal Parity Bits

The previous method can detect error, but can’t correct errorBecause it cannot locate the error bitHow about if we have a two-dimension parity bits?

77

Example: Error Correction1 0 0 01 0 1 00 1 1 01 0 1 1

1 0 0 0 11 0 1 0 00 1 1 0 01 0 1 1 1

The original block of code

Even parity

1 1 1 1 0

Parity bit for its row

Parity bit for its column

1 0 0 0 11 0 1 0 00 1 0 0 01 0 1 1 11 1 1 1 0

Received block of code

Error detected in this row (one 1s)

Error detected in this column (three 1s)

Error bit has been located!

1 0 0 0 11 0 1 0 00 1 1 0 01 0 1 1 11 1 1 1 0

Received block of code

Error corrected

78

Limitation

Consume a lot of bits for error detection and correctionOnly work for single error in a row (or column)Able to detect double error in the same row (or columns), but not able to correct them (why?)

79

Further Reading

Introduction to Logic DesignChapter 1.1 A brief review of number systems

Digital Logic Circuit Analysis & DesignChapter 1 Number Systems and Codes

80

OBTL: upon completion of this lecture, you should able to …

express a radix-r number in the polynomial formperform number conversion between different radix systemsperform binary arithmeticunderstand the concept of complement numbers and signed numbers representationsexpress signed number in signed magnitude, 1's complement, and 2's complement formatsperform 2’s complement and 1’s complement number arithmeticexpress numbers in different BCD formatperform BCD addition and subtractionrecognize Gray codeexpress number in the ASCII formatunderstand the concept of error detection and error correctionderive and perform single error detection and single error correction using parity bits

Self evaluation: Please tick the items that you are able to complete

81

Level of achievementExcellent

Able to apply learned knowledge to solve unseen problems

WellAble to perform arithmetic operations on different number systemsAble to perform error detection and correction using parity bits

BasicUnderstand the concept of number systemsAble to apply correct formulae to convert numbers

Self evaluation: Please tick the appropriate box and mark the date of evaluation

top related