Skip to content

Commit 0eaa3fc

Browse files
docs: add Docker quickstart for gcd on nangate45
Add a short verified walkthrough for the default ORFS smoke test and fix the GDS output path in index.md to include the base flow variant. Signed-off-by: fusang <fusang991@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent c9c22ca commit 0eaa3fc

4 files changed

Lines changed: 122 additions & 2 deletions

File tree

docs/index.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,10 @@ make
120120

121121
By default, the `gcd` design is selected using the
122122
`nangate45` platform. The resulting GDS will be available at
123-
`flow/results/nangate45/gcd/6_final.gds`. The flow should take only a few
123+
`flow/results/nangate45/gcd/base/6_final.gds`. The flow should take only a few
124124
minutes to produce a GDS for this design. We recommend implementing this
125-
design first to validate your flow and tool setup.
125+
design first to validate your flow and tool setup. For a minimal Docker-only
126+
walkthrough, see the [gcd quickstart](tutorials/QuickstartGcdNangate45.md).
126127

127128
### Design exploration and automatic parameter tuning
128129

docs/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ entries:
4545
- file: tutorials/TutorialHome
4646
title: Tutorials
4747
entries:
48+
- file: tutorials/QuickstartGcdNangate45
49+
title: "Quickstart: gcd on nangate45 (Docker)"
4850
- file: tutorials/FlowTutorial
4951
title: Flow Tutorial
5052
- file: tutorials/Notebooks
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# Quickstart: Run gcd on nangate45 with Docker
2+
3+
This guide runs the smallest ORFS smoke test ¡ª the `gcd` design on the
4+
`nangate45` platform ¡ª from RTL to GDS using the pre-built Docker image.
5+
No local compilation is required.
6+
7+
For the full RTL-to-GDS walkthrough with interactive examples, see the
8+
[Flow Tutorial](FlowTutorial.md).
9+
10+
## Prerequisites
11+
12+
- Docker installed and running (Docker Desktop with WSL integration on Windows)
13+
- At least 1 CPU core and 8 GB RAM (4 cores recommended)
14+
- A clone of [OpenROAD-flow-scripts](https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts)
15+
16+
## One-time setup: pull the Docker image
17+
18+
Downloading the image is separate from running the flow. Do this once:
19+
20+
```shell
21+
docker pull openroad/orfs:latest
22+
```
23+
24+
## Run the flow
25+
26+
From the root of your `OpenROAD-flow-scripts` clone:
27+
28+
```shell
29+
cd flow
30+
util/docker_shell make
31+
```
32+
33+
The `Makefile` defaults to `DESIGN_CONFIG=./designs/nangate45/gcd/config.mk`,
34+
so no extra flags are needed for this quickstart.
35+
36+
To select the design explicitly:
37+
38+
```shell
39+
util/docker_shell make DESIGN_CONFIG=./designs/nangate45/gcd/config.mk
40+
```
41+
42+
On success, `make` prints a stage summary table at the end. For `gcd`, the
43+
total runtime is typically **under five minutes** on a modern machine. A full
44+
clean run on WSL2 with Docker Desktop completed in about one minute in our
45+
verification (see [Verified environment](#verified-environment) below).
46+
47+
## Expected output
48+
49+
Final layout files are written under the `base` flow variant:
50+
51+
| Artifact | Path |
52+
|----------|------|
53+
| GDSII | `flow/results/nangate45/gcd/base/6_final.gds` |
54+
| DEF | `flow/results/nangate45/gcd/base/6_final.def` |
55+
| Logs | `flow/logs/nangate45/gcd/base/` |
56+
57+
Confirm the GDS exists:
58+
59+
```shell
60+
ls -lh results/nangate45/gcd/base/6_final.gds
61+
```
62+
63+
## Optional: view the layout in the GUI
64+
65+
If you have an X11 display available (for example, WSLg on Windows 11):
66+
67+
```shell
68+
util/docker_shell make gui_final
69+
```
70+
71+
This opens the finished layout in the OpenROAD GUI. It is not required to
72+
validate that the flow completed successfully.
73+
74+
## Troubleshooting
75+
76+
### `xauth` warnings when running headless
77+
78+
When no graphical display is available, `util/docker_shell` may print `xauth`
79+
warnings. These can be ignored for `make`; they do not affect RTL-to-GDS
80+
execution.
81+
82+
### Image not found
83+
84+
If Docker reports that `openroad/orfs:latest` is missing, run:
85+
86+
```shell
87+
docker pull openroad/orfs:latest
88+
```
89+
90+
### Re-running from scratch
91+
92+
To remove previous results for this design and run all stages again:
93+
94+
```shell
95+
util/docker_shell make clean_all
96+
util/docker_shell make
97+
```
98+
99+
## Next steps
100+
101+
- Read the [Flow Tutorial](FlowTutorial.md) for stage-by-stage exploration
102+
- See [Docker Shell](../user/DockerShell.md) for other `docker_shell` options
103+
- See [Adding New Designs](../user/AddingNewDesign.md) to bring your own RTL
104+
105+
## Verified environment
106+
107+
This quickstart was verified with:
108+
109+
- OS: WSL2 (Linux)
110+
- Docker: Docker Desktop 28.4.0
111+
- Image: `openroad/orfs:latest`
112+
- Command: `util/docker_shell make DESIGN_CONFIG=./designs/nangate45/gcd/config.mk`
113+
- Full clean run (`make clean_all` then `make`): ~61 seconds wall time
114+
- Output: `flow/results/nangate45/gcd/base/6_final.gds` present

docs/tutorials/TutorialHome.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# OpenROAD-flow-scripts tutorial
22

3+
New users can run the smallest smoke test in a few minutes with Docker:
4+
[Quickstart: gcd on nangate45](QuickstartGcdNangate45.md).
5+
36
The links to the main flow tutorial, where we go through each step of
47
the RTL-GDSII flow are as [follows](FlowTutorial.md). We have also provided
58
Google Colab packaging for ease of experimentation [here](Notebooks.md).

0 commit comments

Comments
 (0)