How do you choose a macro keepout type?
From PDVerse PnR Interview Handbook, part of the pdVerse Mentor Guide
Short Answer
The keepout type you choose expresses which objects get excluded and at which stage — the numeric margin value (how far the exclusion extends) is a completely separate decision from the type. Use hard when you need broad placement exclusion around the macro for essentially everything — this is the strictest, most conservative choice.
Technical Explanation
- Use
softwhen you want to exclude cells during initial placement but explicitly allow later optimization steps to place something there if needed to fix a violation — softer, more flexible. - , avoiding macro-to-macro abutment) while still allowing standard cells nearby.
- Use
routing_blockagewhen the concern isn't cell placement at all but routing shapes — you want to keep metal/via geometry away from the macro boundary, which is a different physical concern than cell placement and needs its own keepout mechanism. - Always confirm exact support and semantics in your installed tool release rather than assuming keyword behavior carries over version to version, and remember a keepout attached to a macro travels with that macro if it moves later in the floorplan — it's not a fixed floorplan-coordinate object.
Formula Or Decision Rule
Decision rule: use the least restrictive type that protects the demonstrated access or rule need.
What To Check
- Warning sign: A hard halo blocks useful optimisation space when only macro separation was required.
- Inspect: choose one affected region, macro, row, pin, path, or net and trace the physical cause.
- Correct: Replace it with the correctly scoped type and compare rows, pin access, and congestion.
Command Checks & Actions
- create_keepout_margin -type <hard_or_soft_or_hard_macro_or_routing_blockage> -outer {<left> <bottom> <right> <top>} <macro_collection>: attaches a typed keepout margin to design objects
Run only the commands needed for this question. Save the report with the floorplan version and analysis context.
Healthy, Suspicious & Hard-stop Results
- Healthy: Choose by which objects must be excluded and for which stage: hard for broad placement exclusion, soft when later optimisation cells may be allowed, hard_macro to exclude hard macros, and routing_blockage when routing shapes must be kept away.
- 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.
Follow-up Question & Model Response
"* Candidate Model Response: Model response: “I would change it if the same controlled rerun shows that a hard halo blocks useful optimisation space when only macro separation was required. ”
Physical Design & Planning Handbook
Master ASIC Physical Design Planning & Floorplanning
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.

Continue practising