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
    • OCV, AOCV and POCV Mechanisms
    • Derate Policy and Approval
      • Setting Derates
      • Who Approves Margins
      • Over-Margin Cost
      • Derate Audit
    • Path Depth Sensitivity
    • Variation Signoff Dashboard
  • Crosstalk and Noise16
  • ECO and Closure16
  • STA Debug Playbook16
  • STA Interview Prep26
  • Capstone Timing Signoff Lab4
Loading lesson

‹Derate Policy and Approval
  1. Topics
  2. Static Timing Analysis
  3. OCV, AOCV, POCV and Variation
  4. Derate Policy and Approval
  5. Derate Audit

Part 6 · OCV, AOCV, POCV and Variation · All levels

Derate Audit

Compare the derates applied in each scenario with the policy table and with basic sanity rules: late above one, early below one, bounds respected.

On this page

    Why it matters

    A policy is only as good as its application. A typo in one scenario's script, a copy-paste from another corner, or an early derate set above one all produce wrong numbers silently. An automatic audit of the applied values takes a minute and catches them.

    Audit rules

    Rule

    Catches

    Late derate is at least 1 and early at most 1

    Swapped or sign-flipped values

    Values lie within the policy bounds for the scenario

    Typos and copy-paste from another corner

    Setup and hold values come from the right column of the policy

    Setup values used for hold

    Every scenario has a value

    Missing derates (silently ideal)

    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    policy = {"late": (1.05, 1.10), "early": (0.90, 0.95)}       # allowed range for data derates
    applied = {
        "ss_cold_cw": {"late": 1.08, "early": 0.92},
        "ss_hot_cw":  {"late": 1.08, "early": 0.92},
        "ff_hot_cb":  {"late": 1.30, "early": 0.92},
        "tt_cw":      {"late": 1.07, "early": 1.05},
    }
    required = ["ss_cold_cw", "ss_hot_cw", "ff_hot_cb", "tt_cw", "ss_cold_rcw"]
    problems = []
    for sc in required:
        if sc not in applied:
            problems.append((sc, "missing"))
            continue
        late, early = applied[sc]["late"], applied[sc]["early"]
        if late < 1.0 or early > 1.0:
            problems.append((sc, "wrong side of 1"))
        if not (policy["late"][0] <= late <= policy["late"][1]):
            problems.append((sc, "late outside policy"))
        if not (policy["early"][0] <= early <= policy["early"][1]):
            problems.append((sc, "early outside policy"))
    assert sorted(problems) == [("ff_hot_cb", "late outside policy"), ("ss_cold_rcw", "missing"), ("tt_cw", "early outside policy"), ("tt_cw", "wrong side of 1")]
    print("PASS: audit findings:", sorted(problems))

    Of five scenarios, one is missing a derate entirely (it would run ideal), one has a late value of 1.30 far outside the policy range, and one has an early value of 1.05 (above one, so it makes the capture path slower: the wrong side of one and outside the range). Three kinds of error, all invisible in a slack summary, all visible to a twenty-line script.

    What the review looks for

    • The audit runs on the applied settings read back from the tool, not on the script that was meant to set them.

    • Findings are fixed before any timing result is interpreted, and the audit is rerun after the fix.

    • The audit output is part of the signoff package.

    Common pitfall

    Auditing the script instead of the loaded settings. Order of execution, overrides and per-scenario scripts can all change what is actually applied.

    Interview

    Mention reading back the applied settings: it is the difference between intent and result.

    Check yourself Why is a missing derate worse than a wrong one?

    A missing derate means that scenario was timed with ideal variation, so its slacks look better than they are and nothing in the report shows the omission.

    Related topics

    • Over-Margin Cost

    Previous

    97 / 183

    Next: Path Depth Sensitivity

    Up next

    Up nextPath Depth Sensitivity

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Setting Derates
    • Who Approves Margins