Full Subtractor
Definition
A full subtractor is a combinational logic circuit that performs subtraction of three binary bits: the minuend bit, the subtrahend bit, and the borrow-in bit from the previous lower stage. It produces two outputs: the difference and the borrow-out.
In simple form:
- Inputs:
A(minuend),B(subtrahend),Bin(borrow-in) - Outputs:
Difference (D)andBorrow-out (Bout)
It computes the subtraction:
A - B - Bin
where:
Ais the bit being subtracted from,Bis the bit being subtracted,Binis the borrow received from the previous stage.
Main Content
1. Basic Concept of Full Subtractor
- A full subtractor is designed to subtract binary digits while accounting for a borrow from a previous column, which is necessary in multi-bit subtraction.
- It is built to handle all possible combinations of three input bits, making it more complete than a half subtractor and suitable for cascading in binary subtractor circuits.
In binary subtraction, if the minuend bit is smaller than the subtrahend bit plus borrow-in, a borrow must be taken from the next higher bit. This is exactly what the full subtractor detects and represents through its borrow-out output.
For example, consider:
A = 0,B = 1,Bin = 0
Then:
0 - 1 - 0is not possible directly,- so the output is:
- Difference =
1 - Borrow-out =
1
This means the circuit borrowed from the next higher bit position.
A full subtractor therefore acts as one stage in a chain of subtractor circuits used for subtracting binary numbers of more than one bit.
2. Truth Table and Boolean Expressions
- The full subtractor operates on all 8 possible combinations of three input variables, and each combination produces a corresponding difference and borrow output.
- The truth table is the most direct way to understand how the circuit behaves.
| A | B | Bin | Difference (D) | Borrow-out (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 |
The Boolean expression for the difference is:
D = A ⊕ B ⊕ Bin
where ⊕ represents XOR.
The borrow-out expression can be written as:
Bout = A'B + A'Bin + BBin
or equivalently:
Bout = A'B + (A' ⊕ B)Bin
These equations are very important because they are used to implement the full subtractor using logic gates.
Example:
If A = 1, B = 0, and Bin = 1, then:
D = 1 ⊕ 0 ⊕ 1 = 0Bout = A'B + A'Bin + BBin = 0
So the result is:
- Difference =
0 - Borrow-out =
0
This shows that the subtraction 1 - 0 - 1 = 0 is completed without borrowing.
3. Logic Implementation and Circuit Realization
- A full subtractor can be implemented using basic logic gates such as XOR, AND, OR, and NOT gates.
- It can also be constructed using two half subtractors and an OR gate, which is a common method in academic study.
Implementation using gates:
The difference output is generated using two XOR gates:
- First XOR:
X = A ⊕ B- Second XOR:
D = X ⊕ Bin
The borrow-out can be formed by combining AND and OR operations:
Bout = A'B + A'Bin + BBin
Implementation using two half subtractors:
A full subtractor can be built by combining:
- First half subtractor: subtracts
BfromA - Second half subtractor: subtracts
Binfrom the first difference - OR gate: combines the borrow outputs
ASCII representation for conceptual understanding:
A ─────┐
│
▼
[Half Subtractor] ── D1 ──┐
B ─────┘ │
▼
[Half Subtractor] ── Difference
Bin ──────────────────────────┘
Borrow outputs from both half subtractors are combined using OR:
Borrow-out = B1 OR B2
This structure is very useful because it shows how a complex subtractor can be built from simpler units.
Working / Process
- The circuit first compares the minuend bit
Awith the subtrahend bitB. - If
Ais greater than or equal toB + Bin, the subtraction is done directly and borrow-out remains0. - If
Ais less thanB + Bin, the circuit generates a borrow-out of1and the difference is computed after borrowing from the next higher bit.
To understand the process clearly, consider the subtraction:
A = 0, B = 1, Bin = 0
Step-by-step:
- The circuit checks whether
0can subtract1. - Since it cannot, a borrow is required.
- The result becomes:
- Difference =
1 - Borrow-out =
1
Now consider another example:
A = 1, B = 1, Bin = 0
- The circuit checks
1 - 1. - The result is
0. - No borrow is needed.
- Therefore:
- Difference =
0 - Borrow-out =
0
For multi-bit subtraction, full subtractors are connected in a chain from the least significant bit to the most significant bit. The borrow-out of one stage becomes the borrow-in of the next stage. This cascading process allows the subtraction of binary numbers such as:
1011 - 0110
Each bit pair is processed sequentially, and borrows are passed along as needed.
A conceptual cascade diagram:
A0, B0 ──> [Full Subtractor] ── D0, Bout0 ──> Bin of next stage
A1, B1 ──> [Full Subtractor] ── D1, Bout1 ──> Bin of next stage
A2, B2 ──> [Full Subtractor] ── D2, Bout2 ──> Bin of next stage
A3, B3 ──> [Full Subtractor] ── D3, Bout3
This shows how subtraction proceeds bit by bit from right to left.
Advantages / Applications
- Handles three inputs, making it suitable for real binary subtraction where borrowing from a previous stage is necessary.
- Easily cascaded to form subtractors for multi-bit binary numbers, which is essential in digital arithmetic circuits and processors.
- Widely used in ALUs, calculators, embedded systems, and other digital devices that require binary subtraction.
Full subtractors are especially important in arithmetic logic units because they support subtraction as a core operation alongside addition and comparison. They are also used in combinational logic design, educational digital electronics experiments, and hardware implementations where compact and efficient subtraction circuits are needed.
In addition, the design of a full subtractor helps students understand:
- binary subtraction rules,
- borrow propagation,
- use of logic gates in arithmetic circuits,
- relationship between subtraction and complementary arithmetic.
Summary
- A full subtractor is a combinational circuit that subtracts three binary inputs and produces difference and borrow-out.
- It is essential for multi-bit binary subtraction because it supports borrow handling between stages.
- Important terms to remember: minuend, subtrahend, borrow-in, borrow-out, difference, XOR, AND, OR, full subtractor