Full Subtractor in Digital Logic
A Full Subtractor is a combinational circuit used to perform binary subtraction. It has three inputs:
- A (Minuend)
- B (Subtrahend)
- B-IN (Borrow-in from the previous stage)
It produces two outputs:
- Difference (D): The result of the subtraction.
- Borrow-out (B-OUT): Indicates if a borrow is needed for the next stage.
The full subtractor is essential because a half-subtractor can only subtract the least significant bit (LSB) of binary numbers. However, if a borrow is generated during the subtraction of the LSBs, it will affect the subtraction in the next stages. A full subtractor handles this situation by considering the borrow from the previous stage, ensuring accurate subtraction even when a borrow is present.
The full subtractor is used to subtract binary numbers with borrow handling, making it suitable for multi-bit subtraction in digital circuits like Arithmetic Logic Units (ALUs).

Truth Table of Full Subtractor
Input | Output | |||
|---|---|---|---|---|
A | B | Bin | D | Bout |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
K-Map for Full Subtractor
From above table we can draw the K-Map as shown for "difference" and "borrow".

Logical expression for difference
The basic expression is:
D = A'B'Bin + A'BBin' + AB'Bin' + ABBin
Factoring common terms:
D = Bin(A'B' + AB) + Bin'(AB' + A'B)
Recognizing XOR and XNOR properties:
A'B' + AB = A XNOR B
AB' + A'B = A XOR B
Substituting these values:
D = Bin(A XNOR B) + Bin' (A XOR B)
Using XNOR identity:
D = Bin ⊕ (A ⊕ B)
Thus, the final simplified expression for the difference in a full subtractor is:
D = (A ⊕ B) ⊕ Bin

Logical expression for borrow
The borrow (Bout) output is derived as follows:
The basic expression:
Bout = A'B'Bin + A'BBin' + A'BBin + ABBin
Factoring common terms:
Bout = A'Bin(B + B') + A'B(Bin + Bin') + BBin(A + A')
Simplifying:
Bout = A'Bin + A'B + BBin
Alternatively, using another approach:
Bout = A'B'Bin + A'BBin' + A'BBin + ABBin
Factoring common terms:
Bout = Bin(AB + A'B') + A'B(Bin + Bin')
Using XOR and XNOR properties:
AB + A'B' = A XNOR B
Substituting these values:
Bout = Bin(A XNOR B) + A'B
Using XNOR identity:
Bout = Bin (A XOR B)' + A'B
Thus, the final simplified expression for borrow in a full subtractor is:
Logic Circuit for Full Subtractor

Implementation of Full Subtractor using Half Subtractors
2 Half Subtractors and an OR gate is required to implement a Full Subtractor.

In terms of propagation delay, the critical path in a ripple-borrow subtractor using full subtractors built from two half subtractors is approximately ?
-
A
2 gates per bit
-
B
3 gates per bit for borrow
-
C
4 gates per bit
-
D
Same as ripple-carry adder
Borrow path: first HS borrow → OR gate → second HS borrow input → second HS borrow output. Similar 3-gate delay per stage as in full adder carry.
The Difference output of a full subtractor is logically the same as ?
-
A
Full adder SUM
-
B
Full adder Carry-out
-
C
Half adder SUM
-
D
XOR of A and B only
Difference = A ⊕ B ⊕ Bin (identical to full adder SUM expression).
In a 4-bit ripple-borrow subtractor, where is a half subtractor typically used ?
-
A
Most significant bit (MSB)
-
B
Least significant bit (LSB)
-
C
All bits
-
D
Never
For the LSB, borrow-in is always 0, so a half subtractor is sufficient and saves gates.
Which of the following Boolean expressions is NOT equivalent to the Borrow-out of a full subtractor ?
-
A
A'B + Bin(A ⊕ B)
-
B
A'B + ABin + BBin
-
C
(A ⊕ B ⊕ Bin)' · Bin + (A ⊕ B ⊕ Bin) · A'
-
D
AB + Bin(A ⊕ B)
Option D is actually the carry-out expression of a full adder, not the borrow-out of a full subtractor.
The expression A'B + ABin + BBin can be rewritten as ?
-
A
A ⊕ B + Bin
-
B
(A ⊕ B)' · B + Bin
-
C
A'B + Bin(A ⊕ B)
-
D
AB + Bin
Both are standard equivalent forms for Bout.