/RePlAce

RePlAce global placement tool

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

RePlAce

RePlAce: Advancing Solution Quality and Routability Validation in Global Placement

Visualized examples from ISPD 2006 contest; adaptec2.inf Real-world Design: Coyote (TSMC16 7.5T)

Getting Started

Run using Docker

  1. Install Docker on Windows, Mac or Linux.

  2. Navigate to the directory where you have the input files.

  3. Run RePlAce container:

    docker run -it -v $(pwd):/data openroad/replace bash
    
  4. From the interactive bash terminal, use RePlAce scripts which reside under /RePlAce. You can read input files from /data directory inside the docker container - which mirrors the host machine directory you are in.

  • The Docker image is self-contained and includes everything that RePlAce needs to work properly.

Install on a bare-metal machine

Pre-requisite

  • Intel MKL packages Link >= 2016.3.210
  • 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
  • X11 library (for CImg library to visualize) >= 1.6.5
  • Recommended OS: Centos6, Centos7 or Ubuntu 16.04

Clone repo and submodules

$ git clone --recursive https://github.com/abk-openroad/RePlAce.git
$ cd ~/RePlAce
$ ./prerequisite/install_centos7.sh   // for centos 7
$ ./prerequisite/install_ubuntu16.sh  // for ubuntu 16
$ mkdir build
$ cd build
$ cmake ..                            // you may specify -DCMAKE_INSTALL_PREFIX to avoid installing in /usr/local/*
$ make 
$ make install

Check your installation

To make sure your installation is correct and the current tool version is stable enough, 
run a Hello World application:

$ cd ./test
$ ./run.sh

How To Execute

// download lefdef benchmarks
$ cd ~/RePlAce/bench/ispd18
$ ./download_ispd18.sh

// Generate a result from ISPD18 - ispd18.test1.input
// Check doc/ScriptUsage.md in detail
$ cd ~/RePlAce/src
$ ./execute_lefdef.py 0 

Verified/supported Technologies

  • TSMC 65
  • Fujitsu 55
  • TSMC 45
  • ST FDSOI 28
  • TSMC 16 (7.5T/9T)
  • GF 14
  • ASAP 7

Manual

License

3rd Party Module List

  • Eigen
  • CImg
  • FLUTE from Rsyn-x
  • OpenSTA
  • NTUPlacer3/4h (Thanks for agreeing with redistribution)
  • LEF/DEF Si2 Parser (Modified by mgwoo)

Authors

  • Ilgweon Kang and Lutong Wang (respective Ph.D. advisors: Chung-Kuan Cheng, Andrew B. Kahng), based on Dr. Jingwei Lu's Fall 2015 code implementing ePlace and ePlace-MS.
  • Many subsequent improvements were made by Mingyu Woo leading up to the initial release.
  • Paper reference: C.-K. Cheng, A. B. Kahng, I. Kang and L. Wang, "RePlAce: Advancing Solution Quality and Routability Validation in Global Placement", to appear in IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2018. (Digital Object Identifier: 10.1109/TCAD.2018.2859220)
  • Timing-Driven mode has been implemented by Mingyu Woo.

Limitations

  • Mixed-sized RePlAce with (LEF/DEF/Verilog) interface does not generate legalized placement.
  • RePlAce does not support rectilinear layout regions.