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
    • Latches and Time Borrowing
    • Clock Gating Checks
    • Recovery, Removal and Async
    • Pulse Width and Min Period
      • Minimum Pulse Width
      • Minimum Period
      • Duty Cycle Distortion
      • Pulse Width Signoff
  • 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

‹Pulse Width and Min Period
  1. Topics
  2. Static Timing Analysis
  3. Beyond Setup and Hold
  4. Pulse Width and Min Period
  5. Minimum Pulse Width

Part 4 · Beyond Setup and Hold · All levels

Minimum Pulse Width

Each clock pin has a minimum high width and a minimum low width; the check compares the actual phase width at the pin with them.

On this page

    Why it matters

    A flop or macro needs its clock to stay high long enough to latch internal nodes, and low long enough to precharge or reset them. A phase that is too narrow can fail even when every setup and hold check passes. The cell library gives the limits, and STA compares them with the clock waveform at the pin.

    The check

    Diagram
    high slack = (width of the high phase at the pin) - (minimum pulse width, high)
    low slack  = (width of the low phase at the pin)  - (minimum pulse width, low)
    width of a phase = (opposite edge arrival) - (this edge arrival), at the pin, for that corner
    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # Ideal clock, period 1.00 ns (1 GHz), 50% duty. Memory pin limits (illustrative): high 0.42, low 0.42 ns.
    period, duty = 1.00, 0.50
    high, low = period * duty, period * (1 - duty)
    min_high, min_low = 0.42, 0.42
    slack_high = high - min_high
    slack_low = low - min_low
    assert abs(high + low - period) < 1e-9
    assert abs(slack_high - 0.08) < 1e-9 and abs(slack_low - 0.08) < 1e-9
    # the same pin at 1.25 GHz (period 0.80): 0.40 per phase
    period2 = 0.80
    slack2 = period2 * 0.5 - 0.42
    assert abs(slack2 - (-0.02)) < 1e-9
    print("PASS: slack at 1 GHz", round(slack_high, 2), "; at 1.25 GHz", round(slack2, 2))

    At 1 GHz with a 50% duty cycle each phase is 0.50 ns, so a 0.42 ns limit leaves 0.08 ns of slack on both. Push the clock to 1.25 GHz and each phase is 0.40 ns: the limit is missed by 0.02 ns on both phases at once. Frequency alone, with a perfect duty cycle, can therefore violate the check; it does not need distortion.

    Where limits come from

    Source

    Typical limits

    Flop library cell

    Small relative to the period; rarely limiting

    Memory and macro models

    Often the tightest; given per clock pin and per phase

    Latches

    Related to the transparent window

    Clock gating cells

    Characterised for the enable relationship and the pulse

    What the review looks for

    • Pulse width checks are reported and clean for both phases, in every corner.

    • The worst case is read at the pin, after the clock tree, not at the clock source.

    • A violation is reported as a high or low phase specifically, since the fixes differ.

    Common pitfall

    Checking pulse width against the ideal clock waveform. The tree changes it, so the check must use the propagated clock at the pin.

    Interview

    State that both phases have limits and that the sum of the two widths always equals the period, so a duty cycle error moves slack from one phase to the other.

    Check yourself A pin has limits of 0.30 ns high and 0.30 ns low. What is the highest frequency at 50% duty?

    Each phase must be at least 0.30 ns, so the period must be at least 0.60 ns: about 1.67 GHz.

    Related topics

    • Next: Minimum Period

    Previous

    70 / 183

    Next: Minimum Period

    Up next

    Up nextMinimum Period

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Duty Cycle Distortion
    • Pulse Width Signoff