The half-adder is extremely useful until you want to add more that one
binary digit quantities. The slow way to develop a two binary digit adders would
be to make a truth table and reduce it. Then when you decide to make a three
binary digit adder, do it again. Then when you decide to make a four digit
adder, do it again. Then when ... The circuits would be fast, but development
time would be slow.

Looking at a two binary digit sum shows what we need to extend addition to
multiple binary digits.

```           11
11
11
---
110
```

Look at how many inputs the middle column uses. Our adder needs three
inputs; a, b, and the carry from the previous sum, and we can use our two-input

Σ is the easy part. Normal arithmetic tells us that if Σ = a +
b + Cin and Σ1 = a + b, then
Σ = Σ1 + Cin.

What do we do with C1 and
C2? Let’s look at three input sums and quickly
calculate:

```Cin + a + b = ?
0 + 0 + 0 = 0       0 + 0 + 1 =  1       0 + 1 + 0 =  1      0 + 1 + 1 = 10
1 + 0 + 0 = 1       1 + 0 + 1 = 10       1 + 1 + 0 = 10      1 + 1 + 1 = 11
```

If you have any concern about the low order bit, please confirm that the
circuit and ladder calculate it correctly.

In order to calculate the high order bit, notice that it is 1 in both
cases when a + b produces a C1. Also, the high order bit
is 1 when a + b produces a Σ1 and
Cin is a 1. So We will have a carry when
C1 OR (Σ1 AND
Cin). Our complete three input adder is:

For some designs, being able to eliminate one or more types of gates can
be important, and you can replace the final OR gate with an XOR gate without
changing the results.

A0 is the low order bit of A,
A1 is the high order bit of A, B0
is the low order bit of B, B1 is the high order bit of B,
Σ0is the low order bit of the sum,
Σ1 is the high order bit of the sum, and
Cout is the Carry.

order bits would also go through a full adder.

There are several reasons for this, one being that we can then allow a
circuit to determine whether the lowest order carry should be included in the
sum. This allows for the chaining of even larger sums. Consider two different
ways to look at a four bit sum.

```           111            1<-+  11<+-
0110             |  01  |  10
1011             |  10  |  11
-----          -  | ---- | ---
10001          1  +-100  +-101
```

#### Related Tools:

Published under the terms and conditions of the Design Science License