(snip, someone wrote)
(snip)
It seems to me that they do pretty well.
Well, the effects of voltage and temperature should be pretty much the same for all transistors on a chip. But process variations could be very different.
They verify that the usual paths have delay variations that they can account for, and compute delays based on those. If there are some that they can't account for the delays, at least not to the accuracy required, then they don't guarantee those.
As far as I understand, though mostly in general, the idea is to make clock skew in a clock tree small enough, relative to the minimum delay through routing, that two FFs clocked off the same clock can't violate hold time. The skew also must be added to the delay when verifying setup time.
But that only works within one clock tree. Computing the variation between two clock trees is different.
Now, it would be nice to say that some delay is not characterized enough to use, and so far I haven't seen that they do say that, but it isn't the tools' fault if the data isn't available.
-- glen