Skip to content
BetterDL

Generate and propagate signals

Also called: generate, propagate, carry generate, carry propagate, generate signal, propagate signal

Per-bit signals used for fast carries: generate G = AB means the bit makes a carry by itself; propagate P = A ⊕ B means it passes an incoming carry on.

Every carry in an adder starts somewhere and travels some distance. Generate and propagate describe what each bit position does to a carry.

For bit i, with that bit's A and B:

  • Generate Gᵢ = AᵢBᵢ. Both bits are 1, so the position creates a carry no matter what comes in.
  • Propagate Pᵢ = Aᵢ ⊕ Bᵢ. Exactly one bit is 1, so the position passes an incoming carry on: 1 + carry = 2.
  • Neither: both bits are 0, and any incoming carry stops here (carry kill).

That gives the carry recurrence:

Cᵢ₊₁ = Gᵢ + PᵢCᵢ

In words: a carry leaves bit i if bit i generates one, or if it propagates the one coming in. It's the full adder's with new names.

G and P depend only on A and B, so all of them are ready after one gate delay, in every bit at once. That's what makes a carry lookahead adder possible: substitute the recurrence into itself and every carry becomes a function of G's, P's and C0 alone.

Convention: this course uses the XOR form of P, so the sum is also Sᵢ = Pᵢ ⊕ Cᵢ. Some books use Pᵢ = Aᵢ + Bᵢ. The OR form gives the same carries, because when both bits are 1 G already forces the carry, but it can't be reused for the sum.

ABGP

Worked example

Example

G, P and the carries for 1100 + 0110

12 + 6 with C0 = 0. Work out G and P bit by bit, then the carries.

  1. 1.

    Bit 3: 1, 0 → G3 = 0, P3 = 1. Bit 2: 1, 1 → G2 = 1, P2 = 0.

  2. 2.

    Bit 1: 0, 1 → G1 = 0, P1 = 1. Bit 0: 0, 0 → G0 = 0, P0 = 0.

  3. 3.

    C1 = G0 + P0C0 = 0. C2 = G1 + P1C1 = 0.

  4. 4.

    C3 = G2 + P2C2 = 1. C4 = G3 + P3C3 = 0 + 1·1 = 1.

  5. 5.

    Sums Sᵢ = Pᵢ ⊕ Cᵢ: S3 = 1 ⊕ 1 = 0, S2 = 0 ⊕ 1 = 1, S1 = 1 ⊕ 0 = 1, S0 = 0 ⊕ 0 = 0.

  6. 6.

    Result: C4 = 1, S = 0010, so 10010 = 18 = 12 + 6.

Common mistakes

  • Using the OR form of propagate and then computing S = P ⊕ C. With A = B = 1 that gives the wrong sum.

  • Thinking a propagating bit creates a carry. It only passes one on.

  • Thinking G and P depend on the carry. They depend only on A and B, which is why they're fast.

Practice Generate and propagate signals

Interactive questions with instant feedback and a worked solution for every wrong answer.

Learn it step by step

Generate and propagate signals is taught in Adders and ALUs.