IntermediateQuestion 174 of 192Source: Synopsys PrimeTime User Guide U-2022.12-SP2: Reporting and Debugging Analysis Results (Path-Based Timing Analysis)

When do you run exhaustive PBA, and how do you keep it affordable?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Run exhaustive PBA when graph-based violations are close enough that removing pessimism could clear them, and always for final signoff numbers. Keep it affordable by scoping it: search only failing paths with -slack_lesser_than, check with -pba_mode path first, and narrow to the groups or endpoints you need. Never waive a violation on ml_exhaustive results, because ML-PBA can miss worse paths and extra failing endpoints.

Technical Reference DiagramWhen do you run exhaustive PBA, and how do you keep it affordable?
A flow from graph-based violators to a path-mode PBA check, then a scoped exhaustive PBA run with slack filter and endpoint limit, ending at signoff, with a side branch marking ML-PBA results as never waivable.

Technical Explanation

  • Path mode recalculates the paths graph-based analysis picked without searching further, so its slack either matches a full search or is slightly optimistic. Exhaustive mode keeps searching until the returned paths are the worst after recalculation.
  • The PT UG advice is to use exhaustive with -slack_lesser_than, run it only when path mode shows slacks near the target, keep the scope specific, and set timing_report_use_worst_parallel_cell_arc (PT) to true.
  • report_timing -pba_mode exhaustive -slack_lesser_than 0 (PT) returning no paths means no violations. -max_paths and -nworst count at the end of the search, and a large -nworst raises runtime quickly.
  • pba_exhaustive_endpoint_path_limit (PT) defaults to infinity, which is guaranteed to find the worst slack. An integer is faster when graph and path slacks already agree, but by default an endpoint that hits the limit drops out of the search with a UITE-480 warning.
  • ML-PBA is a subset of exhaustive. If it reports no violations, exhaustive agrees, but when it reports violations there may be worse paths and more endpoints, and the tool warns with UITE-647. It needs the endpoint limit at infinity and a PrimeTime-ADV-PLUS license.
  • By default only the data portion is recalculated; clock paths are recalculated only with pba_recalculate_full_path (PT) set to true.
  • Early on, cover-design reports with path-mode PBA find violations quickly; exhaustive is for signoff.
  • fix_eco_timing -pba_mode exhaustive (PT) fixes against recalculated slack, so no cells are spent on pessimism.

What To Check

  • The gap between graph-based and path-mode slack on the worst paths.
  • The endpoint limit setting and any UITE-480 warnings.
  • UITE-647 warnings anywhere in a signoff log.
  • Runtime per path group.

Command Checks & Actions

PrimeTime (pt_shell)report_timing -pba_mode path -slack_lesser_than 0 -max_paths 200

Quick look at how much recalculation helps.

PrimeTime (pt_shell)report_timing -pba_mode exhaustive -slack_lesser_than 0

Worst recalculated path per group; nothing reported means no violations.

PrimeTime (pt_shell)report_timing -pba_mode exhaustive -nworst 1 -slack_lesser_than 0 -max_paths 1000

Worst recalculated path to each violating endpoint.

PrimeTime (pt_shell)set_app_var pba_exhaustive_endpoint_path_limit 25000

Integer limit mode, faster when graph and path slacks already agree.

PrimeTime (pt_shell)fix_eco_timing -type setup -pba_mode exhaustive

Fixes against exhaustive recalculated slack.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): Exhaustive PBA on 420 graph-based violators leaves 36, and the search finishes in under an hour.
  • Suspicious (illustrative): UITE-480 limit warnings on dozens of endpoints, which left the search and are unverified.
  • Hard stop: Any signoff waiver based on a log that contains UITE-647.

Common Mistake

The Trap: Running exhaustive PBA with -nworst 50 across the whole design on the first routed run. The search runs overnight, most paths fail by 50 ps so recalculation cannot save them, and the useful answer arrives a day late.

What The Interviewer Is Testing

  • The three modes and ML-PBA's subset rule.
  • Can you name the scoping levers and the endpoint limit behaviour?

Follow-up Question & Model Response

"Why is path-mode PBA not enough for signoff?"

Candidate Model Response: Path mode recalculates only the paths graph-based analysis already chose, with no further search. Another path to the same endpoint may have worse recalculated slack than the one ranked first, so path mode can be slightly optimistic. Exhaustive mode keeps searching until the returned paths are guaranteed to be the worst after recalculation. Signoff needs that guarantee.

Practical Example

Tapeout Scenario: Routed graph-based timing shows 420 violating endpoints with WNS -38 ps (illustrative). -pba_mode path on those paths shows 390 within 10 ps of passing, so exhaustive is worth running. report_timing -pba_mode exhaustive -slack_lesser_than 0 (PT) finishes in 40 minutes and leaves 36 endpoints with WNS -21 ps. An earlier ML-PBA run had reported 31, and the 5 extra endpoints, plus worse slack on 2 others, show why ML results are never waived. fix_eco_timing -type setup -pba_mode exhaustive (PT) then clears all 36.

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.

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