Digital Adder Design: Half/Full Adders and Ripple Carry Adder Delay

Sunhong··Updated Apr 19, 2026·8 min read·181 views·Translated from Korean
Note

Chapter 2 Adder Overview

The adder is the foundation of all arithmetic and the core of a processor datapath. These notes start with the half adder and full adder and go through high-speed adder structures such as the carry chain, carry lookahead, and carry select.

Half Adder

Two 1-bit inputs A, B → sum S and carry C:

A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
  • S=A⊕BS = A \oplus B
  • C=A⋅BC = A \cdot B

Full Adder

Three 1-bit inputs A, B, Cin → S, Cout:

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=A⊕B⊕CinS = A \oplus B \oplus C_{in}
  • Cout=AB+(A⊕B)⋅Cin=AB+ACin+BCinC_{out} = AB + (A \oplus B) \cdot C_{in} = AB + AC_{in} + BC_{in}

Propagate & Generate

The basic concepts behind carry lookahead:

  • Generate: G=A⋅BG = A \cdot B (always produces a carry)
  • Propagate: P=A⊕BP = A \oplus B (passes the carry through)
  • Cout = G+P⋅CinG + P \cdot C_{in}

Half/full adder and P/G

Full Adder Design — Transistor Level

  • Cout: (A+B)⋅Cin+A⋅B(A+B) \cdot C_{in} + A \cdot B → a 5–6 transistor structure
  • S: XOR-based → 10–12 transistors
  • Inverting logic: use only NAND/NOR to optimize area and delay

Full Adder Transistor Level

Ripple Carry Adder (RCA)

n full adders connected in sequence:

  A0,B0      A1,B1      A2,B2
    │          │          │
 [FA0]─C1→[FA1]─C2→[FA2]─C3→
    │          │          │
   S0         S1         S2

Delay

  • Carry propagation: passes through all nn bits → O(n) delay
  • Worst case: t=n×tFAt = n \times t_{FA} → very slow at 32 bits

RCA structure

Carry Lookahead Adder (CLA)

Precomputes the carry of every bit in parallel:

Ci+1=Gi+Pi⋅CiC_{i+1} = G_i + P_i \cdot C_i

Expanded:

C4=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0C_4 = G_3 + P_3 G_2 + P_3 P_2 G_1 + P_3 P_2 P_1 G_0 + P_3 P_2 P_1 P_0 C_0

→ Each carry can be computed with O(log n) delay.

CLA structure

Block Carry Lookahead

Groups the CLA into 4-bit blocks and computes the carries between blocks with lookahead as well. A hierarchical CLA.

  • Hierarchy of 4-bit groups → 16-bit CLA → 64-bit CLA
  • Log time at each level → O(log⁡n)O(\log n) overall

Block CLA

Manchester Carry Chain

Implements the carry chain with CMOS pass transistors:

  • Propagate passes the carry along through a pass transistor
  • Generate creates it directly through a pull-down

Manchester Chain

Carry Skip Adder

Splits the RCA into k-bit blocks; if every bit in a block has propagate=1, the carry skips (bypasses) the whole block:

  • Within a block: ripple
  • At block boundaries: skip through a MUX

Performance: O(n)O(\sqrt{n}) delay, area-efficient.

Carry Skip Adder

Carry Select Adder

Computes each block for both Cin=0 and Cin=1 at the same time → when the actual Cin arrives, a MUX selects the result.

  • ↑ area, but ↓ delay
  • Common in 32-bit adders

Carry Select Adder

Conditional Sum Adder

A recursive version of carry select. Upper blocks are also selected recursively. Delay O(log⁡n)O(\log n).

Conditional Sum

Brent-Kung / Kogge-Stone Prefix Adder

Uses a prefix tree to compute all carries in parallel. A parallel prefix adder.

  • Brent-Kung: depth = 2log n, small area
  • Kogge-Stone: depth = log n, large area, fastest
  • Ladner-Fischer, Han-Carlson: intermediate tradeoffs

Most high-performance datapath adders in CPUs are Kogge-Stone or a variant.

Prefix Adder

Pipelined Adder

Pipelines a long n-bit adder over several stages. ↑ throughput, ↑ latency.

Pipelined Adder

Subtraction (Two's Complement)

A−B=A+Bˉ+1A - B = A + \bar{B} + 1 (two's complement). Implemented with an adder + XOR gates + Cin=1.

Subtraction

Multi-Operand Addition

Adding three or more numbers: a CSA (carry save adder) tree reduces the partial sums at each bit position, followed by a final CPA.

CSA Tree

Saturation Arithmetic

On overflow, the result saturates: it is clamped to the MAX or MIN value. Important in DSP/multimedia.

Saturation

Floating-Point Adder

  • Align exponents (shift to match the larger value)
  • Add mantissas
  • Normalize the result (shift, adjust exponent)
  • Round

Each stage is complex, so a pipelined FP adder is a must.

FP Adder

Summary

Adder Delay Area Characteristics
RCA O(n) Small Simple
CLA O(log n) Medium Standard high-speed
Carry Skip O(√n) Small Balanced
Carry Select O(√n) Large Speculative computation
Kogge-Stone O(log n) Very large Fastest

The adder's delay determines the datapath performance of a processor. Most ALUs in modern CPUs use a parallel prefix adder (a Kogge-Stone variant) + pipelining.

Adder comparison overview