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. Max Transition and Capacitance

Part 2 · Constraints and SDC · All levels

Max Transition and Capacitance

Design-rule constraints limit transition, capacitance and fanout; violations flag nets where delay models are least reliable.

On this page

    Why it matters

    A library characterises cells only up to some maximum input transition and output load. Beyond them delay numbers are extrapolated and unreliable, and the physical behaviour (noise, power) degrades. Design-rule constraints turn those limits into checks so the timing numbers can be trusted. Two limits look alike: the library's own max_transition is the characterised range, beyond which the tables are extrapolated; a project set_max_transition is a design limit, often tighter, and breaking it breaks the project's slew budget rather than the library tables.

    The constraints

    Diagram
    # not-run: SDC is not executable here
    set_max_transition 0.30 [current_design]                   ;# no net may have a slew above 0.30 ns
    set_max_capacitance 0.080 [get_ports data_out]             ;# limit on a driver's load
    set_max_fanout 20 [current_design]                         ;# limit on fanout (units: loads)

    Rule

    What exceeding it means

    Typical fix

    Max transition

    Slow edge: larger delay, noise sensitivity, short-circuit power

    Buffer the net or upsize the driver

    Max capacitance

    Driver loaded beyond its characterised range

    Buffer, split fanout, upsize

    Max fanout

    Too many loads on one driver

    Buffer tree

    Min pulse width / period

    Covered in the advanced checks section

    n/a here

    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # Transition check on nets: slew limit 0.30 ns
    nets = {"n1": 0.18, "n2": 0.34, "n3": 0.30, "n4": 0.52}
    limit = 0.30
    viol = {n: round(s - limit, 2) for n, s in nets.items() if s > limit}
    assert viol == {"n2": 0.04, "n4": 0.22}
    assert "n3" not in viol            # equal to the limit is not a violation
    worst = max(viol.values())
    assert worst == 0.22
    print("PASS: transition violations", viol)

    Two of four nets exceed the 0.30 ns limit, by 0.04 and 0.22 ns; the net exactly at 0.30 ns passes. A design-rule violation is not a timing violation: it says the net breaks the project's slew budget there, so a clean slack on that path is not a guarantee.

    What the review looks for

    • Design-rule violations are zero (or individually signed off) before timing is trusted.

    • Limits come from the library and the project's rules, not from tuning to pass.

    • Rule violations are fixed by structural change (buffering, sizing), not by raising the limit.

    Common pitfall

    Raising max transition to remove violations. The library characterisation did not change, so the numbers that follow are extrapolations. Fix the net.

    Interview

    Say why DRC and timing are linked: a project max-transition limit keeps slews inside the characterised range with margin for noise and power, so the table lookups stay reliable; fix the net, do not raise the limit.

    Check yourself A net violates max transition by 0.22 ns but all its paths have positive setup slack. Can you ignore it?

    No. The net breaks the project's 0.30 ns slew limit: slow edges inflate delay, noise sensitivity and short-circuit power, so the positive slack cannot be trusted until the net is fixed by buffering or upsizing, not by raising the limit.

    Related topics

    • Case Analysis and Disable Timing

    • Next: Operating Conditions and Units

    Previous

    39 / 183

    Next: Operating Conditions and Units

    Up next

    Up nextOperating Conditions and Units

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Constraint Sanity Checks