How to build a full adder using only NOR gates
A full adder can be built from nine NOR gates, the same count as the NAND version: take the 9-NAND full adder, replace every NAND with a NOR, and it still computes S = A XOR B XOR Cin and the carry Cout.
Swapping every NAND for a NOR turns a circuit into its dual, which computes the original function with all inputs and the output inverted. For most circuits that changes the function, but not for a full adder: inverting A, B and Cin inverts both the sum (a 3-input XOR) and the carry (a majority vote), so the dual circuit gives back the same S and Cout. Inside, the first four NORs make A XNOR B rather than XOR, the next four XNOR that with Cin, and two XNORs in a row are the same as two XORs. The carry gate reuses the first and fifth NORs. Compare the NAND full adder and the five-gate NOR half adder. All eight input rows are checked before the page is built.
Open this circuit in the lab →
What you need
- 4× NOR: N1 = NOR(A, B), NOR(A, N1), NOR(B, N1) and a final NOR give X = A XNOR B
- 4× NOR: the same pattern on X and Cin: N4 = NOR(X, Cin), then three more NORs give S = X XNOR Cin = A XOR B XOR Cin
- 1× NOR: Cout = NOR(N1, N4) = (A OR B) AND (X OR Cin)
Step by step
- Place inputs
A,BandCin. NOR A and B intoN1. - Make
NOR(A, N1)andNOR(B, N1), then NOR those two together. The result isX = A XNOR B. - Repeat the pattern with X and Cin:
N4 = NOR(X, Cin), thenNOR(X, N4)andNOR(Cin, N4), then NOR those two. That isX XNOR Cin, which equalsA XOR B XOR Cin; probe it asS. - For the carry, NOR N1 with N4. It is 1 when A or B is 1 and also X or Cin is 1, which works out to "at least two of the three inputs are 1". Probe it as
Cout. - Toggle the inputs through all eight combinations and compare S and Cout with the truth table below.
Full adder truth table
| 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 |
S is 1 when an odd number of inputs are 1, and Cout is 1 when at least two are. Nine NOR gates of four transistors each make this full adder 36 transistors.
You can also read the full theory in the lesson on the full adder. Prefer to build it yourself from scratch? Open the digiwleea lab and place the gates on the canvas, or start from the logic gate simulator.
Build more parts from gates
Each of these is one step from a transistor to a working CPU. Build every gate from CMOS transistors and work all the way up in the free digiwleea lab, with the free theory reference alongside.
Open the full adder from NOR gates in the lab →Frequently asked
How many NOR gates are needed for a full adder?
Nine. Four make A XNOR B, four more combine that with Cin into the sum, and one NOR of the first and fifth gates gives the carry.
Why does replacing NAND with NOR still give a full adder?
The NOR circuit is the dual of the NAND circuit, so it computes the same function with every input and the output inverted. The sum and carry of a full adder are self-dual (inverting all three inputs inverts both outputs), so the two inversions cancel and the function is unchanged.
Can you build a full adder from two NOR half adders?
Yes, but it costs more: two 5-NOR half adders plus an OR of the two carries (a NOR followed by a NOR inverter) is 12 gates. Sharing gates, as here, brings it down to nine.
Is the NOR full adder slower than the NAND one?
In CMOS, usually a little: a NOR gate puts its PMOS transistors in series, and PMOS conducts more weakly than NMOS, so NOR gates are typically sized larger or switch more slowly. That is one reason NAND is the more common choice in real designs.