IntermediateQuestion 265 of 142Source PDF page undefined

When placing clock drivers with -boxes, how does -boundary actually change what gets built?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

-boxes alone lays out an X-by-Y grid of driver positions over the entire core area. Adding -boundary constrains that grid to a specific bounded region instead of the whole core -- useful when you only want drivers distributed across part of the floorplan (e.g. one voltage area or one physical section) rather than uniformly everywhere.

Technical Reference DiagramWhen placing clock drivers with -boxes, how does -boundary actually change what gets built?
When placing clock drivers with -boxes, how does -boundary actually change what gets built?, illustrating the physical design concept.

Technical Explanation

  • -boxes {X Y} alone lays out an X-by-Y grid of driver positions over the entire core area by default.
  • Adding -boundary constrains that same grid to a specific bounded region instead of the whole core.
  • This matters when you only want drivers distributed across part of the floorplan -- one voltage area, one physical section -- rather than uniformly across the entire design.
  • -location is a separate, more precise alternative to -boxes entirely: exact coordinates instead of a generated grid.

Common Mistake

The Trap: Using -boxes without -boundary when the actual intent was to constrain driver placement to one region of the floorplan -- without -boundary, the grid spans the whole core by default.

Follow-up Question & Model Response

"When would -location be a better choice than -boxes plus -boundary, even for a bounded region?"

Candidate Model Response: -location is better when you need exact, specific coordinates for a small number of drivers -- e.g. matching a hand-designed structure -- rather than a generated grid, even a bounded one, which is better suited to distributing many drivers evenly across a region.

Practical Example

Practical Example: create_clock_drivers -loads [get_nets clkA] -lib_cells [get_lib_cells my_lib/CKBUF8X] -boxes {5 5} -boundary [list {{200 200} {1000 1000}}] builds a 5x5 grid of drivers, but confined to that specific rectangular region rather than spread across the entire core.

Physical Design & Planning Handbook

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