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.
- 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.
- 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
$ 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
- 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.
- ParquetFP from UMPack
- ABKCommon from UMPack
- Eigen
- OpenSTA
- LEF/DEF Parser (Modified by mgwoo)