1-bit Full Addder#

A full adder is an adder with carry-in and carry-out ports. The truth table for a 1-bit full adder is shown in Table 1.

Table 1: Truth table for a 1-bit full adder.

X Y C_in Z C_out
0 0 0 0 0
0 1 0 1 0
1 0 0 1 0
1 1 0 0 1
0 0 1 1 0
0 1 1 0 1
1 0 1 0 1
1 1 1 1 1

As shown in Table 1, the output $Z$ is the binary addition of $X + Y + C_{in}$, and the output $C_{out}$ is the carry bit of the addition.

The Karnaugh map for the truth table of output Z is shown in Table 2.

C_in\XY 00 10 11 01
0 0 1 0 1
1 1 0 1 0

The simplified Boolean expression is $Z = (X\cdot Y'\cdot C'_{in}) + (X'\cdot Y\cdot C'_{in}) + (X'\cdot Y'\cdot C_{in}) + (X\cdot Y\cdot C_{in})$

The Karnaugh map for the truth table of output $C_{out}$ is shown in Table 3.

C_in\XY 00 10 11 01
0 0 0 1 0
1 0 1 1 1

The simplified Boolean expression is $C_{out} = (X\cdot Y) + (X\cdot C_{in}) + (Y\cdot C_{in})$

In the full-adder subfolder, this schematic is implemented in Vivado for a Basys 3 FPGA board, part number: xc7a35tcpg236-1.