A fully expanded carry lookahead adder gets impractical for wide numbers: C64 would need 65 product terms, the longest with 65 inputs. Block carry-lookahead keeps most of the speed without giant gates by using lookahead in two or more levels.
- Split the adder into blocks of, say, 4 bits. Inside each block, compute the carries with ordinary lookahead from that block's G and P signals.
- Summarize each block with two signals, both computed from the block's own G's and P's.
- A second-level lookahead unit treats the blocks exactly like bits: the carry into the next block is GG + PG · (carry into this block).
The two block signals for a 4-bit block:
- Group generate GG = : the block produces a carry-out by itself.
- Group propagate PG = : a carry entering the block passes all the way through.
Every gate stays small (at most 5 inputs for 4-bit blocks), and the delay grows with the number of levels, roughly the logarithm of the width, instead of linearly as in a ripple carry adder.
A simpler middle ground uses lookahead inside each block but lets the carry ripple from block to block. It's faster than pure ripple and smaller than a second lookahead level.