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

  • How to Use This Course
  • Reading Path
  • STA Glossary
  • STA Metrics Reference
  • STA Mastery Cheatsheet
  • Timing Paths and Checks16
  • Constraints & SDC Fundamentals20
  • Delay Graph & Path Analysis16
    • Graph Traversal & Slack
    • Cell vs Net Delay Budgets
    • Path Group Prioritization
      • Path Groups and Weights
      • Path Group Reports
      • Choosing What to Fix First
      • Tracking Closure by Group
    • Report Timing Deep Read
  • Beyond Setup and Hold16
  • Multi-Corner Multi-Mode Signoff16
  • OCV, AOCV, POCV and Variation16
  • Crosstalk and Noise16
  • ECO and Closure16
  • STA Debug Playbook16
  • STA Interview Prep26
  • Capstone Timing Signoff Lab4
Loading lesson

‹Path Group Prioritization
  1. Topics
  2. Static Timing Analysis
  3. Delay Graph & Path Analysis
  4. Path Group Prioritization
  5. Path Groups and Weights

Part 3 · Delay Graph and Path Analysis · All levels

Path Groups and Weights

Tools group paths, usually by capture clock, so each group has its own worst path and its own optimisation priority.

On this page

    Why it matters

    If all paths were ranked together, a clock domain with a severe violation would absorb all optimisation effort while a faster, tighter domain sat just outside the reports. Grouping makes each domain, and categories such as I/O, visible and optimised on its own terms.

    Typical groups

    Group

    Contents

    Why separate

    One group per capture clock

    All paths captured by that clock

    Each clock's closure is tracked independently

    Input to register

    Paths from input ports

    Constraints come from the interface contract

    Register to output

    Paths to output ports

    Same

    Clock gating checks

    Enable-to-gate checks

    Different check type

    Asynchronous / recovery-removal

    Reset and async set/clear checks

    Different check type

    Optimisation tools can weight groups or set a margin target per group (a group that must reach +0.05 ns rather than zero). Weights are a project policy: they say which group matters most when effort is scarce.

    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    groups = {"clk_core": [0.12, -0.05, 0.30], "clk_io": [-0.40, -0.25, -0.02], "in2reg": [0.50], "gating": [0.10, 0.08]}
    summary = {g: (min(s), sum(x for x in s if x < 0), sum(1 for x in s if x < 0)) for g, s in groups.items()}
    assert summary["clk_core"] == (-0.05, -0.05, 1)
    assert summary["clk_io"][0] == -0.40 and abs(summary["clk_io"][1] + 0.67) < 1e-9 and summary["clk_io"][2] == 3
    assert summary["gating"][2] == 0
    worst_group = min(summary, key=lambda g: summary[g][0])
    assert worst_group == "clk_io"
    print("PASS: per-group (WNS, TNS, FEP):", summary)

    Looking only at the chip-wide WNS (-0.40, in clk_io) would miss that clk_core also fails. Per group, clk_core has a single marginal endpoint (-0.05), clk_io fails three endpoints (TNS -0.67), and the other two groups are clean. The work divides naturally: one group needs a systemic look, the other a local fix.

    What the review looks for

    • Every group is reported with its WNS, TNS and failing endpoint count; groups with zero endpoints are explained (a missing clock?).

    • Group weights are a documented policy, not tuned per run.

    • Checks such as gating and recovery appear in their own groups and are not left out of the summary.

    Common pitfall

    A group that looks clean because it is empty. If a clock's group has zero paths, the clock may not reach its flops. Compare group sizes against expectations.

    Interview

    Explain why per-clock grouping exists: it prevents one failing domain from hiding another and lets each be optimised to its own target.

    Check yourself Group A has WNS -0.01 ns and 5,000 failing endpoints; group B has WNS -0.30 ns and 2 failing endpoints. Which first?

    Probably A: a systemic problem across 5,000 endpoints (for example a clock or constraint issue) has the highest total impact, even though its worst slack is small. B is a local fix for two paths.

    Related topics

    • Next: Path Group Reports

    Previous

    50 / 183

    Next: Path Group Reports

    Up next

    Up nextPath Group Reports

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Choosing What to Fix First
    • Tracking Closure by Group