Timing path anatomy
Common path types are register-to-register, input-to-register, register-to-output, and input-to-output.
Each path has an arrival time and a required time. Slack is the remaining timing margin after accounting for delays and constraints.
Setup and hold checks
Hold slack = earliest arrival time - earliest required time
Negative slack = violation
Setup is a maximum-delay check and is related to clock period. Hold is a minimum-delay check around the capture edge and is not repaired by simply lowering frequency.
Corners and uncertainty
Delay changes with process, voltage, and temperature. Analysis also includes clock latency, skew, jitter/uncertainty, derates, and timing exceptions. Setup often becomes harder at slow data conditions; hold often becomes harder at fast data conditions, but the actual signoff setup depends on the library and methodology.
Required time = 4.70 ns and arrival time = 4.95 ns. Slack = 4.70 - 4.95 = -0.25 ns, so the path fails setup by 250 ps.
Possible fixes include reducing data-path delay, improving placement/routing, adjusting the pipeline, or reviewing valid constraints.
Common mistakes
- Looking only at total negative slack while ignoring the worst path and path groups.
- Fixing a timing report before checking whether clocks and I/O delays are constrained correctly.
- Applying false-path or multicycle exceptions without proving functional intent.
- Assuming setup fixes cannot create hold problems, or vice versa.