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
  • Crosstalk and Noise16
    • Delta Delay Mechanism
      • Coupling and Aggressors
      • Switching Windows
      • Delta Delay Arithmetic
      • Setup Versus Hold Impact
    • Noise and Glitch Analysis
    • SI ECO Fix Order
    • SI Signoff Reports
  • ECO and Closure16
  • STA Debug Playbook16
  • STA Interview Prep26
  • Capstone Timing Signoff Lab4
Loading lesson

‹Delta Delay Mechanism
  1. Topics
  2. Static Timing Analysis
  3. Crosstalk and Noise
  4. Delta Delay Mechanism
  5. Switching Windows

Part 7 · Crosstalk and Noise · All levels

Switching Windows

A neighbour only matters if it can switch at the same time as the victim; timing windows decide which aggressors overlap.

On this page

    Why it matters

    Treating every coupled neighbour as switching against the victim is safe but wildly pessimistic. Most neighbours switch at other times. STA already computes the earliest and latest times each net can switch, called its timing window, and uses them to discard aggressors that cannot overlap.

    Worked example

    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    victim = (1.00, 1.30)                      # earliest and latest switching time of the victim, ns
    aggressors = {                              # name: (window, delta delay it would cause if it overlaps, ps)
        "A1": ((0.20, 0.50), 6.0),
        "A2": ((1.20, 1.60), 5.0),
        "A3": ((1.25, 1.28), 4.0),
        "A4": ((1.35, 1.45), 3.0),
    }
    def overlaps(w1, w2):
        return w1[0] <= w2[1] and w2[0] <= w1[1]
    active = {n: d for n, (w, d) in aggressors.items() if overlaps(victim, w)}
    assert sorted(active) == ["A2", "A3"]
    pessimistic = sum(d for _, d in aggressors.values())
    windowed = sum(active.values())
    assert (pessimistic, windowed) == (18.0, 9.0)
    print("PASS: aggressors that can overlap", sorted(active), "; delta with all", pessimistic, "ps, with windows", windowed, "ps")

    Aggressor

    Window (ns)

    Overlaps victim 1.00 to 1.30?

    Counted delta (ps)

    A1

    0.20 to 0.50

    No: finished before the victim can switch

    0

    A2

    1.20 to 1.60

    Yes

    5

    A3

    1.25 to 1.28

    Yes

    4

    A4

    1.35 to 1.45

    No: starts after the victim's latest time

    0

    Four aggressors could add 18 ps if all were assumed to hit. Only A2 and A3 have windows that overlap the victim's window, so 9 ps is counted. Windows come from the timing analysis itself, so they depend on the delays, and the delays depend on the deltas: tools iterate until the windows settle. Windows are conservative by design: a window is the full range of times, not the times that actually happen together. Real filtering compares the aggressor's transition interval (arrival plus slew) with the victim's, a further reason windows stay conservative.

    What the review looks for

    • Window-based filtering is on, and the windows come from the same view and analysis as the victim.

    • Aggressors from asynchronous clocks are treated as overlapping, because no window relationship exists.

    • A change that moves a net's arrival time (an ECO, a different clock tree) triggers a rerun, since windows move with it.

    Common pitfall

    Fixing a victim by pushing an aggressor's window away without noticing the side effect. The aggressor's own timing changes, and other victims' windows may now overlap with it.

    Interview

    Explain why windows reduce pessimism and why they are still conservative.

    Check yourself If the victim's window were 1.00 to 1.50 ns, which aggressors would overlap?

    A2 (1.20-1.60), A3 (1.25-1.28) and A4 (1.35-1.45): all start before the victim's latest time 1.50 ns and end after its earliest, so the counted delta would be 12 ps.

    Related topics

    • Coupling and Aggressors

    • Next: Delta Delay Arithmetic

    Previous

    107 / 183

    Next: Delta Delay Arithmetic

    Up next

    Up nextDelta Delay Arithmetic

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Setup Versus Hold Impact