Skip to content

A customized placer based on the RePlAce global placement tool.

License

Notifications You must be signed in to change notification settings

enzoleo/RePlAce

 
 

Repository files navigation

RePlAce

RePlAce: Advancing Solution Quality and Routability Validation in Global Placement

Features

  • Analytic and nonlinear placement algorithm. Solves electrostatic force equations using Nesterov's method.
  • Fully supports commercial formats. (LEF/DEF 5.8)
  • Verified and worked well with various commercial technologies. (7/14/16/28/45/55/65nm)
  • Supports timing-driven placement mode based on commercial timer (OpenSTA).
  • Fast image drawing engine is ported (CImg).
  • RePlAce has TCL interpreter now!
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
  1. 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

Pre-requisites Version Requirement Remarks
gcc/g++ >= 4.8.5 The C/C++ compiler.
boost >= 1.41 A C++ library with various extensions.
bison >= 3.0.4 The third-party for lef/def parsers.
tcl >= 8.4 The third-party for user-interactions.
X11 >= 1.6.5 The third-party for CImg to visualize.
  • Recommended operating systems: Centos6, Centos7, Ubuntu 16.04.

Clone repo and submodules

git clone --recursive --branch standalone https://github.com/enzoleo/RePlAce.git
cd RePlAce/
./prerequisite/install_centos7.sh
./prerequisite/install_ubuntu16.sh
mkdir build
cd build
cmake ..
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 RePlAce/test
replace < gcd_nontd_test.tcl
replace < gcd_td_test.tcl

How To Execute

Example usages with TCL interpreter
# Tcl Interpreter Mode
# The following command will create a TCL interpreter session.
replace  

# The following command will send all TCL commands to RePlAce's TCL interpreter
replace < run_replace.tcl

Verified/supported Technologies

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

Manual

License

  • BSD-3-clause License
  • Code found under the Modules directory (e.g., submodules) have individual copyright and license declarations.

3rd Party Module List

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.
  • Tcl-Interpreter has been ported by Mingyu Woo.

Limitations

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

About

A customized placer based on the RePlAce global placement tool.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 96.6%
  • C 1.4%
  • Tcl 1.2%
  • CMake 0.5%
  • Dockerfile 0.1%
  • Python 0.1%
  • Other 0.1%