IntermediateQuestion 298 of 142Source PDF page undefined

How does the optimization tool actually decide which timing violations to fix first?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

The tool fixes the Worst Negative Slack (WNS) path first; once that path meets timing it moves to the next-worst, stopping when it hits a path it can't fix. To avoid the tool exhausting all effort chasing one dominant path group, paths are grouped into cost groups -- sets of critical paths with an assigned priority/weight -- so effort gets balanced across groups instead of consumed entirely by one group's single worst path.

Technical Reference DiagramHow does the optimization tool actually decide which timing violations to fix first?
How does the optimization tool actually decide which timing violations to fix first?, illustrating the physical design concept.

Technical Explanation

  • The tool fixes the Worst Negative Slack (WNS) path first; once that path meets timing it moves to the next-worst, stopping when it hits one it can't fix -- a greedy, worst-first strategy by default.
  • Without grouping, this greedy strategy risks the tool exhausting all its optimization effort chasing one dominant path group's WNS path while other groups' violations go untouched.
  • Cost groups are sets of critical paths with an assigned priority/weight; the paths within a cost group are called path groups.
  • Grouping lets the tool balance effort across groups rather than being consumed entirely by one group's single worst path.
  • Cost groups are defined and weighted with group_path -name <group> -weight <w> -from ... -to ... (verify exact flags against the ICC2 Implementation User Guide), and their resulting QoR is inspected with report_qor.

Common Mistake

The Trap: Assuming the optimizer naturally balances effort across all violating paths -- without cost groups, its default worst-first strategy can genuinely stall on one dominant group.

Follow-up Question & Model Response

"Why would this matter more on a design with several genuinely independent clock domains than on a design with just one clock?"

Candidate Model Response: Because each clock domain's paths naturally form their own cost group with its own WNS -- without explicit grouping/priority, the optimizer's worst-first strategy could spend disproportionate effort on whichever domain happens to have the single worst path, starving the others of attention even if they have many more total violations.

Practical Example

Debug Scenario: A multi-clock design shows one clock domain with excellent timing and another with persistent violations across many paths -- reviewing cost group priority reveals the well-optimized domain's single WNS path was consuming a disproportionate share of optimization effort.

Physical Design & Planning Handbook

Dive into 14 comprehensive chapters covering netlist sanity, FinFET grids, macro placement, power grids, CTS, and timing budgeting.