A Full Adder is a fundamental combinational logic circuit used in digital electronics to perform binary addition. It is an extension of the Half Adder, capable of adding three binary inputs and producing two outputs: the Sum and the Carry. The Full Adder plays a critical role in arithmetic logic units (ALUs) of microprocessors, multipliers, and other computational circuits.
Use the following links for VHDL implementation in different modelling styles.
The truth table for a Full Adder is as follows:
A | B | Cin | Sum (S) | Carry Out (Cout) |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
From the truth table, the Boolean expressions for the outputs can be derived using Karnaugh maps or Boolean algebra:
The Full Adder can be implemented using basic logic gates such as AND, OR, and XOR gates. The logic diagram consists of two stages:
The schematic of a Full Adder is shown below:
Inputs: A, B, Cin
-----------------------------------
A ----\
XOR ----\
B ----/ \
XOR ----> Sum (S)
Cin ------------/
A ----\
AND ----\
B ----/ OR ----> Carry Out (Cout)
Cin ------------/
AND ----/
To add multi-bit binary numbers, multiple Full Adders are cascaded together. Each Full Adder handles one bit position, and the Carry Out of one stage is fed as the Carry In (Cin) to the next stage. This configuration forms a Ripple Carry Adder.
For example, a 4-bit Ripple Carry Adder would consist of four Full Adders, where:
While simple, this design suffers from propagation delays due to the sequential nature of carry propagation. To address this limitation, more advanced designs like Carry Look-Ahead Adders (CLA) are employed.
Full Adders are widely used in various digital systems, including:
Advantages:
Limitations: