640 likes | 658 Views
Learn how to perform binary arithmetic functions, convert numbers to two's-complement notation, design and operate arithmetic circuits, and implement arithmetic functions using VHDL and FPGAs.
E N D
Chapter 7 Arithmetic Operations and Circuits 1
Objectives You should be able to: • Perform the four binary arithmetic functions: addition, subtraction, multiplication, and division. • Convert positive and negative numbers to signed two’s-complement notation. • Perform two’s-complement, hexadecimal, and BCD arithmetic. 2
Objectives (Continued) • Explain the design and operation of a half-adder and a full-adder circuit. • Use full-adder ICs to implement arithmetic circuits. • Explain the operation of a two’s-complement adder/subtractor circuit and a BCD adder circuit. • Explain the function of an arithmetic logic unit (ALU). • Implement arithmetic functions in FPGAs using VHDL. 3
Binary Arithmetic • Addition • When the sum exceeds 1, carry a 1 over to the next-more-significant column. • 0 + 0 = 0 carry 0 • 0 + 1 = 1 carry 0 • 1 + 0 = 1 carry 0 • 1 + 1 = 0 carry 1 5
Binary Arithmetic • Addition • General form A0 + B0 = 0 + Cout • Summation symbol () • Carry-out (Cout) 6
Binary Arithmetic • Carry-out is added to the next-more-significant column as a carry-in. 7
Binary Arithmetic • Subtraction • 0 0 = 0 borrow 0 • 0 1 = 1 borrow 1 • 1 0 = 1 borrow 0 • 1 1 = 0 borrow 0 8
Binary Arithmetic • Subtraction • General form A0B0 = R0 + Bout • Remainder is R0 • Borrow is Bout 9
Binary Arithmetic • Subtraction • When A0 borrows from its left, A0 increases by 210. 10
Binary Arithmetic • Multiplication • Multiply the 20 bit of the multiplier times the multiplicand. • Multiply the 21 bit of the multiplier times the multiplicand. Shift the result one position to the left. • Repeat step 2 for the 22 bit of the multiplier, and for all remaining bits. • Take the sum of the partial products to get the final product. 11
Binary Arithmetic • Multiplication • Very similar to multiplying decimal numbers. 12
Binary Arithmetic • Division • The same as decimal division. • This process is illustrated in Example 7-4. 13
Example 7-4 14
Two’s-Complement Representation • Both positive and negative numbers can be represented • Binary subtraction is simplified • Groups of eight • Most significant bit (MSB) signifies positive or negative 15
Two’s-Complement Representation • Sign bit • 0 for positive • 1 for negative • Range of positive numbers (8-bit) • 0000 0000 to 0111 1111 (0 to 128) • Range of negative numbers (8-bit) • 1111 1111 to 1000 0000 (-1 to -128) 16
Two’s-Complement Representation • Decimal-to-Two’s-Complement Conversion • If a number is positive, the two’s complement number is the true binary equivalent. • If a number is negative: • Complement each bit (one’s complement) • Add 1 to the one’s complement • The sign bit will always end up a 1. 18
Two’s-Complement Representation • Two’s-Complement-to-Decimal Conversion • If the number is positive (sign bit = 0), convert directly • If the number is negative: • Complement the entire two’s-complement number • Add 1 • Convert this to decimal • Result will be a negative number 19
Discussion Point • Convert the following numbers to two’s-complement form: 3510 -3510 • Convert the following two’s-complement number to decimal: 1101 1101 20
Two’s-Complement Arithmetic • Addition • Regular binary addition • Subtraction • Convert number to be subtracted to a negative two’s-complement number • Regular binary addition • Carry out of the MSB is ignored 21
Discussion Point • Add the following numbers using two’s complement arithmetic: 19 + 27 18 – 7 21 – 13 59 – 96 22
Hexadecimal Arithmetic • 4 binary bits represent a single hexadecimal digit • Addition • Add the digits in decimal • If sum is less than 16, convert to hexadecimal • Is sum is more than 16, subtract 16, convert to hexadecimal and carry 1 to the next-more-significant column 23
Hexadecimal Arithmetic • Subtraction • When you borrow, the borrower increases by 16 • See example 7-15 24
Example 7-15 25
BCD Arithmetic • Group 4 binary digits to get combinations for 10 decimal digits • Range of valid numbers 0000 to 1001 • Addition • Add as regular binary numbers • If sum is greater than 9 or if carry out generated: • Add 6 (0110) saving any carry out 26
Arithmetic Circuits • Only two inputs are of concern in the LSB column. • More significant columns must include the carry-in from the previous column as a third input. 27
Arithmetic Circuits • The addition of the third input (Cin) is shown in the truth table below. 27
Arithmetic Circuits • Half-Adder • No carry in (LSB column) • The 0 output is HIGH when A or B, but not both, is high. • Exclusive-OR function • Cout is high when A and B are high. • AND function 28
Arithmetic Circuits • The half-adder can also be implemented using NOR gates and one AND gate. • The NOR output is Ex-OR. • The AND output is the carry. 28
Arithmetic Circuits • Full-Adder • Provides for a carry input • The 1 output is high when the 3-bit input is odd. • Even parity generator • Cout is high when any twoinputs are high. • 3 AND gates and an OR 29
Arithmetic Circuits • Full-adder sum from an even-parity generator 32
Arithmetic Circuits • Full-adder carry out function 33
Arithmetic Circuits • Logic diagram of a complete full-adder 34
VHDL Description of a Full-Adder Note the concurrent statements for the two logic circuits.
Arithmetic Circuits • Block diagrams of a half-adder (HA) and a full adder (FA). 35
Arithmetic Circuits • Block diagram of a 4-bit binary adder 36
Four-Bit Full-Adder ICs • Four full-adders in a single package • Will add two 4-bit binary words plus one carry input bit. 37
Four-Bit Full-Adder ICs • Functional diagram of the 7483 • Note that some manufacturers label inputs A0B0 to A1B3 • The carry-out is internally connected to the carry-in of the next full-adder. 38
Four-Bit Full-Adder ICs • Logic diagram for the 7483. 39
Four-Bit Full-Adder ICs • Logic symbol for the 7483 39
Four-Bit Full-Adder ICs • Fast-look-ahead carry • Evaluates 4 low-order inputs • High-order bits added at same time • Eliminates waiting for propagation ripple 40
VHDL Adders Using Integer Arithmetic • Uses arithmetic operator and integer data type • Integer data type allows for values other than 1 and 0. • Integer range must be specified. • Software uses the range to determine the number of inputs required.
System Design Application • Two’s-Complement Adder/Subtractor Circuit 41
System Design Application • BCD Adder Circuit 42
System Design Application • BCD adder simulation using MultiSIM: 43
Arithmetic/Logic Units • The ALU is a multipurpose device • Available in LSI package • 74181 (TTL) • 74HC181 (CMOS) • Mode Control input • Arithmetic (M = L) • Logic (M = H) 44
Arithmetic/Logic Units • Function Select - selects specific function to be performed 45
FPGA Applications with VHDL and LPMs • FPGA implementation using macrofunctions, VHDL, and LPMs. • Library of Parameterized Modules (LPMs) are a new form of design entry in Quarus II. • Simplifies the design process for common systems like adders and ALUs. 46