Arrival time is when a transition reaches a node, summed from the launching flop along the path. It adds the clock-to-Q delay to every cell and net delay on the way.
Required time is the deadline at that node, set by the capturing clock edge minus margins. For a setup check with zero skew it is the clock period minus the setup time.
Slack sign | Meaning | What follows |
|---|---|---|
Positive | The signal arrives before it is needed. | Margin exists; the path meets timing. |
Zero | Arrival exactly meets the deadline. | Met, with no margin for variation. |
Negative | The signal arrives after it is needed. | The path fails; its magnitude is the violation. |
Slack is required time minus arrival time, in nanoseconds. Each endpoint reports its worst slack, and the design reports the worst over all endpoints.
The critical path is the path with the smallest slack. It limits the clock speed, so the tool spends its effort there first.
Take an EXAMPLE 4.00 ns clock, a launch clock-to-Q of 0.30 ns, and 2.60 ns of combinational delay. The capturing flop needs 0.40 ns of setup.
EXAMPLE parameters (not real library values): period 4.00 ns, clock-to-Q 0.30 ns, combo 2.60 ns, setup 0.40 ns
arrival = 0.30 + 2.60 = 2.90 ns
required = 4.00 - 0.40 = 3.60 ns
slack = 3.60 - 2.90 = +0.70 ns -> path P1 meets timing
a second path P2 arrives at 3.90 ns against the same required time
slack P2 = 3.60 - 3.90 = -0.30 ns -> P2 violates and is the critical pathThe first slack is +0.70 ns and the second is -0.30 ns. The second path is critical because its slack is worse.
Slack falls by exactly 0.50 ns. Slack moves one-for-one with either term.