BeginnerQuestion 197 of 97Source PDF page undefined

What are the four fundamental stages of the placement flow?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Production placement isn't one monolithic step — it runs as four distinct, purpose-built phases, and knowing which phase you're in tells you what kind of problem you're actually debugging. Global Placement comes first: an analytical engine treats the whole core as continuous space and spreads cells around to minimize estimated wirelength (typically half-perimeter wirelength) while avoiding density spikes. Cell coordinates here are still non-integer floats, and cells can still overlap — this stage is about rough positioning, not legality.

Technical Reference DiagramWhat are the four fundamental stages of the placement flow?
What are the four fundamental stages of the placement flow?, illustrating the physical design concept.

Technical Explanation

  • Production placement isn't one monolithic step — it runs as four distinct, purpose-built phases, and knowing which phase you're in tells you what kind of problem you're actually debugging.
  • Global Placement comes first: an analytical engine treats the whole core as continuous space and spreads cells around to minimize estimated wirelength (typically half-perimeter wirelength) while avoiding density spikes. Cell coordinates here are still non-integer floats, and cells can still overlap — this stage is about rough positioning, not legality.
  • Specialized Physical Cell Insertion comes next: this is where non-logical manufacturing cells get inserted — well-tap cells (needed to prevent latchup) placed in a regular pitch array, and endcap cells placed at row and boundary terminations.
  • Legalization then snaps every floating cell onto a real, valid row site: it fixes site orientation (flipping rows N/FS so shared VDD/VSS rails line up correctly), eliminates every instance overlap, and verifies pin-access clearance — this is the stage that turns "roughly placed" into "physically legal."
  • Pre-CTS Optimization (place_opt in ICC2) is the final stage: it builds high-fanout net trees, sizes standard cells for timing, inserts buffers on critical paths, swaps multi-Vt thresholds for power, and re-stitches scan chains using the ScanDEF — all before the clock tree is even built.
  • Understanding this sequence matters practically: a "cells overlapping" complaint after global placement is expected (legalization hasn't run yet), but the same complaint after legalization is a real bug.

Common Mistake

The Trap: Believing that place_opt performs global placement from scratch. place_opt is an incremental optimization pass that operates on an already globally placed and legalized layout.

Follow-up Question & Model Response

"What happens if you run legalization before well-tap cell insertion?"

Candidate Model Response: Inserting well-taps afterward will displace legalized standard cells, causing new overlap violations that force a disruptive re-legalization pass.

Practical Example

Step-by-Step Flow Script:

# 1. Insert physical boundary and well-tap arrays
add_tap_cell_array -master_cell_name WELLTAP -distance 25 -stagger
add_end_cap -lib_cell ENDCAP -mode boundary

# 2. Coarse global placement
create_placement -floorplan -congestion

# 3. Legalize placed instances
legalize_placement

# 4. Pre-CTS timing & logic optimization
place_opt

Physical Design & Planning Handbook

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