Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,10 @@ make

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

### Design exploration and automatic parameter tuning

Expand Down
2 changes: 2 additions & 0 deletions docs/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ entries:
- file: tutorials/TutorialHome
title: Tutorials
entries:
- file: tutorials/QuickstartGcdNangate45
title: "Quickstart: gcd on nangate45 (Docker)"
- file: tutorials/FlowTutorial
title: Flow Tutorial
- file: tutorials/Notebooks
Expand Down
114 changes: 114 additions & 0 deletions docs/tutorials/QuickstartGcdNangate45.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# Quickstart: Run gcd on nangate45 with Docker

This guide runs the smallest ORFS smoke test �� the `gcd` design on the
`nangate45` platform �� from RTL to GDS using the pre-built Docker image.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The text contains garbled characters (`` or ¡ª) which appear to be a corrupted em-dash. Replacing them with a standard UTF-8 em-dash (`—`) ensures proper rendering across all platforms and browsers.

Suggested change
This guide runs the smallest ORFS smoke test �� the `gcd` design on the
`nangate45` platform �� from RTL to GDS using the pre-built Docker image.
This guide runs the smallest ORFS smoke test the `gcd` design on the
`nangate45` platform from RTL to GDS using the pre-built Docker image.

No local compilation is required.

For the full RTL-to-GDS walkthrough with interactive examples, see the
[Flow Tutorial](FlowTutorial.md).

## Prerequisites

- Docker installed and running (Docker Desktop with WSL integration on Windows)
- At least 1 CPU core and 8 GB RAM (4 cores recommended)
- A clone of [OpenROAD-flow-scripts](https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts)

## One-time setup: pull the Docker image

Downloading the image is separate from running the flow. Do this once:

```shell
docker pull openroad/orfs:latest
```

## Run the flow

From the root of your `OpenROAD-flow-scripts` clone:

```shell
cd flow
util/docker_shell make
```

The `Makefile` defaults to `DESIGN_CONFIG=./designs/nangate45/gcd/config.mk`,
so no extra flags are needed for this quickstart.

To select the design explicitly:

```shell
util/docker_shell make DESIGN_CONFIG=./designs/nangate45/gcd/config.mk
```

On success, `make` prints a stage summary table at the end. For `gcd`, the
total runtime is typically **under five minutes** on a modern machine. A full
clean run on WSL2 with Docker Desktop completed in about one minute in our
verification (see [Verified environment](#verified-environment) below).

## Expected output

Final layout files are written under the `base` flow variant:

| Artifact | Path |
|----------|------|
| GDSII | `flow/results/nangate45/gcd/base/6_final.gds` |
| DEF | `flow/results/nangate45/gcd/base/6_final.def` |
| Logs | `flow/logs/nangate45/gcd/base/` |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The paths in this table include the flow/ prefix, but the user was instructed to cd flow in the previous section. To avoid confusion and match the ls command on line 60, these paths should be relative to the flow directory.

Suggested change
| Artifact | Path |
|----------|------|
| GDSII | `flow/results/nangate45/gcd/base/6_final.gds` |
| DEF | `flow/results/nangate45/gcd/base/6_final.def` |
| Logs | `flow/logs/nangate45/gcd/base/` |
| Artifact | Path |
|----------|------|
| GDSII | `results/nangate45/gcd/base/6_final.gds` |
| DEF | `results/nangate45/gcd/base/6_final.def` |
| Logs | `logs/nangate45/gcd/base/` |


Confirm the GDS exists:

```shell
ls -lh results/nangate45/gcd/base/6_final.gds
```

## Optional: view the layout in the GUI

If you have an X11 display available (for example, WSLg on Windows 11):

```shell
util/docker_shell make gui_final
```

This opens the finished layout in the OpenROAD GUI. It is not required to
validate that the flow completed successfully.

## Troubleshooting

### `xauth` warnings when running headless

When no graphical display is available, `util/docker_shell` may print `xauth`
warnings. These can be ignored for `make`; they do not affect RTL-to-GDS
execution.

### Image not found

If Docker reports that `openroad/orfs:latest` is missing, run:

```shell
docker pull openroad/orfs:latest
```

### Re-running from scratch

To remove previous results for this design and run all stages again:

```shell
util/docker_shell make clean_all
util/docker_shell make
```

## Next steps

- Read the [Flow Tutorial](FlowTutorial.md) for stage-by-stage exploration
- See [Docker Shell](../user/DockerShell.md) for other `docker_shell` options
- See [Adding New Designs](../user/AddingNewDesign.md) to bring your own RTL

## Verified environment

This quickstart was verified with:

- OS: WSL2 (Linux)
- Docker: Docker Desktop 28.4.0
- Image: `openroad/orfs:latest`
- Command: `util/docker_shell make DESIGN_CONFIG=./designs/nangate45/gcd/config.mk`
- Full clean run (`make clean_all` then `make`): ~61 seconds wall time
- Output: `flow/results/nangate45/gcd/base/6_final.gds` present

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

To maintain consistency with the updated table and the active directory (flow/), the output path here should also omit the flow/ prefix.

Suggested change
- Output: `flow/results/nangate45/gcd/base/6_final.gds` present
- Output: `results/nangate45/gcd/base/6_final.gds` present

3 changes: 3 additions & 0 deletions docs/tutorials/TutorialHome.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# OpenROAD-flow-scripts tutorial

New users can run the smallest smoke test in a few minutes with Docker:
[Quickstart: gcd on nangate45](QuickstartGcdNangate45.md).

The links to the main flow tutorial, where we go through each step of
the RTL-GDSII flow are as [follows](FlowTutorial.md). We have also provided
Google Colab packaging for ease of experimentation [here](Notebooks.md).