IntermediateQuestion 64 of 222

When should macros be edge-biased versus placed internally?

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

Short Answer

There's no universal right answer here — it genuinely depends on where the macro's pins, its logical neighbors, and its routing needs actually point, so the decision has to be made from the connectivity data, not a rule of thumb. Edge placement tends to simplify external access (bringing signals in/out from I/O, or connecting to neighboring blocks) and keeps the central core area free and continuous for standard-cell rows — good when the macro mostly talks to the outside world.

Technical Reference DiagramWhen should macros be edge-biased versus placed internally?

Technical Explanation

  • Internal placement can shorten central dataflow paths when the macro is heavily used by logic scattered across the whole core, but it comes at a real cost: more channel fragmentation and more blockage interactions around the macro's boundary, since standard cells now have to route around it from all sides instead of just one.
  • Compare macro pin sides, timing-critical path direction, row continuity, power/ground access, and escape routing capacity for both options before deciding — this is a data-driven placement study, not aesthetics.
  • One thing to actively avoid: don't push so many macros to the edges that you effectively wall off the entire core boundary — that turns your I/O and routing access into a bottleneck of its own.

Formula Or Decision Rule

Decision rule: choose the strategy with the stronger combined timing, routability, and change-risk evidence.

What To Check

  • Warning sign: All macros are pushed to edges by habit, creating long internal buses or corner congestion.
  • Inspect: choose one affected region, macro, row, pin, path, or net and trace the physical cause.
  • Correct: Test an alternative with the same area and measurement method, then document the winning tradeoff.

Command Checks & Actions

  • set_macro_constraints -style <on_edge_or_freeform> <macro_collection>: records allowed macro or I/O placement constraints
  • create_placement -floorplan -congestion: runs early floorplan placement when -floorplan is used

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

Healthy, Suspicious & Hard-stop Results

  • Healthy: Edge placement can simplify external access and preserve central rows; internal placement can shorten central dataflow but creates more channel and blockage interactions.
  • 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 all macros are pushed to edges by habit, creating long internal buses or corner congestion. ”

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.