Binary Subtraction Section 3 9 Mano Kime Binary
Binary Subtraction Section 3 -9 Mano & Kime
Binary Subtraction • • Review from CSE 171 Two’s Complement Negative Numbers Binary Adder-Subtractors 4 -bit Adder/Subtractor in VHDL
Half Subtractor A 0 B 0 D 0 0 0 1 1 0 1 0 1 1 0 C 1 0 0 A 0 B 0 D 0 C 1
Full Subtractor Ci Ai Bi Di Ci+1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 Ai B i 00 Ci 11 1 01 10 1 1 1 Di Di = Ci $ (Ai $ Bi) Same as Si in full adder
Full Subtractor Ci Ai Bi Di Ci+1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 Ai B i 00 Ci 11 10 1 01 1 Ci+1 = !Ai & Bi # Ci !Ai & !Bi # Ci & A i & B i
Full Subtractor Ci+1 = !Ai & Bi # Ci !Ai & !Bi # Ci & A i & B i 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)
Full Subtractor Si = Ci $ (Ai $ Bi) Ci+1 = !Ai & Bi # Ci & !(Ai $ Bi) half subtractor
Binary Subtraction • • Review from CSE 171 Two’s Complement Negative Numbers Binary Adder-Subtractors 4 -bit Adder/Subtractor in VHDL
Negative Numbers Subtract by adding 73 -35 38 10’s complement Ignore carry 73 +65 138
Negative Numbers 10’s complement: Subtract from 100 -35 65 Take 9’s complement and add 1 99 -35 64 +1 65
Negative Numbers 2’s complement: Subtract from 10000 01001101 10110011 Take 1’s complement and add 1 1111 -01001101 10110010 +1 10110011
Finding 2’s Complement remaining bits 0 1 1 0 0 0 1 0 1 0 0 0 2’s complement Copy all bits to first 1
Negative Number Take 2’s Complement 7510 = 4 B 16 = 01001011 -7510 = B 516 = 10110101 FF -4 B B 4 +1 B 5
Negative Number Take 2’s Complement 110 = 0116 = 00000001 -110 = FF 16 = 1111 12810 = 8016 = 10000000 -12810 = 8016 = 10000000
Signed Numbers 4 -bit: 8 H = -8 to 7 H = +7 1000 to 0111 8 -bit: 80 H = -128 to 7 F = +127 16 -bit: 8000 H = -32, 768 to 7 FFFH = +32, 767 32 -bit: 80000000 H = -2, 147, 483, 648 to 7 FFFFFFFH = +2, 147, 483, 647
Binary Subtraction • • Review from CSE 171 Two’s Complement Negative Numbers Binary Adder-Subtractors 4 -bit Adder/Subtractor in VHDL
Block Diagram of Binary Adder-Subtractor
Adder/Subtractor A 0 B 0 S 0 C 1 Half adder E = 0: Half adder E = 1: Half subtractor A 0 B 0 D 0 C 1 Half subtractor
Adder/Subtractor-1 Ci Di Ai Bi C E i+1 E = 0: Full adder E = 1: Full subtractor
Full Adder Reordered Full Adder Full Subtractor Ci Ai Bi Si Ci+1 Ci Ai Bi Di Ci+1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 NOT 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1
Making a full adder from a full subtractor
Adder/Subtractor-2 E = 0: 4 -bit adder E = 1: 4 -bit subtractor
4 -bit Subtractor: E = 1 +1 Add A to !B (one’s complement) plus 1 That is, add A to two’s complement of B D=A-B
Adder- Subtractor Circuit
Binary Subtraction • • Review from CSE 171 Two’s Complement Negative Numbers Binary Adder-Subtractors 4 -bit Adder/Subtractor in VHDL
A 4 -Bit Adder-Subtractor
addsub 2. vhd SD(3: 0) a(3: 0) b(3: 0) addsub 2 CB E
- Slides: 30