Presentation is loading. Please wait.

Presentation is loading. Please wait.

Subtractors Module M8.2 Section 6.2. Subtractors Half Subtractor Full Subtractor Adder/Subtractor - 1 Adder/Subtractor - 2.

Similar presentations


Presentation on theme: "Subtractors Module M8.2 Section 6.2. Subtractors Half Subtractor Full Subtractor Adder/Subtractor - 1 Adder/Subtractor - 2."— Presentation transcript:

1 Subtractors Module M8.2 Section 6.2

2 Subtractors Half Subtractor Full Subtractor Adder/Subtractor - 1 Adder/Subtractor - 2

3 Half Subtractor CABD 0001 0 0 0 1 1 1 1 0 1 1 0 0 A 0 B 0 D 0 C 1 0 1 2 1

4 Full Subtractor 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 1 C i A i B i D i C i+1 11 11 CiCi AiBiAiBi 00011110 0 1 DiDi D i = C i $ (A i $ B i ) Same as S i in full adder

5 Full Subtractor 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 1 C i A i B i D i C i+1 CiCi AiBiAiBi 00011110 0 1 1 111 C i+1 C i+1 = !A i & B i # C i & !A i & !B i # C i & A i & B i

6 Full Subtractor C i+1 = !A i & B i # C i & !A i & !B i # C i & A i & B i C i+1 = !A i & B i # C i & (!A i & !B i # A i & B i ) C i+1 = !A i & B i # C i & !(A i $ B i ) Recall: D i = C i $ (A i $ B i ) C i+1 = !A i & B i # C i & !(A i $ B i )

7 Full Subtractor D i = C i $ (A i $ B i ) C i+1 = !A i & B i # C i & !(A i $ B i ) half subtractor

8 subtract.abl MODULE subtract TITLE 'Subtractor, A. Student, 7/12/02' DECLARATIONS " INPUT PINS " A3..A0 PIN 6, 7, 11, 5; " Switch 1..4 A = [A3..A0]; " 4-bit operand B3..B0 PIN 72, 71, 66, 70; " Switch 5..8 B = [B3..B0]; " 4-bit subtrahend " OUTPUT PINS " D3..D0 PIN 39, 37, 36, 35 ISTYPE 'com'; " LED 5..8 D = [D3..D0]; " 4-bit difference BF PIN 40 ISTYPE 'com'; " LED 4; borrow flag

9 subtract.abl (cont’d) " INTERMEDIATE NODES " C4..C0 NODE ISTYPE 'com'; " internal borrow vector Cin = [C3..C0]; Cout = [C4..C1]; EQUATIONS C0 = 0; D = C $ A $ B ; Cout = !A & B # Cin & !(A $ B); BF = C4; END subtract D i = C i $ (A i $ B i ) C i+1 = !A i & B i # C i & !(A i $ B i )

10 Adder/Subtractor - 1 A 0 B 0 D 0 C 1 A 0 B 0 S 0 C 1 Half adder Half subtractor E = 0: Half adder E = 1: Half subtractor

11 Adder/Subtractor-1 i+1 E = 0: Full adder E = 1: Full subtractor

12 addsub1.abl i+1 EQUATIONS Cout = Cin & (E $ (A $ B)) # (E $ A) & B ; C4..C0 NODE ISTYPE 'com'; " internal borrow vector Cin = [C3..C0]; Cout = [C4..C1];

13 Adder/Subtractor-2

14 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 C i A i B i S i C i+1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 C i A i B i S i C i+1 Full Adder Reordered Full Adder 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 1 C i A i B i D i C i+1 Full Subtractor NOT

15 Making a full subtractor from a full adder

16 Adder/Subtractor-2 E = 0: 4-bit adder E = 1: 4-bit subtractor

17 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

18 Question Subtract the following 4-bit binary numbers 10110110 11001011 What is the answer in hex? Was there a net borrow?


Download ppt "Subtractors Module M8.2 Section 6.2. Subtractors Half Subtractor Full Subtractor Adder/Subtractor - 1 Adder/Subtractor - 2."

Similar presentations


Ads by Google