IntermediateQuestion 329 of 142Source PDF page undefined

How do the congestion-driven and timing-driven placement styles actually trade off against each other?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Congestion-driven placement relaxes cell density at the cost of slightly higher interconnect length and silicon area -- it prioritizes routability. Timing-driven placement chases the best timing, possibly leaving congestion issues unresolved. Neither is strictly better; the choice depends on which risk (a routing-incomplete design, or a timing-failing design) is the bigger concern for a given block.

Technical Reference DiagramHow do the congestion-driven and timing-driven placement styles actually trade off against each other?
How do the congestion-driven and timing-driven placement styles actually trade off against each other?, illustrating the physical design concept.

Technical Explanation

  • Congestion-driven placement style relaxes cell density at the cost of slightly higher interconnect length and silicon area -- it prioritizes making the design routable over squeezing out every bit of timing margin.
  • Timing-driven placement chases the best timing, possibly leaving congestion issues unresolved as a consequence.
  • Neither style is strictly better -- the choice depends on which risk (an incomplete/DRC-heavy route, versus failing timing) is the bigger concern for a given block's actual characteristics.
  • A very-high-density design benefits most from congestion-driven placement specifically, since congestion risk scales with density -- a lower-density design has more slack to prioritize timing without routing risk becoming dominant.
  • The two styles map directly to real flags: create_placement -congestion -congestion_effort high for congestion-driven, versus create_placement -timing_driven for timing-driven.

Common Mistake

The Trap: Defaulting to timing-driven placement for every block regardless of density, when a very-high-density block's real risk is congestion/routability, not timing margin -- the wrong style choice for that block's actual risk profile.

Follow-up Question & Model Response

"How would you decide, for a specific block, which style is the right default rather than guessing?"

Candidate Model Response: By looking at the block's actual utilization/density and prior congestion history -- a block with high density or a history of routing DRC issues should default to congestion-driven placement, while a block with comfortable density and known-tight timing paths should default to timing-driven placement.

Practical Example

Debug Scenario: A very-high-density block placed with timing-driven placement completes with excellent timing but fails global routing due to congestion. Re-running with congestion-driven placement instead accepts slightly worse timing margin in exchange for a routable result -- the right tradeoff for that block's actual density profile.

Physical Design & Planning Handbook

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