Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
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
2 changes: 2 additions & 0 deletions docs/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ entries:
title: Build Locally
- file: user/BuildWithWSL.md
title: Build Using WSL
- file: user/WindowsDocker.md
title: Build on Windows using Docker
- file: user/FlowVariables.md
title: Flow Variables
- file: contrib/Metrics.md
Expand Down
149 changes: 149 additions & 0 deletions docs/user/WindowsDocker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
# Build OpenROAD on Windows Using Docker

## Prerequisites

* Windows 10 (version 2004+) or Windows 11
* Docker Desktop (WSL2 backend enabled)
* At least 16GB RAM (8GB minimum usable)
* At least 50GB free disk space



## Step 1 — Install and Configure Docker Desktop

1. Install Docker Desktop with WSL 2 backend enabled

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.

May be a good idea to offload these to a site that shows how to configure these settings, or add some gifs

2. Configure resources:

* Memory: ≥ 8GB
* CPUs: ≥ 4
3. Enable WSL Integration for Ubuntu-22.04

Verify installation:

```
docker run hello-world

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.

Suggested change
docker run hello-world
docker run --rm hello-world

```


## Step 2 — Avoid Timezone Prompt

Run before any apt-get:

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.

where would one be running these commands? powershell? wsl? might be helpful to pretend that you are following the tutorial when writing these instructions


```

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.

Where are you running these commands? Powershell? WSL?

export DEBIAN_FRONTEND=noninteractive
export TZ=UTC

apt-get update
apt-get install -y tzdata
```


## Step 3 — Install Correct Yosys Version

```
wget https://github.com/YosysHQ/oss-cad-suite-build/releases/latest/download/oss-cad-suite-linux-x64.tgz

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.

Be careful - ORFS does not natively support latest. we usually peg it to a version


tar -xzf oss-cad-suite-linux-x64.tgz

echo 'export PATH="$(pwd)/oss-cad-suite/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

yosys --version
```



## Step 4 — Fix Line Endings (CRLF Issue)

Run before cloning:

```
git config --global core.autocrlf false
git config --global core.eol lf

git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts
```



## Step 5 — Copy Files into Docker

Option A:

```
docker ps
docker cp C:\path\to\file <container_id>:/tmp/
```

Option B (recommended):

```
docker run -it -v //c/Users/YourName/OpenROAD-flow-scripts:/OpenROAD-flow-scripts ubuntu:22.04
```

## Step 6 — Persist Environment

Save PATH:

```
echo 'export PATH="$(pwd)/oss-cad-suite/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
```

Save container:

```
docker commit <container_id> openroad-windows:latest
docker run -it openroad-windows:latest
```

---

## Step 7 — Run Example Design

```
cd /OpenROAD-flow-scripts/flow
make DESIGN_CONFIG=./designs/nangate45/gcd/config.mk
```



## Common Issues

Yosys too old:
Use OSS CAD Suite (Step 3)

apt-get stuck:

```
export DEBIAN_FRONTEND=noninteractive
```

GUI not working:

```
docker run -it -e DISPLAY=<YOUR_IP>:0.0 openroad/orfs
```

Slow performance:
Use WSL path:
\\wsl$\Ubuntu\

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.

commands/path to be enclosed in ``` please


Disk space fix:

```
wsl --export Ubuntu-22.04 D:\ubuntu_backup.tar
wsl --import Ubuntu-22.04 D:\WSL\Ubuntu D:\ubuntu_backup.tar
```

CRLF issue:

```
git config --global core.autocrlf false

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.

repeated?

```



## Optional: WSL2 Native Build

See: BuildWithWSL.md in repository

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.

add doc hyperlinks please