Full Adder (FA)
Model of a full adder.
What Is an Full Adder?
A full adder is a fundamental digital circuit used in computer architecture and digital logic design. Let’s break down its key aspects:
- A full adder takes three binary inputs: a, b, and a carry-in cIn.
- Inputs a and b represent the two numbers to be added.
- The carry-in cIn represents any carry from a previous addition.
But in binary logic, what does a carry mean? Well, let’s see this in the following example:

Notice that when you add 0 and 0 or 1 and 0, the result can be represented with just one bit. However, when you add 1 and 1, you require two bits, and one of them serves as the carry.
Now, why is a carry input necessary in full adders? Consider scenarios where you want to sum inputs with numbers greater than 1 bit. For instance, when adding two 4-bit binary numbers, you need to combine multiple adders and provide a carry input between them. This carry input indicates that the previous (less significant) operation resulted in a carry.
Outputs:
A full adder produces two binary outputs:
- Sum s: represents the result of adding a, b, and cIn.
- Carry-out cOut: indicates whether there is a carry to the next higher order of magnitude.
Truth Table:
The truth table for a full adder operator (FA) defines the relationship between inputs and outputs.
Given a full adder with inputs: a, b, and cIn, the logical expressions for sum and cOut are as follows:

| Inputs | Outputs | |||
|---|---|---|---|---|
| a | b | cIn | s | 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 |
Modeling
The Swan model of the full adder circuit is composed of the boolean operators XOR, OR, and AND seen previously:

Model Simulation
- Test harnessIn order to observe the
FullAdder::FAfunction behavior, we design a test harness (HarnessFA) in a test module (TestNbitAdder):
- Simulation Trace
The simulation is launched with 8 steps.
The simulation trace shows that our truth table is verified; we can check by reading the signals in each step:

In the next part, application examples of the full adder are presented.