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:

Inputs:
  • 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:

InputsOutputs
abcInscOut
00000
00110
01010
01101
10010
10101
11001
11111

Modeling

The Swan model of the full adder circuit is composed of the boolean operators XOR, OR, and AND seen previously:



Model Simulation

  1. Test harness
    In order to observe the FullAdder::FA function behavior, we design a test harness (HarnessFA) in a test module (TestNbitAdder):


  2. 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.