BeginnerQuestion 52 of 187

How does a macro halo differ from a placement blockage?

From PDVerse PnR Interview Handbook, part of the pdVerse Mentor Guide

Short Answer

A halo (keepout margin) is attached to a macro — like a personal-space bubble — so wherever the macro moves, the halo moves with it automatically. A placement blockage is a fixed rectangle drawn on the floorplan itself; it doesn't care what's placed nearby and it stays put even if every macro around it shifts.

Technical Reference DiagramHow does a macro halo differ from a placement blockage?

Technical Explanation

  • Both reserve space where standard cells (and sometimes hard macros) can't be placed, but ownership is the key difference: one belongs to an object, the other belongs to a location.
  • ` for blockages.
  • Blockage types aren't one-size-fits-all either — hard stops everything, hard_macro stops only macros, soft only blocks coarse placement (optimization/legalization can still use the space), and partial -blocked_percentage caps density rather than banning placement outright.
  • Pick the type for the stage and object you actually care about: a routing-only concern wants a routing blockage, not a placement halo; a macro that will be repositioned wants a halo, not a fixed-location blockage.

Visual Verification

Visual VerificationDynamic Macro Halo Keepout vs. Static Placement Blockage

A placement halo moves dynamically with its parent macro to maintain clearance around pins, whereas a placement blockage remains fixed at absolute floorplan coordinates.

Formula Or Decision Rule

Decision rule: reserve only the space needed for pin access, routing, optimisation cells, or physical rules, and state what the restriction blocks.

What To Check

  • Warning sign: A huge halo wastes rows, or a small halo allows cells to choke macro pins.
  • Inspect: choose one affected region, macro, row, pin, path, or net and trace the physical cause.
  • Correct: Adjust the specific keepout or blockage based on evidence and compare usable rows and congestion again.

Command Checks & Actions

  • create_keepout_margin -type hard -outer {<left> <bottom> <right> <top>} <macro_collection>: attaches a typed keepout margin to design objects
  • create_placement_blockage -boundary {{<llx> <lly>} {<urx> <ury>}} -type hard -name <blockage>: creates a fixed placement restriction

Run only the commands needed for this question. Save the report with the floorplan version and analysis context.

Healthy, Suspicious & Hard-stop Results

  • Healthy: A keepout margin moves with its macro; a placement blockage is a fixed floorplan region. Both reserve space, but ownership and affected objects differ.
  • Hard stop: required legality or physical feasibility is missing or unexplained.

Common Mistake

The Trap: Do not hide the symptom with an arbitrary utilisation, halo, channel, blockage, pin move, or die-size change.

What The Interviewer Is Testing

” to measurable physical evidence and an owned correction.

Physical Design & Planning Handbook

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

Offline PDF Bundle

Want all 1109 questions offline?

Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

See what's inside the bundle
PnR Flow Physical Design Mentor Guide — eight chaptersPnR Flow Mentor GuideEight chapters, library setup through to stream-out.