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
    • MMMC Debug Playbook
      • Symptoms to Views
      • Per-View Triage
      • Scenario Bisect
      • Reporting by View
  • OCV, AOCV, POCV and Variation16
  • Crosstalk and Noise16
  • ECO and Closure16
  • STA Debug Playbook16
  • STA Interview Prep26
  • Capstone Timing Signoff Lab4
Loading lesson

‹MMMC Debug Playbook
  1. Topics
  2. Static Timing Analysis
  3. Multi-Corner Multi-Mode Signoff
  4. MMMC Debug Playbook
  5. Symptoms to Views

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

Symptoms to Views

If every failing scenario shares one attribute, that attribute is the suspect; the table maps common patterns to causes.

On this page

    Why it matters

    Looking at a failing endpoint tells you what fails. Looking at which scenarios it fails in tells you why. The second question is faster to answer and narrows the search before any path is read.

    Pattern table

    Failing scenarios share...

    Suspect

    One mode only

    That mode's constraints: clocks, case values, exceptions

    All slow-process scenarios, setup

    Genuine setup problem, or too-pessimistic derate

    All fast-process scenarios, hold

    Genuine hold problem on short paths

    One interconnect corner only

    Extraction or a long, resistive or highly coupled route

    One voltage only

    Library at that voltage, or voltage-specific path

    Everything

    Constraint or netlist problem, not a corner problem

    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    def parse(view):
        mode, pvt, rc = view.split("/")
        return {"mode": mode, "pvt": pvt, "rc": rc}
    all_views = [f"{m}/{p}/{r}" for m in ("func", "scan") for p in ("ss", "ff") for r in ("cw", "cb")]
    def explain(failing):
        attrs = [parse(v) for v in failing]
        out = {}
        for key in ("mode", "pvt", "rc"):
            values = {a[key] for a in attrs}
            universe = {parse(v)[key] for v in all_views}
            if len(values) == 1 and len(universe) > 1:
                out[key] = values.pop()
        return out
    assert explain(["scan/ss/cw", "scan/ss/cb", "scan/ff/cw", "scan/ff/cb"]) == {"mode": "scan"}
    assert explain(["func/ss/cw", "scan/ss/cw"]) == {"pvt": "ss", "rc": "cw"}
    assert explain(all_views) == {}
    print("PASS: pattern explanations computed for three failure sets")

    Four failing views that are exactly the scan-mode views are explained by the mode alone. Two failures that share both the slow process and the worst-capacitance corner are explained by those two attributes together. When every view fails, no attribute is shared more narrowly than the whole set, which is why that pattern points at constraints or the netlist rather than a corner.

    What the review looks for

    • Before any path analysis, a table of failing scenarios by attribute.

    • A claim of cause names the attribute and the evidence that other values of it pass.

    • A pattern explained by several attributes is split with one more scenario run.

    Common pitfall

    Fixing individual paths in a failing mode when the mode's constraints are wrong. The paths are symptoms; the constraint is the cause.

    Interview

    State the habit: scenarios first, paths second.

    Check yourself Setup fails in every scenario of one mode and in none of another. Where do you look first?

    At the failing mode's constraints: its clock definitions, case values and exceptions, because a corner-independent failure is a constraint-level one.

    Related topics

    • Next: Per-View Triage

    Previous

    86 / 183

    Next: Per-View Triage

    Up next

    Up nextPer-View Triage

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Scenario Bisect
    • Reporting by View