ENGIN 112 Intro To Electrical and Computer Engineering: Binary Adders and Subtractors
ENGIN 112 Intro To Electrical and Computer Engineering: Binary Adders and Subtractors
Lecture 14
October 3, 2003
Hardware features
Create a single-bit adder and chain together
Same hardware can be used for addition and subtraction with minor changes Dealing with overflow
What happens if numbers are too big?
October 3, 2003
A0 B0 S0 C 1
0 0 1 1
0 1 0 1
0 1 1 0
0 0 0 1
A0 B0
S0
C1
Dec Binary
1 +1 2
ENGIN112 L14: Binary Adder Subtractor
1 +1 10
October 3, 2003
A 0 1 0 1
B 0 1 1 1
A B
1 0 0 1
1 1 1 1
1 0 1 1 1 0 0
Ci+1
Ci Ai +Bi Si
Full Adder Full adder includes carry in Ci Notice interesting pattern in Karnaugh map. Ci Ai Bi Si Ci+1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 AiBi 00 Ci 0 1 1
01 1
11
10 1
Si
October 3, 2003
Full Adder Full adder includes carry in Ci Alternative to XOR implementation Ci Ai Bi Si Ci+1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 Si = # # # !Ci & !Ai & Bi !Ci & Ai & !Bi Ci & !Ai & !Bi Ci & Ai & Bi
October 3, 2003
Full Adder Reduce and/or representations into XORs Si = # # # !Ci & !Ai & Bi !Ci & Ai & !Bi Ci & !Ai & !Bi Ci & Ai & Bi
Si = !Ci & (!Ai & Bi # Ai & !Bi) # Ci & (!Ai & !Bi # Ai & Bi) Si = !Ci & (Ai $ Bi) # Ci & !(Ai $ Bi) Si = Ci $ (Ai $ Bi)
ENGIN112 L14: Binary Adder Subtractor October 3, 2003
Full Adder Now consider implementation of carry out Two outputs per full adder bit (Ci+1, Si) Ci Ai Bi Si Ci+1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 AiBi 00 Ci 0 1 1
01
11 1 1
10
Ci+1
Note: 3 inputs
October 3, 2003
Full Adder Now consider implementation of carry out Minimize circuit for carry out - Ci+1 Ci Ai Bi Si Ci+1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 AiBi 00 Ci 0 1 1 01 11 1 1 1 10
Ci+1
Ci+1 = Ai & Bi # Ci & Bi # Ci & Ai
October 3, 2003
Full Adder
Ci+1 = Ai & Bi # Ci !Ai & Bi # Ci & Ai & !Bi Ci+1 = Ai & Bi # Ci & (!Ai & Bi # Ai & !Bi) Ci+1 = Ai & Bi # Ci & (Ai $ Bi)
Recall:
Si = Ci $ (Ai $ Bi) Ci+1 = Ai & Bi # Ci & (Ai $ Bi)
ENGIN112 L14: Binary Adder Subtractor October 3, 2003
Full Adder Full adder made of several half adders Si = Ci $ (Ai $ Bi) Ci+1 = Ai & Bi # Ci & (Ai $ Bi)
Ci Ai Bi
Si
C i+1
Half-adder
ENGIN112 L14: Binary Adder Subtractor
Half-adder
October 3, 2003
Ci Ai Bi S half-adder C half-adder C
Si C i+1
A full adder can be made from two half adders (plus an OR gate).
October 3, 2003
Ai
Bi
C i+1
Full Adder
Ci
Si
Block Diagram
ENGIN112 L14: Binary Adder Subtractor October 3, 2003
4-Bit Adder Chain single-bit adders together. What does this do to delay?
A3 B3 A2 B2 A1 B1 A0 B0
Full Adder C3
Full Adder C2
Full Adder C1
Full Adder
C4
S3
S2
S1
S0
C A B S
ENGIN112 L14: Binary Adder Subtractor
1 0 0 1
1 1 1 1
1 0 1 0
0 1 1 0
October 3, 2003
110 = 0116 = 00000001 -110 = FF16 = 11111111 12810 = 8016 = 10000000 -12810 = 8016 = 10000000
October 3, 2003
4-bit Subtractor: E = 1
A3
B3
A2
B2
A1
B1
A0
B0 E
Full Adder C3
Full Adder C2
Full Adder C1
Full Adder
+1
SD0
C4
SD3
SD2
SD1
Add A to B (ones complement) plus 1 That is, add A to twos complement of B D=A-B
ENGIN112 L14: Binary Adder Subtractor October 3, 2003
October 3, 2003
Overflow in twos complement addition Definition: When two values of the same signs are added:
Result wont fit in the number of bits provided Result has the opposite sign.
Overflow?
11 10 00 1110 1101 0010 1101 1010 1100 -------- -------- -------1011 0111 1110 -2 -3 -5 -3 -6 7 OFL
October 3, 2003
2 -4 -2
Summary
Addition and subtraction are fundamental to computer systems Key create a single bit adder/subtractor
Chain the single-bit hardware together to create bigger designs
October 3, 2003