BeginnerQuestion 130 of 157Source: Synopsys PrimeTime User Guide: Timing Analysis

How is setup slack calculated from arrival and required time?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Setup slack is the required time minus the arrival time. Arrival time is when data actually reaches the capture flop, starting from the launch clock edge. Required time is the capture clock edge minus the setup time and uncertainty. Positive slack means the data arrives with time to spare; negative slack means it arrives too late.

Technical Reference DiagramHow is setup slack calculated from arrival and required time?
Waveform with the launch edge, data arrival time at the capture pin, and the capture edge minus setup time, with the slack arrow drawn blue when positive and red when negative.

Technical Explanation

  • Arrival time starts at the launch clock edge, adds the clock network delay to the launch flop, then the flop clock-to-Q delay, then every cell and net delay on the data path to the capture D pin. The report labels the total as data arrival time.
  • Required time starts at the next capture clock edge, one period later for a single-cycle path. It adds the clock network delay to the capture flop, subtracts clock uncertainty, and subtracts the library setup time of the capture flop. The report labels this data required time.
  • Clock reconvergence pessimism removal adds back the pessimism on the shared part of the launch and capture clock paths. It appears as its own line on the capture side and makes the required time later.
  • Skew enters through the two clock network delays. A later capture clock adds to required time and helps setup. A later launch clock adds to arrival time and hurts it.
  • Derates change the numbers without new lines in the simple report. For setup, the launch clock and data path are derated late and the capture clock early, which shrinks slack on both sides.
  • The report calculates slack as data required time minus data arrival time, so the last line is the answer. You should still be able to rebuild it from the lines above when checking a suspicious path.
  • report_timing -delay_type max (PT) and report_timing -delay_type max (ICC2) both show this structure, but values differ between the tools because the engines and parasitics differ.

Formula Or Decision Rule

  • Arrival = launch edge + launch clock latency + clock-to-Q + data path delay.
  • Required = capture edge + capture clock latency + CRPR - clock uncertainty - library setup time.
  • Setup slack = Required - Arrival.
  • Setup passes when Tlaunch_clk + Tcq + Tdata + Tsetup + Tuncertainty <= T + Tcapture_clk + CRPR.

What To Check

  • That the capture edge is one period after the launch edge, or that a multicycle exception explains why it is not.
  • The launch and capture clock network delays, and whether clocks are propagated or ideal.
  • The library setup time and clock uncertainty lines on the capture side.
  • The CRPR line, and whether it is zero because the clocks share no common path.

Command Checks & Actions

PrimeTime (pt_shell)report_timing -delay_type max

Shows the worst setup path with arrival, required and slack lines in PrimeTime.

ICC2 (icc2_shell)report_timing -delay_type max

Shows the same setup path structure inside ICC2 during implementation.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): Slack of 0 ps or better, with required time rebuilt by hand matching the report within 1 ps.
  • Suspicious (illustrative): A path passing by 2 ps whose capture clock is 150 ps later than launch clock. It depends on skew that CTS changes could remove.
  • Hard stop: Required time far outside one period on a path with no multicycle exception. The constraint or clock definition is wrong, so stop and fix the SDC before fixing timing.

Common Mistake

The Trap: Treating arrival time as the data path delay alone. A junior sums the cell delays on a path, gets 780 ps against a 1000 ps clock and says there is 220 ps of margin. The launch clock latency of 310 ps and clock-to-Q of 90 ps were left out, and the path actually fails by -40 ps.

What The Interviewer Is Testing

  • Being able to rebuild slack from the report lines rather than read only the last number.
  • Do you know which side each term sits on, especially setup time and uncertainty?
  • Understanding how skew moves slack through the launch and capture clock delays.

Follow-up Question & Model Response

"How does hold slack differ from setup slack in this calculation?"

Candidate Model Response: Hold compares the arrival against a required time taken at the same clock edge, not the next one. Required time for hold is the capture edge plus capture clock latency plus the library hold time and uncertainty. Hold slack is arrival minus required, so data must arrive after the window closes. The clock period does not appear at all, which is why slowing the clock never fixes hold.

Practical Example

Tapeout Scenario: Clock period 1000 ps (illustrative). Launch clock latency 300 ps, clock-to-Q 90 ps, data path 640 ps, so arrival is 1030 ps. Capture edge at 1000 ps plus capture clock latency 320 ps gives 1320 ps; add CRPR 10 ps, subtract uncertainty 50 ps and setup time 40 ps, so required is 1240 ps. Slack is 1240 - 1030 = +210 ps. If the data path grows to 870 ps after routing detours, arrival becomes 1260 ps and slack becomes -20 ps.

PnR Flow Mentor Guide

Read the complete 8-chapter PnR Flow Mentor Guide free on the web — library setup through placement, clock tree synthesis, routing, chip finishing, hierarchical implementation, and ECO, all the way to stream-out.

PnR Flow Physical Design Mentor Guide — eight chaptersPnR Flow Mentor GuideEight chapters, library setup through to stream-out. →