Half subtractor and full subtractor are the combinational logic circuits used in digital computer systems. Digital computers perform number of computations in their lifetime. In which, subtraction is one of the common and essential operation. To perform such operations, half subtractor and full subtractor are used.
The half-subtractor subtracts two bits and produces an output as difference and borrow. It needs two binary inputs(subtrahend bit and minuend bit), two binary outputs(difference and borrow) and combination of logic circuit.
It performs subtraction operation of two bits. Four possible operations are possible with the two inputs and produces four outputs, as shown below.
As you can see above, if the minuend bit is higher than the subtrahend bit, difference output is produced with no borrow. If the subtrahend bit is higher than the minuend bit, difference output is produced with borrow.
The boolean expression for the outputs of half-subtractor can be determined by constructing a truth table. The truth table for half adder is shown below.
For difference and borrow outputs, a boolean expression has to be derived using Karnaugh map. Since it has only two input variables, 4-cells k-map is used to simplify. Learn how to Minimize a Boolean function using k-map.
The obtained boolean expression for difference output is an Ex-OR gate output. The Logic circuit diagram for a half subtractor circuit is draw from the boolean expression.
Demerit of Half subtractor
Half subtractor is limited to subtraction of two bits without borrow. But when performing multi digit operations, the subtraction is to be performed with the borrow from the previous digit subtraction.
This computation is not possible with half subtractor. Hence full subtractor is used for such operations.
A full subtractor has three binary inputs(subtrahend, minuend and one borrow bit from the previous subtraction operation). It produces two binary outputs(difference and borrow) using a combination of logic gates. The borrow given to the previous subtraction operation is denoted as Bin
In full subtractor, eight possible operations are possible with three inputs and produces eight, two digit outputs. The operation is shown in the truth table below.
For difference and borrow outputs, boolean expression has to be derived using Karnaugh map. Since it has three input variables, 8-cells k-map is used to simplify the expression.
The boolean expression for difference output can further be simplified as follows.
Now we have two boolean expressions for difference and borrow output. With those expressions, the combinational circuit for full subtractor is implemented.
Realization of full subtractor using two half subtractor
The full subtractor can be implemented with two half subtractors by cascading them. The difference output of first half subtractor is Ex-OR of A and B. The difference output of full subtractor is Ex-OR of Bin and output of first half subtractor.
Similarly, the borrow output of first half subtractor is ORed with the borrow output of second half subtractor to get the borrow output of full subtractor.
The boolean expression for borrow output is further simplified as below. Refer Postulates and Theorems of Boolean Algebra for the below simplification.
Using the simplified boolean expressions for difference and borrow output, the full subtractor can be realized. The truth table for the below full subtractor circuit is the same as the one discussed above.