OpenROAD
OpenROAD

Macro Placement

ParquetFP-based macro cell placer, “TritonMacroPlacer”. The macro placer places macros/blocks honoring halos, channels and cell row “snapping”. Run global_placement before macro placement.

Approximately ceil((#macros/3)^(3/2)) sets corresponding to quadrisections of the initial placed mixed-size layout are explored and packed using ParquetFP-based annealing. The best resulting floorplan according to a heuristic evaluation function is kept.

Commands

macro_placement [-halo {halo_x halo_y}]
                [-channel {channel_x channel_y}]
                [-fence_region {lx ly ux uy}]
                [-snap_layer snap_layer_number]
  • -halo horizontal/vertical halo around macros (microns)

  • -channel horizontal/vertical channel width between macros (microns)

  • -fence_region - restrict macro placements to a region (microns). Defaults to the core area.

  • -snap_layer_number - snap macro origins to this routing layer track

Macros will be placed with max(halo * 2, channel) spacing between macros, and between macros and the fence/die boundary. If no solutions are found, try reducing the channel/halo.

Example scripts

Regression tests

Limitations

FAQs

Check out GitHub discussion about this tool.

License

BSD 3-Clause License.