Each column of an addition does one of three things to a carry:
- generate one (A = B = 1): the carry-out is 1 whatever comes in
- propagate one (exactly one of A, B is 1): the carry-out equals the carry-in
- kill it (A = B = 0): the carry-out is 0 whatever comes in
The kill condition is , which is 1 exactly when G = 0 and P = 0 (generate and propagate). Lookahead adders don't need a separate kill signal, because Cᵢ₊₁ = Gᵢ + PᵢCᵢ is already 0 when both are 0.
Kills matter for timing. In a ripple carry adder, a killing column settles its carry-out as soon as its A and B arrive, without waiting for anything from below. The chain of waiting is cut there. So the worst case (ripple carry delay) needs a carry generated at the bottom and propagated through every column above it, with no kills.
The decimal version is a column like 2 + 3: even with an incoming carry it only reaches 6, so it can never carry out.
| G | P | K | ||
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 0 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 1 | 0 | 0 |