One solution: Carry lookahead logic
Basic idea: Compute all the carries in parallel
- Derive carries from the data inputs
- Not from intermediate carries
- Use combinational two-level logic
- Compute all sum outputs in parallel
- Cascade simple (4-bit) adders to make large adders
Benefits
- 16-bit ripple-carry adder: ~32 gate delays
- 16-bit carry-lookahead adder: ~8 gate delays
Issues
- Complex combinational logic