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

AboutRoadmapCareersInternshipsFAQContactPrivacyTerms
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
On this page

    Part 6 of 11, lesson 8 of 16Part 6 of 11/OCV, AOCV, POCV and Variation/Lesson 8 of 16All 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.

    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.

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

    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 lessonPrevious lessonReport an error

    See also

    • Setting Derates
    • Who Approves Margins