Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • Logic Synthesis Glossary
  • Logic Synthesis Cheatsheet
  • Synthesis Foundations14
  • Logic Optimisation and Mapping20
  • Constraints and Timing15
  • Sequential, FSM and Memory19
  • Datapath Synthesis14
    • Adders and Carry Structures
      • Ripple-Carry Adders
      • Carry-Lookahead Adders
      • Carry-Select Adders
      • Prefix Adders
      • The Plus Operator and Carry-Save Addition
    • Multipliers and Compressors
    • Resource Sharing and Arithmetic Inference
  • Area, Power and Test14
  • Verification, ECO and Handoff15
  • Flows and Debugging15
  • Interview and Judgment11
Loading lesson

‹Adders and Carry Structures
  1. Topics
  2. Logic Synthesis
  3. Datapath Synthesis
  4. Adders and Carry Structures
  5. Carry-Select Adders

Part 5 · Datapath Synthesis · Intermediate

Carry-Select Adders

Duplicated blocks with precomputed carries selected by a multiplexer.

On this page

    Speculate both carries

    Each upper block is built twice: once assuming carry-in 0, once assuming 1. Both versions compute while the lower block settles.

    The true carry-in then picks the right version through a mux. The mux delay replaces the wait for the full lower ripple.

    Carry-select: duplicated high block plus a selecting mux.
    Both high versions compute early; the low carry only steers the mux.

    Choosing block sizes

    With uniform block size k, each block ripples k stages and each boundary adds one mux stage. Smaller blocks ripple less but cross more muxes.

    The table below uses EXAMPLE costs for an 8-bit adder. Variable block sizes, growing toward the top bit, do better, and the best split varies by library.

    Block size k

    Ripple part (EXAMPLE)

    Mux stages (EXAMPLE)

    Total (EXAMPLE)

    2

    2 x 3 = 6

    3 x 2 = 6

    12

    4

    4 x 3 = 12

    1 x 2 = 2

    14

    8

    8 x 3 = 24

    0

    24

    Cost of the muxes

    Selection costs one mux per sum bit plus the select wiring. Area approaches twice the ripple for many blocks (one extra block per upper group, plus the select muxes).

    Diagram
    EXAMPLE parameters (not measured silicon): one carry stage = 3 units, one mux stage = 2 units
    8-bit carry-select, block size 4: 4 x 3 + 2 = 12 + 2 = 14 units
    8-bit ripple: 8 x 3 = 24 units
    saving: 24 - 14 = 10 units

    Common mistakes

    Common pitfall

    Chaining the block muxes into a long select ripple. Each boundary mux sits on the critical path, so a late carry-in arrives late everywhere; size blocks so the ripple and the select arrive together.

    Interview

    Likely probes: why duplication helps and where it stops helping.

    • Both carry cases precompute, so the carry-in only steers a mux.

    • Uniform size k balances k ripple stages against one mux per boundary.

    • Past the balance point the mux chain dominates and wider blocks win back.

    Check yourself An 8-bit carry-select uses block size 4 at the EXAMPLE costs. What is its total, and what does size 8 give?

    Block size 4 gives 12 + 2 = 14 units. Size 8 is a plain ripple at 24 units with no mux.

    Check yourself Why do variable block sizes grow toward the most significant bit?

    Upper muxes wait for selects from below, so upper blocks can afford longer ripples. Growing sizes match ripple arrival to select arrival.

    Related topics

    • Prefix adders

    • See also: Resource Sharing

    Previous

    73 / 139

    Next: Prefix Adders

    Up next

    Up nextPrefix Adders

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Ripple-Carry Adders
    • The Plus Operator and Carry-Save Addition