Spacing and shielding are the physical fixes. They cost routing resources, so it is worth knowing what they deliver. A first-order estimate shows both the gain and the price.
R, Cg, Cc0 = 2000.0, 8.0, 6.0
def d(c): # lumped delay in ps
return 0.69 * R * c / 1000.0
rows = {}
for label, spacing in (("minimum", 1.0), ("1.5x", 1.5), ("2x", 2.0)):
cc = Cc0 / spacing # first order: coupling falls as spacing grows
worst, quiet = d(Cg + 2 * cc), d(Cg + cc)
rows[label] = (round(worst, 2), round(worst - quiet, 2))
assert rows == {"minimum": (27.6, 8.28), "1.5x": (22.08, 5.52), "2x": (19.32, 4.14)}
shield_delay = d(Cg + Cc0) # coupling becomes ground capacitance: k = 1 whatever the aggressor does
assert round(shield_delay, 2) == 19.32
print("PASS: (worst delay, delta) by spacing", rows, "; shielded delay", round(shield_delay, 2), "with delta 0")Option | Worst-case delay (ps) | Delta vs quiet (ps) |
|---|---|---|
Minimum spacing | 27.60 | 8.28 |
1.5x spacing | 22.08 | 5.52 |
2x spacing | 19.32 | 4.14 |
Shielded (modelled as all coupling to ground) | 19.32 | 0 |
Doubling the spacing halves the coupling and cuts the worst-case delay from 27.60 to 19.32 ps while keeping a delta of 4.14 ps. Shielding gives the same worst-case delay in this model but with no variation at all: the shielded delay of 19.32 ps equals the quiet nominal of 19.32 ps, so shielding does not raise nominal delay here. What it does is lower the worst case (27.6 to 19.32 ps) and give up the best-case speed-up (11.04 ps). Nominal delay rises only if the shield adds ground capacitance beyond the coupling it replaces, and shielding costs tracks. The inverse proportionality is a rough rule; real coupling depends on layer, height and the other neighbours, and spacing a wire away from one aggressor can move it closer to another.
Spacing and shielding changes are checked against routing capacity: an ECO that cannot be routed has no value.
Shielded nets have their nominal delay re-checked, since the ground capacitance is now always present.
Spacing changes are re-extracted: the new parasitics, not the estimate, decide the result.
At 2x spacing the coupling is 3 fF, so the worst case is 8 + 2×3 = 14 fF; shielding makes the effective load 8 + 6 = 14 fF. Both give 14 fF, so 19.32 ps; the model is simple, and in practice the two would differ.