EET 1131 Unit 7 Arithmetic Operations and Circuits
Transcription
EET 1131 Unit 7 Arithmetic Operations and Circuits
EET 1131 Unit 7 Arithmetic Operations and Circuits Read Kleitz, Chapter 7, skipping Sections 7-4, 7-5, and 7-8. Homework #7 and Lab #7 due next week. Quiz next week. Binary Addition The rules for binary addition are 0+0=0 Sum = 0, carry out = 0 0+1=1 Sum = 1, carry out = 0 1+0=1 Sum = 1, carry out = 0 1 + 1 = 10 Sum = 0, carry out = 1 When a carry in = 1 due to a previous result, the rules are 1 + 0 + 0 = 01 1 + 0 + 1 = 10 1 + 1 + 0 = 10 1 + 1 + 1 = 11 Sum = 1, carry out = 0 Sum = 0, carry out = 1 Sum = 0, carry out = 1 Sum = 1, carry out = 1 © 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved Binary Addition Add the binary numbers 00111 and 10101 and show the equivalent decimal addition. 0111 00111 10101 7 21 11100 = 28 © 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved Binary Subtraction, Multiplication, Division The textbook also gives rules for doing binary subtraction, multiplication, and division. From a practical standpoint, though, it’s easier to do one of the following: Either convert the numbers from binary to decimal, then perform the arithmetic operation, then convert back to binary. Or use Windows Calculator to perform these operations directly on binary numbers. Half-Adder Basic rules of binary addition are performed by a half adder, which has two binary inputs (A and B) and two binary outputs (Carry out and Sum). The inputs and outputs can be summarized on a truth table. Inputs Outputs A 0 0 1 1 B 0 1 0 1 Cout 0 0 0 1 S 0 1 1 0 The logic symbol and equivalent circuit are: A S S S A B Cout B Cout © 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved Full-Adder Inputs By contrast, a full adder has three binary inputs (A, B, and Carry in) and two binary outputs (Carry out and Sum). The truth table summarizes the operation. A full-adder can be constructed from two half adders as shown: A A S S A S S A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 Outputs Cin 0 1 0 1 0 1 0 1 Cout 0 0 0 1 0 1 1 1 S 0 1 1 0 1 0 0 1 Sum S B B Cout B A Cout B Cin Cin Cout S Cout Symbol for Full Adder © 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved Full-Adder 1 A 0 B For the given inputs, determine the intermediate and final outputs of the full adder. S S 1 A Cout 0 B S S 0 Cout 1 1 Sum Cout 1 The first half-adder has inputs of 1 and 0; therefore the Sum =1 and the Carry out = 0. The second half-adder has inputs of 1 and 1; therefore the Sum = 0 and the Carry out = 1. The OR gate has inputs of 1 and 0, therefore the final carry out = 1. © 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved Full-Adder Notice that the result from the previous example can be read directly on the truth table for a full adder. Inputs A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 Outputs Cin 0 1 0 1 0 1 0 1 Cout 0 0 0 1 0 1 1 1 S 0 1 1 0 1 0 0 1 1 A 0 B 1 S S 1 A Cout 0 B S S 0 Cout 1 Sum Cout 1 © 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved Convention for Writing Multi-Bit Numbers We’ll use subscripts to refer to the individual bits in a binary number. The bit on the right-hand end, or least significant bit (LSB), always gets the smallest subscript, which may be either 1 or 0. Example: In a four-bit number A, the bits are labeled either A4A3A2A1 or A3A2A1A0 Parallel Adders Full adders are combined into parallel adders that can add binary numbers with multiple bits. A 4-bit adder is shown. A4 B4 A3 B3 A2 B2 A1 B1 C0 A B Cin Cout S C4 S4 A B Cin Cout C3 S S3 A B Cin Cout C2 S S2 A B Cin Cout C1 S S1 © 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved Parallel Adders The logic symbol for a 4-bit parallel adder is shown. This 4-bit adder includes a Carry In (labeled C0) and a Carry Out (labeled C4). Binary number A Binary number B Carry In 1 2 3 4 1 2 3 4 C0 S 1 2 3 4 C4 4-bit sum Carry Out The 74283 is an example. © 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved Two Adder Chips 74283 Four-bit binary adder 7483 is an older chip that is functionally identical to the 74283, but the pins are laid out differently Cascading Parallel Adders When we connect the outputs from one circuit to the inputs of another identical circuit to expand the number of bits being operated on, we say that the circuits are cascaded together. For example, you can cascade two 4-bit parallel adders to add two 8-bit numbers. To do this, connect the lowerorder adder’s Carry Out to the higher-order adder’s Carry In. See textbook’s Figure 7-18 (next slide). © 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved Arithmetic Logic Unit (ALU) Central to any computer system is its ALU, which performs mathematical and logical operations on data. In modern systems, the ALU is contained on the computer’s microprocessor chip. In older systems, the ALU was a separate chip, such as the 74181. How Many Logical Operations? You already know how to perform some logical operations on two input bits, A and B. Examples: X = AB X = A+B Question: How many possible logical operations are there on two input bits? How Many Logical Ops? (Continued) A B 0 0 0 1 1 0 1 1 Let’s list them all: 74181 ALU chip Can perform 16 logical operations (bitby-bit) and 16 arithmetic operations on two 4-bit input numbers. Data Sheet: 74LS181 See next slide (Fig. 7-27 from textbook) for logic symbol and function table. Figure 7.27 The 74181 ALU: (a) logic symbol; (b) function table. Digital Electronics: A Practical Approach with VHDL, 9th Edition William Kleitz Copyright ©2012 by Pearson Education, Inc. All rights reserved. 74181 ALU (Continued) Caution: In the “Arithmetic Operations” columns of the 74181 function tables, the + symbol always means logical OR, not addition. The word “PLUS” is used for addition. 74181 ALU (Continued) Fourteen Input Pins: A0 to A3 form one of the 4-bit inputs. B0 to B3 form the other 4-bit input. CN is the carry-in bit, used only during arithmetic ops (ignored during logic ops). M is the mode pin (arithmetic or logic). S0 to S3 select the operation performed. 74181 ALU (Continued) Eight Output Pins: F0 to F3 form the 4-bit output. CN+4 is carry-out bit, meaningful only for arithmetic ops. (Ignore it for logic ops.) A=B is comparison bit, meaningful only when performing “A MINUS B” operation. (We’ll ignore this.) P and G are carry-look-ahead bits for high-speed arithmetic, when 74181 is used in conjunction with 74182 chip. (We’ll ignore these.) Terminology: One’s-Complement and Two’s-Complement The one’s-complement of a binary number is the binary number that you get when you invert each bit. Example: What is the one’s-complement of 00110101? The two’s-complement of a binary number is the binary number that you get when you invert each bit and then add 1 to the result. What is the two’s-complement of 00110101? Interpreting Strings of 1s and 0s In digital systems we have nothing but 1s and 0s to represent all kinds of info: text, numbers, images, music, etc. To interpret a string of 1s and 0s, you have to be told what kind of info it represents. Example: What does 010000012 represent? Possible answers: The number 65. The letter A (in ASCII code). … Unsigned versus Signed Binary Integers Up to now, whenever we’ve worked with binary numbers, we’ve assumed they were unsigned binary integers. In other words, we’ve assumed that the numbers were all positive. Sometimes we also need to be able to represent negative integers, in which case we’re dealing with signed binary integers. To do this, we’ll use one bit to indicate the number’s sign (positive or negative). Range of Unsigned Binary Integers Arranging unsigned 8-bit integers in order from least to greatest would give you a list that starts and ends like this: Binary 00000000 00000001 00000010 11111101 11111110 11111111 Decimal 0 1 2 253 254 255 Range of Unsigned Binary Integers For unsigned integers with a fixed number of bits n: The least integer we can represent is 0. The greatest integer we can represent is 2n-1. Example: Using 8 bits, The least integer is 000000002, which is equal to decimal 0. The greatest integer is 111111112, which is equal to decimal 255 (=28-1). Representing Signed Binary Integers To represent both positive and negative integers, we use the leftmost bit as a sign bit, like this (for 8 bits): Negative integers (sign bit = 1) Zero and positive integers (sign bit = 0) Binary 10000000 10000001 10000010 11111111 00000000 00000001 01111110 01111111 Decimal -128 -127 -126 -1 0 1 126 127 Two’s-Complement Representation The scheme shown on the previous slides is called two’s-complement representation. This is how computers represent signed integers, because this scheme results in simple circuits for doing binary arithmetic. Other common names for it: two’s complement notation or two’s complement form. Range of Signed Binary Integers For signed integers with a fixed number of bits n, the least integer we can represent is −2n−1, and the greatest integer we can represent is 2n−1−1. Example: Using 8 bits, The least integer we 100000002, which is −128 (= −27). The greatest integer 011111112, which is 127 (= 27-1). can represent is equal to decimal we can represent is equal to decimal Steps for Converting from Decimal to Two’s-Complement Form 1. 2. If the integer is positive, convert it to binary as we’ve always done. If the integer is negative: a) b) c) Ignoring the sign, convert it to binary as we’ve always done. Invert each bit. (That is, change each 0 to 1, and change each 1 to 0.) Add 1 to the result. Examples Convert 2310 to two’s complement form using 8 bits. Convert −2310 to two’s complement form using 8 bits. Steps for Converting from Two’sComplement Form to Decimal 1. 2. If the sign bit = 0, the integer is positive. Convert to decimal as we’ve always done. If the sign bit = 1, the integer is negative. Follow these steps: Invert each bit. b) Add 1. c) Convert the result to decimal as we’ve always done. d) Write a negative sign in front. Examples: Convert 01100010 to decimal. Convert 11100010 to decimal. a) Adding Signed Numbers Using two’s complement form for negative integers simplifies addition and subtraction of signed numbers. Rules for addition: Add the two signed numbers. Discard any final carry out of the MSB. The result is in two’s complement form. Examples: 00011110 30 + 00001111 + 15 00101101 45 00001110 14 +11101111 + -17 11111101 -3 11111111 -1 + 11111000 + -8 111110111 -9 Discard carry © 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved Subtracting Signed Numbers Rules for subtraction: Negate the number being subtracted, and then add. Discard any final carry out of the MSB. The result is in two’s complement form. Us the same numbers as on previous slide, but subtract: 00011110 30 - 00001111 – 15 00001110 14 - 11101111 – -17 11111111 -1 - 11111000 – -8 Negate the number being subtracted, and then add: 00011110 30 +11110001 +-15 100001111 15 Discard carry 00001110 14 + 00010001 +17 00011111 31 11111111 -1 + 00001000 + 8 100000111 7 Discard carry © 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved An Adder/Subtractor Circuit By combining parallel adder chips (such as the 74283 or the 4008) with a controlled inverter, we can make a circuit that either adds or subtracts, depending on the value of a control input. See next slide (Fig. 7-23 from textbook). Figure 7.23 8-bit two’s-complement adder/subtractor illustrating the subtraction 42 – 23 = 19. Digital Electronics: A Practical Approach with VHDL, 9th Edition William Kleitz Copyright ©2012 by Pearson Education, Inc. All rights reserved.