Lab 10 : Arithmetic Systems : Adder System Layout: Slide #2 Slide #3 Slide #4 Slide #5 Arithmetic Overflow: 2’s Complement Conversions: 8 Bit Adder/Subtractor System:
Lab 10 : Adder system Layout : To demonstrate the process used by a digital adder system, two binary numbers will be added by hand. Add the 2 LSB’s. 1+1=10 (2 in binary) …or… 1+1 = 0 and a carry out of 1. Add Carry In = 10 Add using four bit hand addition: Carry Out of Add Carry In = Carry Out of 0 00 Ignore the Carry Out Add Carry In = 00 Answer = 4 A Cin B Cout S Adder systems are made up of modules called Full Adders. A + B + Cin (carry in) = S (sum) & Cout (carry out). A 4 bit adder requires 4 Full Adder modules. A Cin B Cout S A Cin B Cout S A Cin B Cout S Add using the adder system : A+B+Cin = S & Cout = 0 and A+B+Cin Cin must be connected to Cout A+B+Cin = S & Cout = 0 and A+B+Cin Cin must be connected to Cout A+B+Cin = S & Cout = 1 and 0 A+B+Cin Cin must be connected to Cout Answer =4 (0100) Full Adder Slide #2
Lab 10: 2’s Complement Conversion : Signed numbers encoded using 2’s complement notation can be added and subtracted using one process: “The process of addition”. Converting numbers to 2’s complement form is easy. Positive Numbers: Example: Convert +22 into 8 bit 2’s complement form. Rule : 2’s complement notation = Binary Notation Sign Bit Process: Write 22 as a 7 bit number. Make the Sign Bit =0 to denote a positive number and your done! = 22 0 Thus +22 = in 8 bit 2’s complement notation. Negative Numbers: Example: Convert -22 into 8 bit 2’s complement form. Rule : 2’s complement notation is NOT= Binary Notation. You must use a 3 step procedure to convert the negative number. Step 1: Write –22 as an 8 bit positive number From the work above: +22 = Sign Bit Step 2: Invert all bits The result of this process is called 1’s complement notation Step 3: Add 1 to this new binary pattern Thus -22 = in 8 bit 2’s complement notation. Theory: Adding a positive and a negative 2’s comp. number will subtract the 2 numbers. Test the Theory: Try 22+(-22) At first glance it does not appear to work. The 1 in the MSB is actually a carry out and can be ignored! Answer = 0 Slide #3
5 bit signed numbers will be used to demonstrate arithmetic overflow. The valid range of 5 bit numbers is –16 to +15. The range can be represented using a number line. Lab 10: Arithmetic Overflow : Arithmetic Overflow is an error that occurs when 2 numbers being added together generate an answer that requires more bits than are available for the answer Add 9+8. Each number on there own is a valid 5 bit number but there sum (17) exceeds the valid range Sign Bit (2 4 ) –ve #s. 16 (2 4 ) +ve #s. The sum turns out to be a negative number. To check which negative number it is: invert and +1 and it will convert to its equivalent +ve number. If the error goes undetected then the system would calculate 9+8 = -15 Error! Negative # Invert Add 1 Detecting Arithmetic Overflow errors is easy. All calculators and computers do it. Overflow never occurs if the 2 numbers being added have opposite sign bits. Think about it using the number line. One number on the positive side and the other on the negative side always generates a sum in between One number on this side Answer always falls in the middle NO overflow! Overflow may occur if the 2 numbers being added have the same sign bits. Think about it using the number line. Both numbers from the positive side may generate a sum that exceeds +15. Both numbers from the negative side may generate a sum that exceeds -16. Overflow from 2 positive numbers always wraps around to the negative end of the number line. In our example = Overflow from 2 negative numbers always wraps around to the positive end of the number line. For example (–9) + (-8) = +15. (-9)+(-8)+15 An overflow detection system checks the logic level of each number’s sign bit. If they are the same then it checks the sign bit of the answer. If the sign bit of the answer is different than the sign bit of each number then overflow has occurred and the system generates an error message. Slide #4
Lab 10: 8 Bit Adder/Subtractor : Two 4-bit adders are combined with XOR gates to create an 8-bit adder/subtractor system. The system will be used to add 12 + (-4) and then subtract 12 – (-4). Load the data registers with the 2 numbers: +12 and – Sign Bit Invert Add Put the system in the ADD mode. ADD/SUB =0. The XOR gates are controlled inverters and will pass the number –4 to the adders Add the numbers and show the response at the S output of the adders. 0 1 Register B Register A C C Register B Register A C C Answer is 8 [12+(-4)] Put the system in the SUB mode. ADD/SUB =1. The XOR gates are controlled inverters and will pass the inverse of the number –4 to the adders. This will make the system subtract 12-(-4) Add the numbers and show the response at the S output of the adders. 1 Register B Register A C C Register B Register A C C Answer is 16 [12-(-4)] Slide #5