https://github.com/coloquinte/placeroute
VLSI placement and routing tool
https://github.com/coloquinte/placeroute
Last synced: about 1 year ago
JSON representation
VLSI placement and routing tool
- Host: GitHub
- URL: https://github.com/coloquinte/placeroute
- Owner: Coloquinte
- License: mit
- Created: 2021-12-30T17:03:53.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-01-31T16:28:46.000Z (over 2 years ago)
- Last Synced: 2024-12-20T07:27:04.201Z (over 1 year ago)
- Language: C++
- Size: 5 MB
- Stars: 12
- Watchers: 6
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

[](https://www.codacy.com/gh/Coloquinte/PlaceRoute/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Coloquinte/PlaceRoute&utm_campaign=Badge_Grade)
[](https://opensource.org/licenses/MIT)
[](https://pypi.org/project/coloquinte/)
# Coloquinte Place&Route
Coloquinte is a Place&Route tool for electronic circuits.
Its goal is to provide a single package of well-tested and well-tuned Place&Route algorithms, to be used in open source electronic design toolchains.
This replaces and extends the [placement library](https://github.com/Coloquinte/Coloquinte_placement) used in the [Coriolis](https://gitlab.lip6.fr/vlsi-eda/coriolis/) toolchain.
## Using Coloquinte
ISPD placement and routing benchmarks are available directly in this repository using Git LFS. [Placement benchmarks](https://github.com/Coloquinte/PlaceRouteBenchmarks) can be run with the Python package:
``` bash
coloquinte ISPD06/adaptec1
```
For other applications, you can use Coloquinte as a C++ library or a Python package: see `src/coloquinte.hpp` or `help(coloquinte.Circuit)`.
## Installing Coloquinte
### Python package
On Linux, you may install Coloquinte from pip:
``` bash
pip install coloquinte
```
For the latest version or for other OSes, install the dependencies and build the module. For example:
``` bash
sudo apt-get install g++ cmake libboost-all-dev libeigen3-dev liblemon-dev
cd pycoloquinte
python setup.py install
```
### C++ library
Install dependencies and build Coloquinte using CMake:
``` bash
sudo apt-get install g++ cmake libboost-all-dev libeigen3-dev liblemon-dev
cmake -B build; cmake --build build; ctest --test-dir build
```
Or using Meson:
``` bash
meson setup build; meson compile -C build; meson test -C build
```
## Benchmarks
Coloquinte is tested on the [ISPD06 benchmark suite](https://dl.acm.org/doi/10.1145/1123008.1123042). Below is the reported half-perimeter wirelength on these benchmarks (x107) for various effort parameters.
Higher effort = higher quality but higher runtime.
| Benchmark | Effort 1 WL | Effort 3 WL | Effort 6 WL |
| --------- | ----------- | ----------- | ----------- |
| adaptec1 | 8,04 | 7,62 | 7,55 |
| adaptec2 | 8,83 | 8,48 | 8,38 |
| adaptec3 | 21,07 | 20,31 | 19,95 |
| adaptec4 | 18,84 | 17,97 | 17,77 |
| adaptec5 | 32,65 | 31,18 | 30,89 |
| bigblue1 | 10,01 | 9,36 | 9,20 |
| bigblue2 | 14,79 | 14,25 | 14,17 |
| bigblue3 | 35,23 | 32,67 | 31,98 |
| bigblue4 | 83,15 | 79,16 | 77,66 |
| newblue1 | 60,68 | 18,75 | 34,54 |
| newblue2 | 19,38 | 18,31 | 17,97 |
| newblue3 | 33,70 | 26,06 | 25,84 |
| newblue4 | 24,32 | 23,35 | 23,33 |
| newblue5 | 42,29 | 39,39 | 39,02 |
| newblue6 | 48,43 | 45,80 | 45,39 |
| newblue7 | 102,11 | 97,81 | 96,47 |