IntermediateQuestion 206 of 142Source PDF page undefined

How do modern analytical and force-directed global placement algorithms work?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Picture every connected pair of cells joined by a rubber band — that's the wirelength force. The tighter the connectivity, the harder cells get pulled toward each other, because minimizing total quadratic wirelength directly reduces interconnect delay: Φ = ½ Σ c_ij[(xi−xj)² + (yi−yj)²]. Pulled that hard on its own, every cell would collapse into one overlapping point at the center of the die — obviously unplaceable — so there needs to be an opposing force.

Technical Reference DiagramHow do modern analytical and force-directed global placement algorithms work?
How do modern analytical and force-directed global placement algorithms work?, illustrating the physical design concept.

Technical Explanation

  • Picture every connected pair of cells joined by a rubber band — that's the wirelength force. The tighter the connectivity, the harder cells get pulled toward each other, because minimizing total quadratic wirelength directly reduces interconnect delay: Φ = ½ Σ c_ij[(xi−xj)² + (yi−yj)²].
  • Pulled that hard on its own, every cell would collapse into one overlapping point at the center of the die — obviously unplaceable — so there needs to be an opposing force.
  • That's where the electrostatic density model comes in: modern placers (ePlace/RePlace-style engines, and the engines behind ICC2) treat cell density like electric charge, solving a Poisson-equation potential field (∇²φ = −ρ) so that dense regions repel cells outward.
  • Global placement is really an iterative tug-of-war: gradient-descent steps on the wirelength force, alternating with density-field solves that spread cells apart, until the design settles into a state with low displacement and roughly even density everywhere.
  • This is why global placement output still has overlap and isn't legal on its own — it's an idealized continuous-space solution, and legalization afterward snaps everything onto real rows/sites while trying to preserve as much of that optimized structure as possible.
  • In ICC2 terms, this whole process is what create_placement / the initial_place stage of place_opt is doing under the hood, before congestion-driven and timing-driven refinements kick in during detail placement.

Common Mistake

The Trap: Thinking global placers move cells one-by-one randomly (simulated annealing). Simulated annealing was abandoned decades ago; modern engines solve continuous differential equations across all instances concurrently.

Follow-up Question & Model Response

"Why do cell coordinates have decimal/floating-point values after global placement?"

Candidate Model Response: The analytical solver treats the die as a continuous Cartesian plane to enable gradient-based calculus. Snapping to discrete integer row sites occurs in the legalization phase.

Practical Example

Controlling Global Placement Solver Options:

# Synopsys ICC2: Configure analytical placement effort and congestion spreading
set_app_options -name place.coarse.congestion_driven -value true
set_app_options -name place.coarse.target_density -value 0.72
create_placement -timing_driven -congestion

Physical Design & Planning Handbook

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