A path that closes in synthesis can fail after routing, and the cause is usually the wires. Pre-route estimates (wire-load models based on fanout, or placement-based estimates) are averages; routed parasitics are specific. Understanding the gap tells you how much margin early stages need.
Wire-load model | Placement estimate | Routed extraction | |
|---|---|---|---|
Information used | Net fanout and block size class | Estimated route from cell positions | Real geometry, layers, coupling |
Typical error | Large; can be optimistic or pessimistic per net | Moderate | None beyond extraction accuracy |
Used for | Early synthesis | Placement optimisation | Signoff |
# Wire cap by fanout from a (made-up) wire-load table versus extracted values for four nets
wlm = {1: 3.0, 2: 5.0, 3: 7.0, 4: 9.0} # fF
nets = [("n1", 1, 2.0), ("n2", 2, 11.0), ("n3", 3, 6.5), ("n4", 4, 18.0)] # (name, fanout, extracted fF)
errors = {n: round(ext - wlm[f], 1) for n, f, ext in nets}
assert errors == {"n1": -1.0, "n2": 6.0, "n3": -0.5, "n4": 9.0}
under = [n for n, e in errors.items() if e > 0] # estimate too small: the real net is slower
assert under == ["n2", "n4"]
print("PASS: nets where the estimate is optimistic:", under, "errors (fF):", errors)The table estimates by fanout alone, so it cannot know that n4's loads are far apart. On two of four nets the estimate is too low (by 6 and 9 fF), making the pre-route result optimistic exactly where long wires live. Because the errors are not symmetric in effect (underestimates hurt, overestimates waste), early stages carry margin, and the margin is reduced as better parasitics arrive.
The correlation between implementation-stage and signoff-stage timing is measured per stage and used to set margins.
Nets with a large estimate-to-extracted error are examined: they point to placement or fanout problems.
Signoff uses extracted parasitics in the appropriate RC corners; earlier numbers are directional only.
Long nets carry the most delay, so an underestimate there can flip a path from passing to failing. An overestimate on a short net wastes a little area or margin but does not cause a failure.