This project is built upon the work in SALT, which was created and open-sourced by chengengjie. I would like to thank the original authors for their open-source contributions. You can find the original code here: SALT。
This project aims to develop a rectilinear Steiner tree construction algorithm designed to reduce Elmore delay meanwhile maintaining a bounded wirelength.
- g++ (version >= 5.4.0) or other working c++ compliers
- CMake (version >= 3.5.1)
- Boost (version >= 1.58)
- Python (version 3, optional, for utility scripts)
The simplest way to build and run is as follows.
$ mkdir build
$ cd build
$ cmake ..
$ make -j16
$ cd ../run
The executable file is located in the run
directory.
You can draw the results of the tree using plot/draw.py
. An example result:
The nets extracted from ICCAD'15 Contest Problem B can be downloaded via Dropbox.
You can randomly assign slacks to pins by running the executable file run/benchmark_constuct
.
@ARTICLE{10756606,
author={Wu, Hongxi and Li, Xingquan and Chen, Liang and Yu, Bei and Zhu, Wenxing},
journal={IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems},
title={Delay-Driven Rectilinear Steiner Tree Construction},
year={2025},
volume={44},
number={5},
pages={1928-1941},
doi={10.1109/TCAD.2024.3501932}
}
- Make sure you have files
POWV9.dat
andPOST9.dat
in the executable's directory, if not copy them from pathsrc/salt/base/flute
. - The source of a net should be guaranteed to have an index of 0.