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
    • Clock Definition & Uncertainty
    • Generated Clocks & Dividers
    • I/O Timing & Boundary Contracts
    • Exceptions & Audit Policy
    • Environment and Design Rules
      • Case Analysis and Disable Timing
      • Max Transition and Capacitance
      • Operating Conditions and Units
      • Constraint Sanity Checks
  • Delay Graph & Path Analysis16
  • Beyond Setup and Hold16
  • Multi-Corner Multi-Mode Signoff16
  • OCV, AOCV, POCV and Variation16
  • Crosstalk and Noise16
  • ECO and Closure16
  • STA Debug Playbook16
  • STA Interview Prep26
  • Capstone Timing Signoff Lab4
Loading lesson

‹Environment and Design Rules
  1. Topics
  2. Static Timing Analysis
  3. Constraints & SDC Fundamentals
  4. Environment and Design Rules
  5. Constraint Sanity Checks

Part 2 · Constraints and SDC · All levels

Constraint Sanity Checks

Checks that run before timing: unconstrained endpoints, missing clocks, loops, constant conflicts and exception problems.

On this page

    Why it matters

    Most timing mysteries are constraint mistakes. A short, standard battery of checks before looking at slack finds them. Tools provide this under names like check_timing; the categories are generic.

    The battery

    Category

    Finding

    Action

    No clock

    Sequential pins with no clock

    Add or fix generated clocks and case analysis

    Unconstrained endpoints

    Endpoints with no requirement

    Add input/output delays and clocks

    Generated clock problems

    Master missing or ambiguous

    Fix the source pin

    Loops

    Combinational loops in the timing graph

    Break by design or a documented disable

    Multiple clocks per pin

    Pins reached by more than one clock

    Intentional mux, or a missing exclusive group

    Constant conflicts

    Case analysis values that contradict logic

    Correct the mode constants

    Ignored exceptions

    Exceptions with no matching objects or overridden

    Remove or fix

    example.py
    1
    2
    3
    4
    5
    6
    7
    report = {"no_clock": 0, "unconstrained": 12, "gen_clock": 0, "loops": 1, "multi_clock": 0,
              "const_conflict": 0, "ignored_exceptions": 3}
    blocking = {k: v for k, v in report.items() if v}
    assert blocking == {"unconstrained": 12, "loops": 1, "ignored_exceptions": 3}
    ready = not blocking
    assert ready is False
    print("PASS: not ready for slack review; blocking findings:", blocking)

    The report has three blocking categories, so reading slack is premature. The rule is simple: the sanity checks are clean (or explained) before slack is trusted. This is the gate between constraint development and timing closure.

    What the review looks for

    • The check battery runs in CI on every constraint change, and its output is archived.

    • Each remaining finding has a waiver with a reason, never a blanket suppression.

    • A check that went from 0 to non-zero is investigated before any other change.

    Common pitfall

    Skipping the checks because slack looks fine. A design with unconstrained endpoints or no-clock flops often has good slack precisely because those paths are not checked.

    Interview

    Name the first three checks you run on a new constraint set: no-clock pins, unconstrained endpoints, and ignored exceptions.

    Check yourself The sanity check reports 0 findings in every category but the design uses ten clock domains. Is the setup complete?

    Not necessarily. Zero findings means no detected structural errors; it does not prove the clock relationships and exceptions are right. They still need the review items from the earlier lessons.

    Related topics

    • Operating Conditions and Units

    • Verifying Clock Propagation

    Previous

    41 / 183

    Next: Delay Graph & Path Analysis

    Up next

    Up nextDelay Graph & Path Analysis

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Case Analysis and Disable Timing
    • Max Transition and Capacitance