SI deltas are small per net and add along a path. A path with 50 ps of slack in a quiet analysis can lose 20 ps to crosstalk and a marginal path can turn negative. The arithmetic is simple and worth doing by hand once.
period, setup = 500.0, 50.0
def slack(cell, net, delta=None):
delta = delta or [0] * len(net)
arrival = sum(cell) + sum(net) + sum(delta)
return period - setup - arrival
# Path A: four cells and four nets
cellA, netA, dA = [60, 80, 70, 90], [20, 35, 15, 30], [4, 9, 0, 6]
nominalA, siA = slack(cellA, netA), slack(cellA, netA, dA)
assert (nominalA, siA) == (50.0, 31.0)
# Path B: same total SI delta, but less nominal slack
cellB, netB, dB = [60, 85, 75, 95], [30, 40, 20, 33], [5, 8, 3, 3]
nominalB, siB = slack(cellB, netB), slack(cellB, netB, dB)
assert (nominalB, siB) == (12.0, -7.0)
assert sum(dA) == sum(dB) == 19
print("PASS: path A", nominalA, "->", siA, "ps; path B", nominalB, "->", siB, "ps")Path | Nominal arrival (ps) | SI delta (ps) | Nominal slack (ps) | Slack with SI (ps) |
|---|---|---|---|---|
A | 400 | 19 | 50 | 31 |
B | 438 | 19 | 12 | -7 |
Both paths pick up 19 ps of crosstalk delay (the sum of the four per-net deltas). Path A has plenty of margin and remains positive. Path B, with 12 ps of nominal slack, becomes a violation of 7 ps: it passed a timing run without SI and fails with it. This worked example models data-path deltas only; a full check adds the launch-clock and capture-clock path deltas, crediting the common clock segment rather than applying it in opposite directions. This is the common pattern: SI creates new violations on paths that looked fine, mostly those that were already close to zero.
Setup and hold reports are produced with SI on; a clean run without SI is not signoff evidence.
The per-path SI delta (the sum of deltas) is visible in the report, so a reviewer can tell how much of a violation is crosstalk.
Paths whose violation is mostly crosstalk are candidates for the SI fixes in this section, before sizing the data path.
12 - 13 = -1 ps: still a small violation, so the fix must also remove another delta or the path needs a sizing change.