ee 457 unit 2
play

EE 457 Unit 2 Fixed Point Systems and Arithmetic 2 Unsigned 2s - PowerPoint PPT Presentation

1 EE 457 Unit 2 Fixed Point Systems and Arithmetic 2 Unsigned 2s Complement Sign and Zero Extension Hexadecimal Representation SIGNED AND UNSIGNED SYSTEMS 3 Signed Systems Several systems have been used 2s complement system


  1. 1 EE 457 Unit 2 Fixed Point Systems and Arithmetic

  2. 2 Unsigned 2’s Complement Sign and Zero Extension Hexadecimal Representation SIGNED AND UNSIGNED SYSTEMS

  3. 3 Signed Systems • Several systems have been used – 2’s complement system – 1’s complement system – Sign and magnitude

  4. 4 Unsigned and Signed Variables • Unsigned variables use unsigned binary (normal power-of-2 place values) to represent numbers 1 0 0 1 0 0 1 1 = +147 128 64 32 16 8 4 2 1 • Signed variables use the 2’s complement system (Neg. MSB weight) to represent numbers 1 0 0 1 0 0 1 1 = -109 -128 64 32 16 8 4 2 1

  5. 5 2’s Complement System • MSB has negative weight • MSB determines sign of the number – 1 = negative – 0 = positive • To take the negative of a number (e.g. -7 => +7 or +2 => -2), requires taking the complement – 2’s complement of a # is found by flipping bits and adding 1 x = -7 1001 Bit flip (1’s comp.) 0110 Add 1 + 1 0111 -x = -(-7) = +7

  6. 6 Zero and Sign Extension • Extension is the process of increasing the number of bits used to represent a number without changing its value Unsigned = Zero Extension (Always add leading 0’s): 111011 = 00111011 Increase a 6-bit number to 8-bit number by zero extending 2’s complement = Sign Extension (Replicate sign bit): 011010 = 00011010 pos. Sign bit is just repeated as many times as necessary 110011 = 11110011 neg.

  7. 7 Zero and Sign Truncation • Truncation is the process of decreasing the number of bits used to represent a number without changing its value Unsigned = Zero Truncation (Remove leading 0’s): Decrease an 8-bit number to 6-bit number by truncating 0’s. Can’t 00111011 = 111011 remove a ‘1’ because value is changed 2’s complement = Sign Truncation (Remove copies of sign bit): 00011010 = 011010 pos. Any copies of the MSB can be removed without changing the numbers value. Be careful not to 11110011 = 10011 neg. change the sign by cutting off ALL the sign bits.

  8. 8 Arithmetic & Sign • You learned the addition (carry-method) and subtraction (borrow-method) algorithms in grade school • Consider A + B…do you definitely use the addition algorithm? – Not if A=5, B=(- 2)…5 + ( -2) = 5 – 2 = 3 – What if A=(2), B=(-5)? – Can’t perform 2 -5 – Flip operands and keep sign of larger • 5 – 2 = 3 => Apply sign of larger mag. operand => -3 • Human add/sub algorithm depends on sign!!

  9. 9 Unsigned and Signed Arithmetic • Addition/subtraction process is the same for both unsigned and signed numbers – Add columns right to left – Drop any final carry out • This is the KEY reason we use 2’s complement system to represent signed numbers • Examples: 1 1 If unsigned If signed 1001 (9) (-7) + 0011 (3) (3) 1100 (12) (-4)

  10. 10 Unsigned and Signed Subtraction • Subtraction process is the same for both unsigned and signed numbers – Convert A – B to A + Comp. of B – Drop any final carry out • Examples: 11_1_ If unsigned If signed 1100 (12) (-4) 1100 A - 0010 (2) (2) 1101 1’s comp. of B + 1 Add 1 (10) (-6) 1010 If unsigned If signed

  11. 11 Overflow • Overflow occurs when the result of an arithmetic operation is too large to be represented with the given number of bits – Unsigned overflow ( C ) occurs when adding or subtracting unsigned numbers – Signed (2’s complement overflow) overflow ( V ) occurs when adding or subtracting 2’s complement numbers

  12. 12 Unsigned Overflow Overflow occurs when you cross this discontinuity 0 +15 +1 0000 1111 0001 +14 +2 1110 0010 +13 +3 1101 0011 Plus 7 10 + 7 = 17 +12 1100 0100 +4 4 - 6 = 14 With 4-bit unsigned numbers we 10 1011 0101 +11 can only represent 0 – 15. Thus, +5 1010 0110 we say overflow has occurred. +10 1001 0111 +6 1000 +7 +9 +8

  13. 13 2’s Complement Overflow 0 -1 +1 0000 1111 0001 -2 +2 1110 0010 -3 +3 1101 0011 5 + 7 = +12 -4 1100 0100 +4 -6 + -4 = -10 1011 0101 -5 +5 With 4-bit 2’s complement 1010 0110 numbers we can only represent -6 1001 0111 +6 -8 to +7. Thus, we say overflow 1000 +7 -7 has occurred. -8 Overflow occurs when you cross this discontinuity

  14. 14 Testing for Overflow • Most fundamental test – Check if answer is wrong (i.e. Positive + Positive yields a negative) • Unsigned overflow ( C ) test – If carry- out of final position equals ‘1’ • Signed (2’s complement) overflow ( V ) test – Only occurs if two positives are added and result is negative or two negatives are added and result is positive – Alternate test: See following slides

  15. 15 Alternate Signed Overflow Test A & B A3 B3 S3 C3 C4 V 0 0 0 0 Both Positive 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 One Positive & One Negative 0 1 1 0 1 0 1 0 0 0 0 0 1 1 Both Negative 1 1 1 1 1 0 • Check if Cin & Cout of MSB column are different

  16. 16 Overflow in Addition • Overflow occurs when the result of the addition cannot be represented with the given number of bits. • Tests for overflow: – Unsigned: if Cout = 1 – Signed: if p + p = n or n + n = p 1 1 If unsigned If signed 0 1 If unsigned If signed 1101 (13) (-3) 0110 (6) (6) + 0100 (4) (4) + 0101 (5) (5) 0001 (17) (+1) 1011 (11) (-5) Overflow No Overflow No Overflow Overflow Cout = 1 n + p Cout = 0 p + p = n

  17. 17 Overflow in Subtraction • Overflow occurs when the result of the subtraction cannot be represented with the given number of bits. • Tests for overflow: – Unsigned: if Cout = 0 – Signed: if addition is p + p = n or n + n = p 0111_ If unsigned If signed 0111 (7) (7) 0111 A - 1000 (8) (-8) 0111 1’s comp. of B (-1) (15) + 1 Add 1 (15) (-1) 1111 Desired Results If unsigned If signed Overflow Overflow Cout = 0 p + p = n

  18. 18 Addition – Full Adders • Use 1 Full Adder for each column of addition 0110 + 0111 X Y X Y X Y X Y Full Full Full Full C out C in C out C in C out C in C out C in Adder Adder Adder Adder S S S S

  19. 19 Addition – Full Adders • Connect bits of top number to X inputs 0110 + 0111 0 1 1 0 X Y X Y X Y X Y Full Full Full Full C out C in C out C in C out C in C out C in Adder Adder Adder Adder S S S S

  20. 20 Addition – Full Adders • Connect bits of bottom number to Y inputs 0110 = X + 0111 = Y 0 0 1 1 1 1 0 1 X Y X Y X Y X Y Full Full Full Full C out C in C out C in C out C in C out C in Adder Adder Adder Adder S S S S

  21. 21 Addition – Full Adders • Be sure to connect first C in to 0 0110 = X + 0111 = Y 0 0 1 1 1 1 0 1 X Y X Y X Y X Y Full Full Full Full C out C in C out C in C out C in C out C in 0 Adder Adder Adder Adder S S S S

  22. 22 Addition – Full Adders • Use 1 Full Adder for each column of addition 01100 0110 = X + 0111 = Y 1101 0 0 1 1 1 1 0 1 X Y X Y X Y X Y 0 1 1 0 Full Full Full Full C out C in C out C in C out C in C out C in 0 Adder Adder Adder Adder S S S S 1 1 0 1

  23. 23 Performing Subtraction w/ Adders • To subtract 0101 0101 = X – Flip bits of Y + 1100 - 0011 = Y 1 1101 – Add 1 0010 X Y X Y X Y X Y Full Full Full Full C out C in C out C in C out C in C out C in Adder Adder Adder Adder S S S S

  24. 24 Performing Subtraction w/ Adders 0101 • To subtract 0101 = X + 1100 - 0011 = Y – Flip bits of Y 1 1101 0010 – Add 1 0 0 1 1 0 1 0 1 1 1 0 0 X Y X Y X Y X Y Full Full Full Full C out C in C out C in C out C in C out C in Adder Adder Adder Adder S S S S

  25. 25 Performing Subtraction w/ Adders 0101 • To subtract 0101 = X + 1100 - 0011 = Y – Flip bits of Y 1 1101 0010 – Add 1 0 0 1 1 0 1 0 1 1 1 0 0 X Y X Y X Y X Y Full Full Full Full C out C in C out C in C out C in C out C in 1 Adder Adder Adder Adder S S S S

  26. 26 Performing Subtraction w/ Adders 0101 • To subtract 0101 = X + 1100 - 0011 = Y – Flip bits of Y 1 1101 0010 – Add 1 0 0 1 1 0 1 0 1 1 1 0 0 X Y X Y X Y X Y 1 1 0 1 Full Full Full Full C out C in C out C in C out C in C out C in 1 Adder Adder Adder Adder S S S S 0 0 1 0

  27. 27 XOR Gate Review X Z Y XOR   Z X Y X Y Z 0 0 0 0 1 1 1 0 1 1 1 0 True if an odd # of inputs are true 2 input case: True if inputs are different

  28. 28 XOR Conditional Inverter • If one input to an XOR gate is 0, X Y Z the other input is passed 0 0 0 Y 0 1 1 • If one input to an XOR gate is 1, 1 0 1 Y 1 1 0 the other input is inverted • Use one input as a control input which can conditionally pass or invert the other input

  29. 29 Adder/Subtractor • Using XOR gates before one set of adder inputs we can – Selectively pass or invert Y – Add an extra ‘1’ via the Carry-in • If SUB/~ADD=0, – Z = X+Y • If SUB/~ADD=1, – Z = X-Y

  30. 30 Adder/Subtractor • Exercise: Add appropriate logic to produce – C (unsigned overflow) – V (signed overflow) flags

  31. 31 ALU Design Complete the ALU design given the function table below OP[2:0] Z 000 X+Y 001 X-Y 011 SLT: Z=1, if X<Y Z=0, other 100 AND 110 OR Others Z = und.

  32. 32 NON-REQUIRED MATERIAL

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend