IntermediateQuestion 97 of 112Source: Synopsys PrimeTime User Guide: Graph-Based and Path-Based Analysis

Why does a clean graph-based timing report still need a path-based rerun before signoff?

From PDVerse STA Mentor Guide · pdVerse Mentor Guide

Short Answer

Graph-based analysis (GBA) times every stage of every path using the single worst-case delay for that stage, so it never actually walks one real path start to finish. That worst case might come from a completely different path than the one being reported, which stacks extra pessimism onto the number PrimeTime prints. Path-based analysis (PBA) re-times the specific path in question using its own real delays, so signoff only trusts a report once the paths that look like they fail under GBA have been re-checked with PBA.

Technical Reference DiagramWhy does a clean graph-based timing report still need a path-based rerun before signoff?
Side-by-side timing graph showing GBA compositing worst-case delays from two different physical paths at each stage, versus PBA re-timing one real path end to end, with resulting slack values -35ps and +18ps labeled.

Technical Explanation

  • GBA builds one timing graph for the whole design and, at each pin, keeps only the worst arrival and required time seen across every path that touches that pin.
  • Because GBA mixes worst-case numbers from different paths at every stage, the "path" it reports is a worst-case composite that no signal actually travels.
  • This composite is always pessimistic, never optimistic, so a path that fails setup under GBA might have real slack once every stage is timed along its own actual path.
  • PBA re-times a single path with report_timing -pba_mode exhaustive (PT) or -pba_mode path (PT), using only the real delays that path's signal passes through.
  • PBA typically recovers some slack because the worst-case-per-stage assumption is removed, but it never makes a genuinely failing path look clean, it only tightens the number.
  • PBA on every path in a design costs far more compute than a graph-based sweep, so it is usually reserved for the paths GBA reports as violating or marginal.
  • Signoff practice runs GBA everywhere first, then reruns PBA on the reported violators before deciding a fix is really needed.

Common Mistake

The Trap: Treating a GBA violation as proof the path is broken and starting an ECO before checking whether PBA clears it.

  • This wastes engineering time fixing a path that was never actually failing, and can hide the real worst path if attention moves to the wrong fix first.

Follow-up Question & Model Response

If PBA always shows less pessimism, why does signoff not just run PBA everywhere and skip GBA entirely?

Candidate Model Response: PBA is dramatically slower because it re-times each path independently instead of reusing one shared graph, so running it on every path in a multi-million-instance design would make signoff impractical. GBA gives a fast, guaranteed-pessimistic sweep of the whole design, and its output is exactly the list PBA needs to check next. Using PBA only on GBA's reported violators keeps the full-chip pass fast while still confirming the small number of paths that matter with real numbers. This two-pass approach is standard in PrimeTime signoff flows for exactly this reason.

Practical Example

A 400MHz core reports a launch-to-capture path with -35ps of setup slack under GBA. Rerunning the same path with report_timing -from FF12/CP -to FF47/D -pba_mode exhaustive (PT) shows +18ps of slack, because the GBA number had borrowed a worse cell delay from a neighboring instance of the same standard cell that happened to sit on a slower stage elsewhere in the design. The design team drops the ECO request for this path and keeps it on a watch list instead.

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. →