An adder is a digital circuit that performs binary addition. The adder family scales from a single-bit cell up through ripple-carry and carry-lookahead designs that handle arbitrarily wide operands. This note compares the cells and topologies; the per-cell details live in their own notes.
When you add two binary digits and , the four input combinations , , , produce results that need at most two bits — a sum and a carry. So even the simplest binary add has two output bits. Cascading those one-bit cells, with the carry of each column feeding the next, builds a wide adder.
The two cells
Two basic single-bit adders, distinguished by whether they accept a carry-in:
- A Half-adder adds two bits (, ) and produces a sum and carry-out. No carry-in. Useful only for the LSB position; can’t be cascaded.
- A Full-adder adds three bits (, , ) and produces a sum and carry-out. The cascadable cell — every bit position above bit 0 needs one. A full-adder can be built from two half-adders plus an OR gate.
For an -bit adder you usually use full-adders (or full-adders plus one half-adder for bit 0, a minor optimisation).
Ripple-carry adder
A ripple-carry adder chains full-adders. The carry-out of stage becomes the carry-in of stage . The first stage’s carry-in is normally — or if you’re using the 2’s complement subtraction trick (see below).
The design is easy to lay out — every stage is identical, neighbours-only wiring, scales to any width. The downside is latency: the carry has to ripple through every stage before the final answer is valid. For a 32-bit adder, that’s 32 full-adder delays in the worst case.
Fine for low speeds. Slow for wide adders at high clock rates.
Carry-lookahead adder
A carry-lookahead adder (CLA) computes every carry directly from the inputs, in parallel, by decomposing per-bit behaviour into generate () and propagate () signals and flattening the recurrence . The carry chain becomes deep with hierarchical group lookahead, at the cost of more silicon than ripple-carry. See Carry-lookahead adder for the full derivation, the group formulas, and the -bit hierarchical layout.
Ripple vs CLA at a glance
| Aspect | Ripple-carry | Carry-lookahead |
|---|---|---|
| Worst-case carry delay | stages | levels (with hierarchy) |
| Gate count | superlinear | |
| Layout | Trivially regular | Group/level structure |
| When to use | Low-speed, narrow operands | Wide, high-speed datapaths |
Subtraction trick
Adders also handle subtraction in 2’s complement: feed the subtrahend through XOR gates controlled by a Sub bit. When Sub = 1, the XORs invert the subtrahend, and Sub also feeds the carry-in. This computes . The reason this works: in 2’s complement, — flipping the bits and adding one is the negation. So . One adder, two operations.