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
  • OCV, AOCV, POCV and Variation16
  • Crosstalk and Noise16
  • ECO and Closure16
    • Setup and Hold Closure Order
    • Physical vs Logical ECOs
    • Useful Skew Trade-offs
    • ECO Regression Matrix
      • What to Rerun
      • Regression Matrix Design
      • Avoiding Fix Breaks Fix
      • Closure Dashboards
  • STA Debug Playbook16
  • STA Interview Prep26
  • Capstone Timing Signoff Lab4
Loading lesson

‹ECO Regression Matrix
  1. Topics
  2. Static Timing Analysis
  3. ECO and Closure
  4. ECO Regression Matrix
  5. What to Rerun

Part 8 · ECO and Closure · All levels

What to Rerun

The checks a batch needs are the union of what each change requires; running exactly that saves hours without giving up coverage.

On this page

    Why it matters

    Running everything after every change is safe but slow, and slow loops mean fewer iterations per day. Running too little misses breakage. The middle path is a table from change type to required checks, with the batch's needs computed as a union.

    Worked example (illustrative costs in hours)

    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    costs = {"timing": 6, "si": 4, "extraction": 3, "drc": 1, "lvs": 1, "equivalence": 2, "power": 1}
    need = {
        "swap":   {"timing", "power"},
        "buffer": {"timing", "si", "extraction", "drc", "power"},
        "logic":  {"timing", "si", "extraction", "drc", "lvs", "equivalence", "power"},
    }
    def batch_cost(changes):
        checks = set().union(*(need[c] for c in changes))
        return sorted(checks), sum(costs[k] for k in checks)
    everything = sum(costs.values())
    b1 = batch_cost(["swap", "swap", "swap"])
    b2 = batch_cost(["swap", "buffer"])
    b3 = batch_cost(["swap", "buffer", "logic"])
    assert everything == 18
    assert (b1[1], b2[1], b3[1]) == (7, 15, 18)
    assert b1[0] == ["power", "timing"]
    print("PASS: cost of a swap-only batch", b1[1], "h; with a buffer", b2[1], "h; with a logic change", b3[1], "h; everything", everything, "h")

    Batch

    Checks needed

    Cost (h)

    Three cell swaps

    timing, power

    7

    A swap and a buffer insertion

    timing, SI, extraction, DRC, power

    15

    A swap, a buffer and a logic change

    all seven

    18

    A batch of three swaps needs only 7 of the 18 hours. Add a buffer and it needs 15 hours; add one logic change and the batch needs everything. Mixing the swaps with the logic change costs 18 h against 7 + 18 = 25 h run separately, so mixing saves total hours; but it delays feedback on the swaps and makes breakage harder to isolate, while homogeneous batches give faster early feedback. The check list for each change type is the one from the ECO risk ladder; the costs are invented to show the arithmetic.

    What the review looks for

    • A written table from change type to required checks, agreed in advance.

    • Every batch labelled with its highest-risk change and the checks it triggered.

    • A periodic full run regardless of what was changed, to catch anything the table missed.

    Common pitfall

    Letting convenience decide: skipping extraction because 'it was only a buffer'. New wire means new parasitics, and timing without them is wrong.

    Interview

    Say the rule: the checks for a batch are the union of the checks for each change in it.

    Check yourself If a batch of four swaps is run alongside one reroute (which needs timing, SI, extraction, DRC, LVS, power), what is the cost?

    Union: timing 6, SI 4, extraction 3, DRC 1, LVS 1, power 1 = 16 hours; the swaps add nothing new.

    Related topics

    • ECO Risk Ladder

    • Next: Regression Matrix Design

    Previous

    134 / 183

    Next: Regression Matrix Design

    Up next

    Up nextRegression Matrix Design

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Avoiding Fix Breaks Fix
    • Closure Dashboards