Skip to content

Commit ce0794d

Browse files
committed
update readme to v2.2
1 parent f5d4e08 commit ce0794d

1 file changed

Lines changed: 66 additions & 49 deletions

File tree

README.md

Lines changed: 66 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ We are happy to announce that [Xplace 2.0](https://ieeexplore.ieee.org/abstract/
1212

1313
Please check our [TCAD paper](https://ieeexplore.ieee.org/document/10373583) for more details about **Xplace-Route**!
1414

15-
## About
15+
## About Xplace
1616
Xplace is a fast and extensible GPU-accelerated global placement framework developed by the research team supervised by Prof. Evangeline F. Y. Young at The Chinese University of Hong Kong (CUHK). It achieves around 3x speedup per GP iteration compared to DREAMPlace and shows high extensibility.
1717

1818

@@ -30,37 +30,53 @@ Lixin Liu, Bangqi Fu, Martin D. F. Wong, and Evangeline F. Y. Young. "[Xplace: a
3030

3131
(For the Xplace-NN, please refer to branch [neural](https://github.com/cuhk-eda/Xplace/tree/neural))
3232

33-
## Requirements
34-
- [CMake](https://cmake.org/) >= 3.17
35-
- [GCC](https://gcc.gnu.org/) >= 7.5.0
36-
- [Boost](https://www.boost.org/) >= 1.56.0
37-
- [CUDA](https://developer.nvidia.com/cuda-toolkit) >= 11.3
38-
- [Python](https://www.python.org/) >= 3.8
39-
- [PyTorch](https://pytorch.org/) >= 1.12.0
40-
- [Cairo](https://www.cairographics.org/)
41-
- [Innovus®](https://www.cadence.com/content/cadence-www/global/en_US/home/tools/digital-design-and-signoff/soc-implementation-and-floorplanning/innovus-implementation-system.html) (version 20.14, optional, for detailed routing and design rule checking)
42-
43-
## Setup
44-
1. Clone the Xplace repository. We'll call the directory that you cloned Xplace as `$XPLACE_HOME`.
33+
- [1. How to Build](#1-how-to-build)
34+
* [1.1. Dependencies](#11-dependencies)
35+
- [2. How to Run](#2-how-to-run)
36+
* [2.1. Data Preparation](#21-data-preparation)
37+
* [2.2. Run Placement Flow](#22-run-placement-flow)
38+
* [2.3. Run Your Own Design](#23-run-your-own-design)
39+
* [2.4. Placement Parameters](#24-placement-parameters)
40+
- [3. Other Features](#3-other-features)
41+
* [3.1. GPU-accelerated Place and Global Route Flow](#31-gpu-accelerated-place-and-global-route-flow)
42+
* [3.2. Evaluate the Routability of Placement Solution](#32-evaluate-the-routability-of-placement-solution)
43+
* [3.3. Load Design from Preprocessed File](#33-load-design-from-preprocessed-file)
44+
- [4. Citation](#4-citation)
45+
- [5. Contact](#5-contact)
46+
- [6. License](#6-license)
47+
48+
## 1. How to Build
49+
**Step 1**: Clone the Xplace repository. We'll call the directory that you cloned Xplace as `$XPLACE_HOME`.
4550
```bash
4651
git clone --recursive https://github.com/cuhk-eda/Xplace
4752
```
48-
2. Build the shared libraries used in Xplace.
53+
**Step 2**: Build the shared libraries used in Xplace.
4954
```bash
5055
cd $XPLACE_HOME
5156
mkdir build && cd build
5257
cmake -DPYTHON_EXECUTABLE=$(which python) ..
5358
make -j40 && make install
5459
```
5560

56-
## Prepare data
61+
### 1.1. Dependencies
62+
- [CMake](https://cmake.org/) >= 3.17
63+
- [GCC](https://gcc.gnu.org/) >= 7.5.0
64+
- [Boost](https://www.boost.org/) >= 1.56.0
65+
- [CUDA](https://developer.nvidia.com/cuda-toolkit) >= 11.3
66+
- [Python](https://www.python.org/) >= 3.8
67+
- [PyTorch](https://pytorch.org/) >= 1.12.0
68+
- [Cairo](https://www.cairographics.org/)
69+
- [Innovus®](https://www.cadence.com/content/cadence-www/global/en_US/home/tools/digital-design-and-signoff/soc-implementation-and-floorplanning/innovus-implementation-system.html) (version 20.14, optional, for detailed routing and design rule checking)
70+
71+
## 2. How to Run
72+
### 2.1. Data Preparation
5773
The following script will automatically download `ispd2005`, `ispd2015`, `iccad2019`, `ispd2018`, and `ispd2019` benchmarks in `./data/raw`. It also preprocesses `ispd2015` benchmark to fix some errors. Note that Innovus® can run detailed routing on this fixed `ispd2015`.
5874
```bash
5975
cd $XPLACE_HOME/data
6076
./download_data.sh
6177
```
6278

63-
## Get started
79+
### 2.2. Run Placement Flow
6480
- To run GP + DP flow for ISPD2005 dataset:
6581
```bash
6682
# only run adaptec1
@@ -104,24 +120,47 @@ In ./result/exp_id
104120
- output # placement solutions
105121
```
106122

107-
## Parameters
108-
Please refer to `main.py`.
109-
110-
## Run custom dataset
111-
You can use the argument `--custom_path` to run your custom LEF/DEF or bookshelf benchmark.
123+
### 2.3. Run Your Own Design
124+
- **Custom Path Mode**: You can use the argument `--custom_path` to run your custom LEF/DEF or bookshelf benchmark.
112125

113126
Suppose there is a LEF/DEF benchmark named `toy` in `data/raw`, you can use the following command line to run the GP + DP flow:
114127
```bash
115128
python main.py --custom_path lef:data/raw/toy_input.lef,def:data/raw/toy_input.def,design_name:toy,benchmark:test --load_from_raw True --detail_placement True
116129
```
117130

118-
You can also use the argument `--custom_json` to run multiple LEFs + DEF + Verilog:
131+
- **Custom JSON Mode**: You can also use the argument `--custom_json` to run multiple LEFs + DEF + Verilog:
119132
```
120133
python main.py --custom_json examples/examples.json --load_from_raw True --target_density 0.9
121134
```
122135
Please provide your LEFs/DEF in the input `json` file. An example of [ASAP7](https://github.com/The-OpenROAD-Project/asap7) input is given in `./examples/examples.json`. Note that the `verilog` format is only partially supported.
123136

124-
## Load design from preprocessed `pt` file (Optional)
137+
### 2.4. Placement Parameters
138+
Please refer to `main.py`.
139+
140+
## 3. Other Features
141+
142+
### 3.1. GPU-accelerated Place and Global Route Flow
143+
Set `--final_route_eval True` in Python arguments to invoke the internal global router [GGR](cpp_to_py/gpugr/README.md) to run GPU-accelerated PnR flow. The flow will output the **placement DEF** and the **global routing guide** in `./result/exp_id/output`. Besides, GR metrics are reported in the log and recorded in `./result/exp_id/log/route.csv`.
144+
145+
- To run Place and Global Route flow for ISPD2015 dataset:
146+
```bash
147+
python main.py --dataset ispd2015_fix --run_all True --load_from_raw True --detail_placement True --use_cell_inflate True --final_route_eval True
148+
```
149+
150+
More details about using GGR in Xplace can be found in [cpp_to_py/gpugr/README.md](cpp_to_py/gpugr/README.md).
151+
152+
### 3.2. Evaluate the Routability of Placement Solution
153+
We provide three ways to evaluate the routability of a placement solution:
154+
155+
1. Set `--final_route_eval True` to invoke [GGR](cpp_to_py/gpugr/README.md) to evaluate the placement solution.
156+
157+
2. Use [CU-GR](https://github.com/cuhk-eda/cu-gr) to evaluate the placement solution by global routing. Please refer to [tool/cugr_ispd2015_fix/README.md](tool/cugr_ispd2015_fix/README.md) for instructions.
158+
159+
3. (Optional). If Innovus® has been properly installed in your OS, you may try to use Innovus® to detailedly route the placement solution. Please refer to [tool/innovus_ispd2015_fix/README.md](tool/innovus_ispd2015_fix/README.md) for instructions.
160+
161+
162+
163+
### 3.3. Load Design from Preprocessed File
125164
The following script will dump the parsed design into a single torch `pt` file so Xplace can load the design from the `pt` file instead of parsing the input file from scratch.
126165

127166
```bash
@@ -143,27 +182,7 @@ python main.py --dataset ispd2005 --run_all True --load_from_raw False
143182
2. We currently do not support `pt` mode in the routability-driven global placement.
144183
3. If you want to run `pt` mode for the custom dataset, you need to add the custom dataset path in `utils/get_design_params.py`.
145184

146-
## GPU-accelerated place and global route flow (Xplace-Route + GGR)
147-
Set `--final_route_eval True` in Python arguments to invoke the internal global router [GGR](cpp_to_py/gpugr/README.md) to run GPU-accelerated PnR flow. The flow will output the **placement DEF** and the **global routing guide** in `./result/exp_id/output`. Besides, GR metrics are reported in the log and recorded in `./result/exp_id/log/route.csv`.
148-
149-
- To run Place and Global Route flow for ISPD2015 dataset:
150-
```bash
151-
python main.py --dataset ispd2015_fix --run_all True --load_from_raw True --detail_placement True --use_cell_inflate True --final_route_eval True
152-
```
153-
154-
More details about using GGR in Xplace can be found in [cpp_to_py/gpugr/README.md](cpp_to_py/gpugr/README.md).
155-
156-
## Evaluate the routability of Xplace's solution
157-
We provide three ways to evaluate the routability of a placement solution:
158-
159-
1. Set `--final_route_eval True` to invoke [GGR](cpp_to_py/gpugr/README.md) to evaluate the placement solution.
160-
161-
2. Use [CU-GR](https://github.com/cuhk-eda/cu-gr) to evaluate the placement solution by global routing. Please refer to [tool/cugr_ispd2015_fix/README.md](tool/cugr_ispd2015_fix/README.md) for instructions.
162-
163-
3. (Optional). If Innovus® has been properly installed in your OS, you may try to use Innovus® to detailedly route the placement solution. Please refer to [tool/innovus_ispd2015_fix/README.md](tool/innovus_ispd2015_fix/README.md) for instructions.
164-
165-
166-
## Citation
185+
## 4. Citation
167186
If you find **Xplace** useful in your research, please consider to cite:
168187
```bibtex
169188
@article{xplace_tcad,
@@ -205,15 +224,13 @@ Thanks the authors of [ePlace](https://dl.acm.org/doi/10.1145/2699873), [RePlAce
205224
}
206225
```
207226

208-
209-
## Contact
227+
## 5. Contact
210228

211229
- [Lixin Liu](https://liulixinkerry.github.io/) (lxliu@cse.cuhk.edu.hk)
212-
- Bangqi Fu (bqfu21@cse.cuhk.edu.hk)
230+
- [Bangqi Fu](https://scholar.google.com/citations?user=TKKJx3gAAAAJ&hl=en) (bqfu21@cse.cuhk.edu.hk)
213231
- [Shiju Lin](https://shijulin.github.io/) (sjlin@cse.cuhk.edu.hk)
214232
- [Jinwei Liu](https://anticold.github.io/) (jwliu@cse.cuhk.edu.hk)
215233

216-
217-
## License
234+
## 6. License
218235

219236
Xplace is an open source project licensed under a BSD 3-Clause License that can be found in the [LICENSE](LICENSE) file.

0 commit comments

Comments
 (0)