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
    • Synthesis Flow Overview
    • Synthesizable RTL and Inference
      • Combinational Blocks Infer Logic
      • Priority Chains versus Parallel Selects
      • Latch Inference from Incomplete Assignment
      • Flops, Tri-States and Unrolled Loops
      • What Is Not Synthesizable
    • Reading Netlists and Reports
  • Logic Optimisation and Mapping20
  • Constraints and Timing15
  • Sequential, FSM and Memory19
  • Datapath Synthesis14
  • Area, Power and Test14
  • Verification, ECO and Handoff15
  • Flows and Debugging15
  • Interview and Judgment11
Loading lesson

‹Synthesizable RTL and Inference
  1. Topics
  2. Logic Synthesis
  3. Synthesis Foundations
  4. Synthesizable RTL and Inference
  5. Priority Chains versus Parallel Selects

Part 1 · Synthesis Foundations · Intermediate

Priority Chains versus Parallel Selects

If chains infer priority logic while disjoint case items infer parallel selects.

On this page

    Priority chains

    An if and else if chain tests its conditions in order. The first true condition wins, so the hardware is a chain of select stages about one deep per condition.

    Order matters here. Moving a condition changes which input wins, so reorder a chain only when the meaning stays the same.

    Parallel selects

    A case over disjoint selector values tests all items together. It permits a parallel tree with depth as low as ceil(log2(n)), though whether the tool builds it depends on optimisation and mapping.

    Overlapping items still resolve in order, like a chain. Keep items disjoint and add a default so the parallel reading holds.

    Depth and area

    An 8:1 select shows the gap. The chain stacks seven 2:1 stages, while the permitted parallel tree reaches depth 3 with seven MUX2 cells from the teaching library.

    Diagram
    8:1 select of one bit, built from 2:1 stages
    priority chain: 8 inputs need 7 nested stages
    chain depth = 8 - 1 = 7 stages
    parallel tree: depth = ceil(log2(8)) = 3 stages
    tree cells = 8 - 1 = 7 MUX2
    MUX2 area is 5 teaching-library units
    tree area = 7 x 5 = 35 units

    Common mistakes

    Common pitfall

    A long if and else if chain on a timing-critical select adds about one stage per condition. Rewrite it as a case over disjoint values when the test order carries no meaning.

    Interview

    Likely probes: chain depth against tree depth, and when a case stays parallel.

    • An 8:1 chain is 7 stages deep, while the permitted parallel tree reaches depth 3 with 7 MUX2 cells.

    • Disjoint items plus a default keep a case parallel, while overlap restores priority.

    • Directives promising parallel or full coverage vary between tools, so write the intent explicitly.

    • Write the case form that expresses parallel intent, then confirm the depth in the tool report.

    Check yourself An 8:1 select is written as an if chain and then as a tree. What are the two depths?

    The chain is 7 stages deep, while the permitted parallel tree reaches depth 3. Both arrange seven 2:1 selects, only the arrangement differs.

    Check yourself Two case items overlap. Which one wins, and what does that say about the structure?

    The first item in order wins. The structure is priority for those items, not parallel.

    Related topics

    • Combinational Blocks Infer Logic

    • Latch Inference from Incomplete Assignment

    • Boolean Optimization

    Previous

    9 / 139

    Next: Latch Inference from Incomplete Assignment

    Up next

    Up nextLatch Inference from Incomplete Assignment

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Flops, Tri-States and Unrolled Loops
    • What Is Not Synthesizable