Skip to content
This repository has been archived by the owner on Jan 26, 2021. It is now read-only.

The-OpenROAD-Project/TritonMacroPlace

Repository files navigation

TritonMacroPlacer

ParquetFP based macro cell placer for OpenROAD.

If you want to use this as part of the OpenROAD project you should build it and use it from inside the integrated openroad app. The standalone version is available as legacy code.

Flows

  • Input: Initial placed DEF of a mixed-size (macros + cells) netlist. Such a DEF is produced by RePlAce (timing-driven, mixed-size mode, aka "TD-MS-RePlAce").
  • Output: A placed DEF with macro placements honoring halos, channels and cell row "snapping". Approximately ceil((#macros/3)^(3/2)) "sets" corresponding to quadrisections of the initial placed mixed-size DEF are explored and packed using ParquetFP-based annealing. The best resulting floorplan according to a heuristic evaluation function is returned.

Getting Started

Prerequisite

  • GCC compiler and libstdc++ static library >= 4.8.5
  • boost library >= 1.41
  • bison (for lef/def parsers) >= 3.0.4
  • tcl (for OpenSTA) >= 8.4
  • Recommended OS: Centos6, Centos7 or Ubuntu 16.04

Clone repo and submodules

$ git clone --recursive https://github.com/The-OpenROAD-Project/TritonMacroPlace
$ mkdir build
$ cd build
$ cmake ..             // you may specify -DCMAKE_INSTALL_PREFIX to avoid installing in /usr/local/*
$ make
$ make install

Manual

License

  • BSD-3-clause License [Link]
  • Code found under the Modules directory (e.g., submodules ParquetFP and ABKCommon source files) have individual copyright and license declarations at the top of each file.

3rd Party Module List

  • ParquetFP from UMPack
  • ABKCommon from UMPack
  • Eigen
  • OpenSTA
  • LEF/DEF Parser (Modified by mgwoo)