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


Repository files navigation


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.

Getting Started


  • 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
$ 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.

3rd Party Module List

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