How do you read a timing report line by line?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
Read a timing report top to bottom in four blocks: the header, the launch side, the capture side and the slack line. The header names the startpoint, endpoint, path group and path type. The launch side builds data arrival time and the capture side builds data required time. The last line subtracts one from the other.
Technical Explanation
- The header tells you what you are looking at: startpoint and endpoint with their clocks, the path group, and whether the path type is max (setup) or min (hold). Check these first, because a wrong clock or path group means the numbers below answer a different question.
- Two columns do the work. Incr is the delay added by that line and Path is the running total. When a single Incr value is much bigger than its neighbours, that line is usually the problem: a weak cell, a long net or a large fanout.
- The launch side starts with the clock edge, then the clock network delay to the launch flop, then the flop clock-to-Q and each cell and net on the data path. It ends with data arrival time.
- The capture side starts with the next clock edge, adds the capture clock network delay, then shows clock reconvergence pessimism, clock uncertainty and library setup time. It ends with data required time.
- The CRPR line is positive credit: it adds back pessimism on the clock path shared by launch and capture. A zero there on flops sitting next to each other on the same clock branch is worth questioning.
- The last line is slack, reported as MET or VIOLATED. Rebuild it once from the lines above so you know the report is doing what you think.
- Add options when you need detail.
report_timing -path_type full_clock(PT) shows every clock buffer, andreport_timing -transition_time -capacitance(PT) shows why a stage is slow. Keep the default report for the first read.
What To Check
- Startpoint, endpoint and their clocks match the path you meant to look at.
- The largest Incr values on the data path and whether they are cells or nets.
- The difference between launch and capture clock network delay, which is the skew on this path.
- The CRPR, uncertainty and library setup time lines on the capture side.
- That slack equals data required time minus data arrival time.
Command Checks & Actions
report_timing -delay_type max -max_paths 1Prints the single worst setup path in full so you can read it line by line.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): Every Incr under about 15% of the period on a reg-to-reg path, skew under 30 ps, and slack at or above 0.
- Suspicious (illustrative): One net Incr that is 3 to 4 times its neighbours. Look for a detour, a high fanout or a missing buffer.
- Hard stop: Endpoint clocked by a clock you did not expect, or data required time missing entirely because the endpoint is unconstrained. Fix the constraints before touching the path.
Common Mistake
The Trap: Reading only the slack line and the endpoint name. A junior sees VIOLATED -35 ps on a reg-to-reg path and starts upsizing cells. The report showed a clock network delay of 480 ps on launch and 360 ps on capture, so 120 ps of negative skew was the real cause. Three rounds of sizing added area and leakage without fixing the path.
What The Interviewer Is Testing
- Being able to point at the line that causes the violation instead of only reading slack.
- Do you know what the CRPR, uncertainty and setup time lines each represent?
- Checking the header before trusting the numbers below it.
Follow-up Question & Model Response
"A report shows a net Incr of 180 ps where others are around 20 ps. What do you look at next?"
Candidate Model Response: I would check the transition and capacitance at that point, using report_timing -transition_time -capacitance (PT). A large Incr on a net usually means a long wire, a high fanout or a weak driver, and the transition value tells me which. I would then look at the layout to see if the net detours. If the driver is weak I size it; if the net is long I buffer it; if the fanout is high I split it.
Practical Example
Tapeout Scenario: A report shows data arrival time 1.214 ns and data required time 1.186 ns, slack -0.028 ns (illustrative). On the launch side the clock network delay is 0.412 ns, clock-to-Q 0.082 ns, and one net Incr is 0.164 ns against about 0.020 ns elsewhere. On the capture side the network delay is 0.405 ns, CRPR +0.012 ns, uncertainty -0.040 ns and library setup -0.036 ns on a 0.845 ns period. That one net is the target: a buffer on it saves 0.070 ns and the path passes at +0.042 ns.
PnR Flow Mentor Guide
Master the Physical Design Implementation Flow
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.

Continue practising