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

AspectRipple-carryCarry-lookahead
Worst-case carry delay stages levels (with hierarchy)
Gate countsuperlinear
LayoutTrivially regularGroup/level structure
When to useLow-speed, narrow operandsWide, 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.