ExpertQuestion 31 of 161

One macro has a huge halo; another has pin-access failure from a small halo. How do you size them?

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

Short Answer

A single uniform halo number applied to every macro is lazy and wrong β€” macros aren't symmetric, and a halo is a personal-space bubble that should only be as big as each side actually needs. Look at each macro edge independently: where are the pins concentrated, how many routing tracks/vias does that side need, are optimization cells (buffers, tap cells) expected to land there, and is there PG-shape traffic hugging that edge?

Technical Reference DiagramOne macro has a huge halo; another has pin-access failure from a small halo. How do you size them?

Technical Explanation

  • A side with dense pins and heavy routing needs real margin β€” via ladders, redundant vias, and buffer insertion all consume space right at the macro boundary. A quiet side with no pins and no nearby congestion wastes area if it gets the same halo.
  • For the oversized-halo macro: check whether one or two sides actually need the large margin and shrink the rest β€” create_keepout_margin -outer {left bottom right top} takes independent values per side, so there's no reason to keep it uniform.
  • 5) which scales with actual pin density instead of a flat guess.
  • Also separate "placement keepout" (where standard cells can't sit) from "routing blockage" (where wires can't run) β€” sometimes the fix isn't a bigger halo at all, it's converting part of it from a hard placement blockage to a routing-only constraint.

Formula Or Decision Rule

Decision rule: each side’s margin protects a named resource without creating unusable area.

What To Check

  • Warning sign: The same halo is copied to every macro.
  • Inspect: choose one affected region, macro, row, pin, path, or net and trace the physical cause.
  • Correct: Resize by side and type, then compare access, rows, and congestion.

Command Checks & Actions

  • create_keepout_margin -type hard -outer {<left> <bottom> <right> <top>} <macro_collection>: attaches a typed keepout margin to design objects
  • report_design -floorplan: reports the floorplan state understood by the tool

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

Healthy, Suspicious & Hard-stop Results

  • Healthy: Use asymmetric, evidence-based margins where supported: reserve space where pins, vias, routing, or optimisation cells need it, and avoid wasting quiet sides.
  • Suspicious: The same halo is copied to every macro.
  • 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. The same halo is copied to every macro.

What The Interviewer Is Testing

The interviewer is testing whether you can connect β€œOne macro has a huge halo; another has pin-access failure from a small halo. ” to measurable physical evidence and an owned correction.

Follow-up Question & Model Response

"* Candidate Model Response: Model response: β€œI would change it if the same controlled rerun shows that the same halo is copied to every macro. ”

Practical Example

Tapeout Scenario: Symptom: The same halo is copied to every macro.

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.