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
    • Noise and Glitch Analysis
    • SI ECO Fix Order
    • SI Signoff Reports
      • Reading SI Reports
      • Windows and Filters
      • False Aggressors
      • SI Signoff Checklist
  • ECO and Closure16
  • STA Debug Playbook16
  • STA Interview Prep26
  • Capstone Timing Signoff Lab4
Loading lesson

‹SI Signoff Reports
  1. Topics
  2. Static Timing Analysis
  3. Crosstalk and Noise
  4. SI Signoff Reports
  5. Windows and Filters

Part 7 · Crosstalk and Noise · All levels

Windows and Filters

Coupling and delta thresholds shorten the report and the run time; each one hides something, and the hidden total must stay small.

On this page

    Why it matters

    A real design has millions of coupled pairs. SI analysis applies thresholds to ignore the ones that cannot matter: very small coupling, or very small delta. These save run time, but each threshold hides a total. The hidden total must be measured, not assumed negligible.

    Worked example

    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # One victim with ten aggressors: (coupling fF, delta ps if counted)
    aggs = [(3.2, 6.1), (1.8, 3.0), (1.2, 2.0), (0.8, 1.3), (0.6, 0.9), (0.4, 0.6), (0.3, 0.5), (0.25, 0.4), (0.2, 0.3), (0.15, 0.2)]
    def hidden(min_coupling):
        shown = [d for c, d in aggs if c >= min_coupling]
        dropped = [d for c, d in aggs if c < min_coupling]
        return round(sum(shown), 2), round(sum(dropped), 2), len(dropped)
    assert hidden(0.0) == (15.3, 0.0, 0)
    assert hidden(0.5) == (13.3, 2.0, 5)
    assert hidden(1.0) == (11.1, 4.2, 7)
    shown, dropped, n = hidden(0.5)
    assert round(dropped / (shown + dropped), 3) == 0.131
    print("PASS: with a 0.5 fF threshold", n, "aggressors are hidden, worth", dropped, "ps (", round(100 * dropped / (shown + dropped), 1), "% of the total )")

    Minimum coupling kept

    Shown (ps)

    Hidden (ps)

    Aggressors hidden

    none

    15.3

    0.0

    0

    0.5 fF

    13.3

    2.0

    5

    1.0 fF

    11.1

    4.2

    7

    Ten aggressors total 15.3 ps. A 0.5 fF threshold hides five of them, worth 2.0 ps (13% of the victim's total); a 1.0 fF threshold hides seven, worth 4.2 ps (27%). Most are individually small (the 0.8 fF aggressor is still worth 1.3 ps), but many small ones add up, which is why report headers should state the hidden total for every threshold. Some flows compensate by adding the hidden total back as a margin.

    Types of filters

    Filter

    What it removes

    Risk

    Minimum coupling

    Weakly coupled neighbours

    Many small ones add up

    Minimum delta

    Aggressors with a small effect

    Same, per victim

    Window overlap

    Aggressors that cannot switch together

    Windows move after fixes

    Noise threshold

    Glitches well below tolerance

    Margins of critical receivers

    What the review looks for

    • Every threshold is documented, with the hidden total on the worst victims.

    • Thresholds are the same in implementation and signoff, or the difference is in the margin ledger.

    • Nets near the thresholds are spot-checked: they flip into view after small changes.

    Common pitfall

    Raising a threshold to shorten the report. The delay it hides is real silicon delay.

    Interview

    Say that filters trade run time for a hidden total, and that the total should be reported.

    Check yourself What would a 0.3 fF threshold hide in the example?

    The aggressors below 0.3 fF: 0.25 (0.4 ps), 0.2 (0.3 ps) and 0.15 (0.2 ps), total 0.9 ps.

    Related topics

    • Reading SI Reports

    • Next: False Aggressors

    Previous

    119 / 183

    Next: False Aggressors

    Up next

    Up nextFalse Aggressors

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • SI Signoff Checklist