A full-adder is a combinational circuit that adds two single-bit binary numbers and a carry-in, and produces a sum and a carry-out. The full-adder has three inputs and two outputs, one for the sum (S) and one for the carry-out (Cout). The third input of the full-adder is the carry-in (Cin) from the previous stage. It can be implemented using basic logic gates such as AND, XOR, and OR gates.
The truth table for a full-adder is shown below:
The implementation of a full-adder using logic gates is shown below:
The implementation of a full-adder using two half-adders and one OR gate is shown below:
In this circuit, two half-adders (HA1 and HA2) are combined with one OR gate to form a full-adder. The first half-adder produces a partial sum (PS) and a partial carry (PC) output. The second half-adder takes the PS and the third input (Cin) and produces the final sum output (S) and an intermediate carry (IC) output. The OR gate then takes the IC and the PC and produces the final carry-out (Cout) output.
The half-adders are used to add the inputs A and B and produce the PS and PC outputs. The second half-adder is used to add the PS to Cin and produces the S and IC outputs. Finally, the OR gate combines the IC and PC outputs to produce the Cout output.
The full-adder is a building block for many more complex digital circuits like ripple carry adders, carry look-ahead adders, and subtractors.