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
  • Beyond Setup and Hold16
  • Multi-Corner Multi-Mode Signoff16
    • Corner and Mode Matrix Design
    • Library Sets and Operating Conditions
    • Signoff vs Implementation Views
      • View Differences
      • Margin and Correlation
      • Miscorrelation Causes
      • Handoff Between Tools
    • MMMC Debug Playbook
  • OCV, AOCV, POCV and Variation16
  • Crosstalk and Noise16
  • ECO and Closure16
  • STA Debug Playbook16
  • STA Interview Prep26
  • Capstone Timing Signoff Lab4
Loading lesson

‹Signoff vs Implementation Views
  1. Topics
  2. Static Timing Analysis
  3. Multi-Corner Multi-Mode Signoff
  4. Signoff vs Implementation Views
  5. Miscorrelation Causes

Part 5 · Multi-Corner Multi-Mode · All levels

Miscorrelation Causes

Break each path's slack into its components in both tools; the component that moved most points at the cause.

On this page

    Why it matters

    A large gap between two tools is a symptom. The cause is found by comparing the pieces of a path, not the total. The pieces are few: cell delay, net delay, clock latency and skew, setup or hold time, and uncertainty.

    Component comparison

    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # Path components in ns for one endpoint (illustrative)
    impl    = {"cell": 0.52, "net": 0.18, "skew_credit": 0.05}
    signoff = {"cell": 0.53, "net": 0.27, "skew_credit": 0.05}
    period, setup = 1.00, 0.06
    def slack(c):
        return round(period - setup - (c["cell"] + c["net"]) + c["skew_credit"], 3)
    assert slack(impl) == 0.29 and slack(signoff) == 0.19
    diff = {k: round(signoff[k] - impl[k], 3) for k in impl}
    assert diff == {"cell": 0.01, "net": 0.09, "skew_credit": 0.0}
    biggest = max(diff, key=lambda k: abs(diff[k]))
    assert biggest == "net"
    assert round(slack(signoff) - slack(impl), 3) == round(-(diff["cell"] + diff["net"]) + diff["skew_credit"], 3)
    print("PASS: slack impl", slack(impl), "signoff", slack(signoff), "; largest difference:", biggest, diff[biggest])

    The slack gap is 0.10 ns. Cell delay differs by 0.01 ns and skew credit is unchanged, so 0.09 ns comes from net delay: the signature of different parasitics, for example estimated wire load in one tool and extracted routing in the other. The decomposition turned a vague 'tools disagree' into a specific question about extraction.

    Likely causes by component

    Component that moved

    Likely cause

    Net delay

    Different parasitics or extraction corner; estimated versus routed

    Cell delay

    Different library version, delay model, or slew propagation

    Clock latency or skew credit

    Ideal versus propagated clock; different common-path pessimism handling

    Setup or hold time

    Different library or slew at the capture pin

    Uncertainty

    Different margins or derates applied

    What the review looks for

    • The same endpoint is compared with the same startpoint, clocks and path in both tools.

    • The comparison covers a sample of endpoints, so a cause is confirmed by several, not one.

    • The fix is in the setup (matching parasitics, libraries, margins), not in a per-endpoint waiver.

    Common pitfall

    Comparing endpoints that are on different paths in the two tools. A different worst path makes the totals incomparable; compare the same path first.

    Interview

    Walk through the decomposition: total gap, then components, then the one that moved.

    Check yourself In the example, which component would you investigate if cell delay had moved by 0.09 ns and net delay by 0.01 ns?

    The library or delay-model setup: different library versions, a different model, or different slew handling are the likely causes.

    Related topics

    • Margin and Correlation

    • Next: Handoff Between Tools

    Previous

    84 / 183

    Next: Handoff Between Tools

    Up next

    Up nextHandoff Between Tools

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • View Differences