Full Subtractor in Digital Logic (original) (raw)
Last Updated : 10 Apr, 2025
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).

Full Subtractor in Digital Logic
**Truth Table of Full Subtractor
| Input | Output | |||
|---|---|---|---|---|
| **A | **B | **B in | **D | **B out |
| 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".

K-Map for Difference
**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

K-Map for Borrow
**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

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.

Implementation of Full Subtractors using Half Subtractor