IntermediateQuestion 42 of 112Source: Synopsys PrimeTime User Guide: Clock Latency and Propagation

Why do pre-CTS and post-CTS timing reports show different slack for the same path?

From PDVerse STA Mentor Guide · pdVerse Mentor Guide

Short Answer

Before clock tree synthesis (CTS) — the step that builds the real buffered network delivering the clock to every flip-flop — the tool has no real clock wiring to measure, so it assumes an ideal clock with zero or estimated delay. After CTS, the clock has real buffers, wires, and skew, so the same path is timed against a completely different — usually less generous — set of clock arrival times.

Technical Reference DiagramWhy do pre-CTS and post-CTS timing reports show different slack for the same path?
Two side-by-side clock waveform diagrams for the same reg2reg path: an ideal zero-latency clock pre-CTS versus a propagated clock with 45ps and 10ps arrival times at the two flops post-CTS, showing the resulting skew.

Technical Explanation

The data path barely changes across this step, but the clock model changes completely.

  • Pre-CTS, the clock is ideal or estimated. Without set_propagated_clock (SDC) active on real buffers, the tool assumes every flip-flop's clock pin sees the same edge at the same time, give or take a manually entered clock latency estimate.
  • Post-CTS, the clock is a real, propagated network. Actual buffers, inverters, and wire delay now sit between the clock source and each flip-flop, so different flip-flops see the clock edge at slightly different times — this difference is clock skew.
  • Skew changes both setup and hold slack, in opposite directions depending on sign. If the capturing flop's clock edge now arrives later than the launching flop's edge, setup slack improves; if it arrives earlier, setup slack shrinks and hold risk grows.
  • The data path delay also shifts, but usually less. Placement and routing are refined further after CTS, so cell locations and net lengths change modestly — the bigger swing almost always comes from the clock side, not the logic.
  • Why it matters for planning: a path that looked comfortably positive pre-CTS can go negative post-CTS purely from skew, which is why teams do not treat a clean pre-CTS report as proof the design will close.
  • This is why a hold check run before CTS is close to meaningless. Hold checks are especially sensitive to skew, so running one before the real clock network exists mostly tests an assumption, not the design.

Common Mistake

The Trap: treating a clean pre-CTS setup and hold report as a real signal that the design is on track.

  • A designer sees all-positive slack before CTS and assumes the hard part of closure is behind them, when the clock network that drives most of the real skew has not been built yet.
  • Hold violations in particular tend to appear only after CTS, since pre-CTS ideal clocks hide the skew that causes most hold failures — so a pre-CTS hold-clean report gives false confidence.

Follow-up Question & Model Response

A path reports +120ps of setup slack pre-CTS and -15ps post-CTS. What would you check first?

Candidate Model Response: I would start by comparing clock latency at the launch and capture flops between the two reports, since a 135ps swing on one path is large enough that it is very likely a clock-skew effect rather than a data-path change. I would run report_clock_timing (PT) on both flops to see their post-CTS clock arrival times and compare that difference to what the pre-CTS ideal-clock assumption implied. If the capture flop's clock now arrives earlier relative to the launch flop than the ideal model assumed, that skew shift explains most of the slack loss, and the fix is usually a clock-tree balancing adjustment rather than resizing the data path.

Practical Example

A reg2reg path at 1.5ns period reports +120ps slack pre-CTS, assuming zero clock latency on both flops. After CTS, report_clock_timing (PT) shows the launch flop's clock arriving at 45ps and the capture flop's clock arriving at 10ps — 35ps of skew working against the path. Combined with a 20ps increase in data path delay from final placement, the path drops to -15ps post-CTS. The clock-tree team rebalances that branch, and a rerun shows the skew reduced to 8ps, bringing the path back to +12ps without touching the data path at all.

Complete STA Handbook

Get the complete 10-chapter STA handbook covering setup/hold margins, clock modeling, OCV/POCV, crosstalk noise, and PrimeTime closure.

Static Timing Analysis (STA) Handbook — ten chaptersSTA HandbookTen chapters on setup, hold, OCV, and PrimeTime signoff. →