You may already noticed that we specified “-pba_mode” in “report_timing” command. This relates to PrimeTime’s different modes of analysis:
Graph based analysis, or GBA
Path based analysis, or PBA
GBA mode is the default analysis in PrimeTime. It uses the worst input slew of a cell to calculate that cell’s output transition. The calculated output slew will be used to calculate the delays of downstream cells.
GBA mode is pessimistic in the analysis of certain paths.
PBA mode performs path-specific slew propagation. It first computes path-specific cell and net delays, then computes path specific slew degradation across nets, and finally re-computes resulting path delay.
PBA mode is computationally prohibitive to apply to the entire design. It can only be applied on user specified timing paths.
PBA mode has two options: path and exhaustive.
PBA Mode: Path and Exhaustive
Path option is fast, but it does not guarantee that the reported paths are truly the paths that have the worst slack. This is useful to get an idea how much improvement the PBA might provide.
Exhaustive is a global recalculation. It calculates up to 25000 paths per endpoint. It ensure that the reported paths are truly the paths with the worst recalculated slacks.
In early stage of the development, runtime is the major concern, thus designers should consider using GBA mode; at more advanced stage or sign-off stage, accuracy is more important, thus designer should consider using PBA mode.
The differences between GBA mode and PBA mode, Path and Exhaustive are quite popular in hardware interviews, especially for testing interviewee’s understanding of PrimeTime. We recommend readers to memorize the differences between these modes.
In next post, we will dive into how to verify SDC.