A full adder adds three bits: A, B, and the carry in from the column to its right. The total is 0 to 3, so two outputs are enough: the sum bit S and the carry out Cout. Read as a 2-bit number, Cout S is the count of 1s among the inputs.
In expressions, this course writes the carry-in as C, since variable names must be single letters.
- S = . S is the low bit of the count, so it's 1 when an odd number of inputs are 1: odd parity. Its K-map is a checkerboard, so it can't be simplified, and adders always build S from XOR gates.
- Cout = . Cout is 1 when at least two inputs are 1, the majority of the three.
An equivalent carry form splits the two ways a carry can happen: . Either A and B are both 1 (the column generates a carry), or exactly one of them is 1 and the carry-in pushes the column to 2 (the column propagates it). That form is what you get from two half adders and an OR, and it leads straight to the generate and propagate signals.
One full adder per bit, with each carry-out wired to the next carry-in, makes a ripple carry adder.
| S | ||||
|---|---|---|---|---|
| 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 |