ExpertQuestion 216 of 111Source PDF page undefined

Why does setup timing slack (WNS/TNS) frequently degrade after Legalization, and how is it resolved?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Global placement is a somewhat idealized floating-point world — cells can overlap slightly and sit at fractional coordinates. Legalization is where reality hits: every cell has to snap onto a real, non-overlapping row site, and that snapping can shove cells noticeably far from where the timing-optimized global placement wanted them. In dense regions (say, 90% local utilization), several timing-critical cells are all competing for the same handful of legal sites, forcing the legalizer to displace some of them outward — sometimes 5 to 20 µm — just to resolve the overlap.

Technical Reference DiagramWhy does setup timing slack (WNS/TNS) frequently degrade after Legalization, and how is it resolved?
Why does setup timing slack (WNS/TNS) frequently degrade after Legalization, and how is it resolved?, illustrating the physical design concept.

Technical Explanation

  • Global placement is a somewhat idealized floating-point world — cells can overlap slightly and sit at fractional coordinates. Legalization is where reality hits: every cell has to snap onto a real, non-overlapping row site, and that snapping can shove cells noticeably far from where the timing-optimized global placement wanted them.
  • In dense regions (say, 90% local utilization), several timing-critical cells are all competing for the same handful of legal sites, forcing the legalizer to displace some of them outward — sometimes 5 to 20 µm — just to resolve the overlap.
  • That displacement isn't free: a 15 µm shove on a critical data-path net measurably increases wire resistance and capacitance (Steiner-tree distortion), which degrades the signal's transition time and downstream cell delay — this is exactly why a clean −50 ps global-placement report can collapse into a −450 ps violation right after legalization.
  • Legalization can also flip a cell's orientation or effectively push a driver further from its receiver, both of which quietly add delay that wasn't in your global-placement timing snapshot.
  • The fix isn't to re-run placement blindly — it's to give the legalizer less room to make bad decisions: cap target local density to roughly 65–70% during global placement so there's slack for legalization to work with, use create_bound to fence critical timing groups so they can't wander far, and run legalization in a timing-aware mode (legalize_placement -timing_driven) so it actively protects critical nets instead of treating every cell equally.

Common Mistake

The Trap: Rerunning global placement with higher timing effort without addressing local density hotspots. The placer will keep clustering cells and the legalizer will keep spreading them apart.

Follow-up Question & Model Response

"How do you detect excessive cell displacement during legalization?"

Candidate Model Response: Use report_placement -displacement to check maximum and average displacement. If maximum displacement exceeds 15 um on critical path instances, local density constraints must be tightened.

Practical Example

Mitigating Legalization Displacement:

# Synopsys ICC2: Create soft placement bounds on critical timing path
create_bound -name BND_ALU_CRIT -boundary {{100 100} {250 250}} [get_cells u_alu/*]

# Run timing-driven legalization
legalize_placement -timing_driven
report_placement -displacement

Physical Design & Planning Handbook

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