The-OpenROAD-Project / Replace

Licence: bsd-3-clause
RePlAce global placement tool

Labels

Projects that are alternatives of or similar to Replace

Cores Swervolf
FuseSoC-based SoC for SweRV EH1
Stars: ✭ 92 (-15.6%)
Mutual labels:  verilog
Spatial Lang
Spatial: "Specify Parameterized Accelerators Through Inordinately Abstract Language"
Stars: ✭ 99 (-9.17%)
Mutual labels:  verilog
Archexp
浙江大学计算机体系结构课程实验
Stars: ✭ 104 (-4.59%)
Mutual labels:  verilog
Radioberry 2.x
Ham Radio hat for Raspberry PI
Stars: ✭ 92 (-15.6%)
Mutual labels:  verilog
Nyuziprocessor
GPGPU microprocessor architecture
Stars: ✭ 1,351 (+1139.45%)
Mutual labels:  verilog
Svlint
SystemVerilog linter
Stars: ✭ 103 (-5.5%)
Mutual labels:  verilog
Lpc sniffer tpm
A low pin count sniffer for ICEStick - targeting TPM chips
Stars: ✭ 91 (-16.51%)
Mutual labels:  verilog
Hardware Cnn
A convolutional neural network implemented in hardware (verilog)
Stars: ✭ 107 (-1.83%)
Mutual labels:  verilog
Panologic G2
Pano Logic G2 Reverse Engineering Project
Stars: ✭ 99 (-9.17%)
Mutual labels:  verilog
Fft Dit Fpga
Verilog module for calculation of FFT.
Stars: ✭ 104 (-4.59%)
Mutual labels:  verilog
Mips32 Cpu
奋战一学期,造台计算机(编译出的bit文件在release中,可以直接食用)
Stars: ✭ 94 (-13.76%)
Mutual labels:  verilog
Kamikaze
Light-weight RISC-V RV32IMC microcontroller core.
Stars: ✭ 94 (-13.76%)
Mutual labels:  verilog
Awesome Open Hardware Verification
A List of Free and Open Source Hardware Verification Tools and Frameworks
Stars: ✭ 103 (-5.5%)
Mutual labels:  verilog
Icestation 32
Compact FPGA game console
Stars: ✭ 93 (-14.68%)
Mutual labels:  verilog
Hdl checker
Repurposing existing HDL tools to help writing better code
Stars: ✭ 103 (-5.5%)
Mutual labels:  verilog
Fpga Cnn
FPGA implementation of Cellular Neural Network (CNN)
Stars: ✭ 91 (-16.51%)
Mutual labels:  verilog
Mriscv
A 32-bit Microcontroller featuring a RISC-V core
Stars: ✭ 101 (-7.34%)
Mutual labels:  verilog
A2o
Stars: ✭ 107 (-1.83%)
Mutual labels:  verilog
Dreamcasthdmi
Dreamcast HDMI
Stars: ✭ 106 (-2.75%)
Mutual labels:  verilog
Icegdrom
An FPGA based GDROM emulator for the Sega Dreamcast
Stars: ✭ 103 (-5.5%)
Mutual labels:  verilog

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. (link)
  • Verified with various commercial technologies using OpenDB (7/14/16/28/45/55/65nm).
  • Verified deterministic solution generation with various compilers and OS.
    • Compiler: gcc4.8-9.1/clang-7-9/apple-clang-11
    • OS: Ubuntu 16.04-18.04 / CentOS 6-8 / OSX
  • Cleanly rewritten as C++11.
  • Supports Mixed-size placement mode.
  • Supports fast image drawing modes with CImg library.
Visualized examples from ISPD 2006 contest; adaptec2.inf Real-world Design: Coyote (TSMC16 7.5T)

How to Download and Build?

  • 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 a legacy code in standalone branch.
  • For OpenROAD-flow users, manuals for released binaries are available in readthedocs. (Getting-Started)
  • For developers, manuals for building a binary is available in OpenROAD app repo. (OpenROAD app)
  • Note that RePlAce is a submodule of OpenROAD repo, and take a place as the "global_placement" command.

OpenROAD Tcl Usage (global_placement)

global_placement
    [-skip_initial_place]
    [-incremental]
    [-bin_grid_count grid_count]
    [-density density]
    [-init_density_penalty init_density_penalty]
    [-init_wirelength_coef init_wirelength_coef]
    [-min_phi_coef min_phi_coef]
    [-max_phi_coef max_phi_coef]
    [-overflow overflow]
    [-initial_place_max_iter max_iter]
    [-initial_place_max_fanout max_fanout]
    [-verbose_level verbose_level]

Flow Control

  • skip_initial_place : Skip the initial placement (BiCGSTAB solving) before Nesterov placement. IP improves HPWL by ~5% on large designs. Equal to '-initial_place_max_iter 0'
  • incremental : Enable the incremental global placement. Users would need to tune other parameters (e.g. init_density_penalty) with pre-placed solutions.

Tuning Parameters

  • bin_grid_count : Set bin grid's counts. Default: Defined by internal algorithm. [64,128,256,512,..., int]
  • density : Set target density. Default: 0.70 [0-1, float]
  • init_density_penalty : Set initial density penalty. Default: 8e-5 [1e-6 - 1e6, float]
  • init_wire_length__coef : Set initial wirelength coefficient. Default: 0.25 [unlimited, float]
  • min_phi_coef : Set pcof_min(µ_k Lower Bound). Default: 0.95 [0.95-1.05, float]
  • max_phi_coef : Set pcof_max(µ_k Upper Bound). Default: 1.05 [1.00-1.20, float]
  • overflow : Set target overflow for termination condition. Default: 0.1 [0-1, float]
  • initial_place_max_iter : Set maximum iterations in initial place. Default: 20 [0-, int]
  • initial_place_max_fanout : Set net escape condition in initial place when 'fanout >= initial_place_max_fanout'. Default: 200 [1-, int]

Other Options

  • verbose_level : Set verbose level for RePlAce. Default: 1 [0-10, int]

Note that all of the TCL commands are defined in the replace.tcl and replace.i.

Verified/supported Technologies

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

3rd Party Module List

License

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

Authors

  • 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)
  • Mingyu Woo rewrites the whole RePlAce with a clean C++11 structure.
  • The timing-Driven mode has been implemented by Mingyu Woo (only available in standalone branch.)
  • Timing-Driven and Routability-Driven mode are ongoing with the clean-code structure (in openroad branch.)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].