This repository contains the code for Re2MaP, a macro placement method that generates expert-quality macro layout recursively with novel and well-designed flow of prototyping and relocating.
We provide full implementation of our Re2MaP method.
Below we provide detailed scripts to run the proposed Re2MaP algorithm.
It is highly recommended to use Docker to enable a smooth environment configuration.
The following steps are borrowed from DREAMPlace repository. We make minor revisions to make it more clear.
- Obtain the Docker image
limbo018/dreamplace:cuda.
-
Option 1: pull from the cloud limbo018/dreamplace.
docker pull limbo018/dreamplace:cuda -
Option 2: build the image with Dockerfile from DREAMPlace.
docker build . --file Dockerfile.DREAMPlace --tag limbo018/dreamplace:cuda
-
Build the Docker image for Re2MaP.
docker build . --tag lamdabbo/re2map:cuda -
Make sure you are in root directory of
Re2MaP(e.g./path/to/Re2MaP). Enter bash environment of the container.sudo docker run --gpus=all -it -v $(pwd):/workspace lamdabbo/re2map:cuda bash -
Build. A shell script
build.shis offered, just run it in the container.bash build.sh
In our experiments, we test our framework on cases from OpenROAD-flow-scripts (ORFS) [Ajayi et al., DAC'19], including
- ariane133
- ariane136
- black_parrot
- bp_be
- bp_fe
- bp_multi
- swerv_wrapper
Netlists and clustering results are required to perform placement. Both are available at Google drive.
Then unzip clustering_results.tar.gz and or_cases.tar.gz, and put them under following the directory:
Re2MaP/benchmarks/
The way of generating these two files is described in the paper.
You can run our experiment on all cases with shell script:
bash remap.sh all
Or, you can run single case by (ariane133 for example):
bash remap.sh ariane133
The macro placement results are stored at the following directory:
Re2MaP/install/results/${design_name}/${date}/${time}