Skip to content

Commit b94834d

Browse files
committed
Merge remote-tracking branch 'origin/master' into mpl2-util
Signed-off-by: Matt Liberty <[email protected]>
2 parents f86870b + 3395328 commit b94834d

File tree

212 files changed

+26995
-17430
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

212 files changed

+26995
-17430
lines changed

.devcontainer/devcontainer.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Copyright (c) 2024 Antmicro <www.antmicro.com>
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
{
5+
"image": "ghcr.io/the-openroad-project/openroad-flow-scripts:lxqt",
6+
"forwardPorts": [6080],
7+
"portsAttributes": {
8+
"6080": {
9+
"label": "desktop"
10+
}
11+
},
12+
"postAttachCommand": "bash /usr/local/share/desktop-init.sh"
13+
}

.github/workflows/github-actions-publish-docker-images.yml

Lines changed: 49 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ on:
1010
- flow/Makefile
1111
- docker/Dockerfile.dev
1212
- docker/Dockerfile.builder
13+
- tools/codespace/scripts/**
14+
- tools/codespace/Dockerfile-lxqt
1315
pull_request:
1416
paths:
1517
- etc/DependencyInstaller.sh
@@ -20,8 +22,40 @@ on:
2022
- flow/Makefile
2123
- docker/Dockerfile.dev
2224
- docker/Dockerfile.builder
25+
- tools/codespace/scripts/**
26+
- tools/codespace/Dockerfile-lxqt
2327

2428
jobs:
29+
buildCodespaceImage:
30+
runs-on: ubuntu-latest
31+
timeout-minutes: 600
32+
steps:
33+
- uses: actions/checkout@v4
34+
35+
- name: Set environment variables
36+
run: echo "IMAGE=ghcr.io/$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
37+
38+
- name: Set up Docker Buildx
39+
uses: docker/setup-buildx-action@v3
40+
41+
- name: Login to GitHub Container Registry (GHCR)
42+
if: github.event_name != 'pull_request'
43+
uses: docker/login-action@v3
44+
with:
45+
registry: ghcr.io
46+
username: gha
47+
password: ${{ github.token }}
48+
49+
- name: Build and export codespaces image
50+
uses: docker/build-push-action@v6
51+
with:
52+
context: .
53+
push: true
54+
tags: ${{ env.IMAGE }}:lxqt
55+
file: tools/codespace/Dockerfile-lxqt
56+
cache-from: type=registry,ref=${{ env.IMAGE }}:lxqtbuildcache
57+
cache-to: type=registry,ref=${{ env.IMAGE }}:lxqtbuildcache
58+
2559
buildDependenciesImage:
2660
strategy:
2761
fail-fast: false
@@ -30,7 +64,7 @@ jobs:
3064
runs-on: ubuntu-latest
3165
steps:
3266
- name: Check out repository code
33-
uses: actions/checkout@v3
67+
uses: actions/checkout@v4
3468
with:
3569
fetch-depth: 1
3670
submodules: recursive
@@ -62,7 +96,6 @@ jobs:
6296
file: docker/Dockerfile.dev
6397
build-args: |
6498
fromImage=${{ matrix.os[1] }}
65-
numThreads=$(nproc)
6699
cache-from: type=registry,ref=${{ env.IMAGE_DEPS }}:buildcache
67100
cache-to: type=registry,ref=${{ env.IMAGE_DEPS }}:buildcache,mode=max
68101

@@ -80,7 +113,7 @@ jobs:
80113
tool-cache: false
81114

82115
- name: Check out repository code
83-
uses: actions/checkout@v3
116+
uses: actions/checkout@v4
84117
with:
85118
fetch-depth: 1
86119
submodules: recursive
@@ -89,27 +122,11 @@ jobs:
89122
run: |
90123
echo "IMAGE=ghcr.io/$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')/${{ matrix.os }}" >> $GITHUB_ENV
91124
echo "IMAGE_DEPS=ghcr.io/$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')-dev/${{ matrix.os }}" >> $GITHUB_ENV
125+
echo "NUM_THREADS=$(nproc)" >> $GITHUB_ENV
92126
93127
- name: Set up Docker Buildx
94128
uses: docker/setup-buildx-action@v3
95129

96-
# We don't use the build-push-action here because it hangs
97-
- name: Build ORFS image
98-
run: |
99-
docker buildx build \
100-
--load \
101-
--build-arg fromImage=${{ env.IMAGE_DEPS }}:latest \
102-
--build-arg numThreads=$(nproc) \
103-
--cache-from type=registry,ref=${{ env.IMAGE }}:buildcache \
104-
--tag ${{ env.IMAGE }}:latest \
105-
--file docker/Dockerfile.builder \
106-
.
107-
108-
- name: Test build
109-
run: |
110-
cmd="source ./env.sh && yosys -help && openroad -help && make -C flow ;"
111-
docker run ${{ env.IMAGE }}:latest /bin/bash -c "${cmd}"
112-
113130
- name: Login to GitHub Container Registry (GHCR)
114131
if: github.event_name != 'pull_request'
115132
uses: docker/login-action@v2
@@ -118,14 +135,15 @@ jobs:
118135
username: gha
119136
password: ${{ github.token }}
120137

121-
- name: Export ORFS image
122-
run: |
123-
docker buildx build \
124-
--build-arg fromImage=${{ env.IMAGE_DEPS }}:latest \
125-
--build-arg numThreads=$(nproc) \
126-
--cache-from type=registry,ref=${{ env.IMAGE }}:buildcache \
127-
--cache-to type=registry,ref=${{ env.IMAGE }}:buildcache,mode=max \
128-
--tag ${{ env.IMAGE }}:latest \
129-
--file docker/Dockerfile.builder \
130-
--push \
131-
.
138+
- name: Build and export ORFS image
139+
uses: docker/build-push-action@v6
140+
with:
141+
context: .
142+
push: true
143+
tags: ${{ env.IMAGE }}:latest
144+
file: docker/Dockerfile.builder
145+
build-args: |
146+
fromImage=${{ env.IMAGE_DEPS }}
147+
numThreads=${{ env.NUM_THREADS }}
148+
cache-from: type=registry,ref=${{ env.IMAGE }}:buildcache
149+
cache-to: type=registry,ref=${{ env.IMAGE }}:buildcache,mode=max

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ perf.data.old
8888
docs/main
8989
docs/build
9090
GitGuide.md
91+
SupportedOS.md
92+
index2.md
93+
Manpage.md
9194
mainREADME.md
9295
build
9396
.scala-build/

docker/Dockerfile.builder

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,42 @@
1+
# syntax=docker/dockerfile:1.7-labs
2+
13
# Target with dependencies to build all flow tools from their sources.
24
# i.e., "./build_openroad.sh --local" from inside a docker container
35
# NOTE: don't use this file directly unless you know what you are doing,
46
# instead use etc/DockerHelper.sh
7+
58
ARG fromImage=openroad/flow-ubuntu22.04-dev:latest
69

7-
FROM $fromImage AS openroad-builder-base
10+
FROM $fromImage AS orfs-base
811

9-
ARG numThreads=$(nproc)
10-
11-
COPY . /OpenROAD-flow-scripts
1212
WORKDIR /OpenROAD-flow-scripts
13+
COPY --link dev_env.sh dev_env.sh
14+
COPY --link build_openroad.sh build_openroad.sh
1315
14-
RUN ./build_openroad.sh --no_init --local --threads ${numThreads}
15-
16-
FROM $fromImage AS openroad-flow-scripts-base
16+
FROM orfs-base AS orfs-builder-base
1717
18-
COPY . /OpenROAD-flow-scripts
19-
20-
RUN rm -rf /OpenROAD-flow-scripts/tools /OpenROAD-flow-scripts/.git
21-
22-
COPY --from=openroad-builder-base /OpenROAD-flow-scripts/tools/install /OpenROAD-flow-scripts/tools/install
23-
24-
FROM $fromImage
18+
COPY --link tools tools
19+
ARG numThreads=$(nproc)
2520
26-
COPY --from=openroad-flow-scripts-base /OpenROAD-flow-scripts /OpenROAD-flow-scripts
27-
WORKDIR /OpenROAD-flow-scripts
21+
RUN echo "" > tools/yosys/abc/.gitcommit && \
22+
./build_openroad.sh --no_init --local --threads ${numThreads}
23+
24+
FROM orfs-base
25+
26+
# The order for copying the directories is based on the frequency of changes (ascending order),
27+
# and the layer size (descending order)
28+
COPY --link docker docker
29+
COPY --link flow/tutorials flow/tutorials
30+
COPY --link docs docs
31+
COPY --link flow/test flow/test
32+
COPY --link flow/platforms flow/platforms
33+
COPY --link flow/util flow/util
34+
COPY --link flow/scripts flow/scripts
35+
COPY --link flow/designs flow/designs
36+
37+
COPY --link --from=orfs-builder-base /OpenROAD-flow-scripts/tools/install tools/install
38+
COPY --link \
39+
--exclude=.git* --exclude=tools/ --exclude=docs/ --exclude=docker/ \
40+
--exclude=flow/designs --exclude=flow/platforms --exclude=flow/scripts \
41+
--exclude=flow/test --exclude=flow/tutorials --exclude=flow/util \
42+
. ./

docs/conf.py

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
source_suffix = ['.md']
6464

6565
# The master toctree document.
66-
master_doc = 'index'
66+
master_doc = 'index2.md'
6767

6868
# List of patterns, relative to source directory, that match files and
6969
# directories to ignore when looking for source files.
@@ -77,6 +77,7 @@
7777
'README.md',
7878
'docs/releases/PostAlpha2.1BranchMethodology.md',
7979
'main',
80+
'index.md'
8081
]
8182

8283
# The name of the Pygments (syntax highlighting) style to use.
@@ -151,15 +152,55 @@ def setup(app):
151152
shutil.copy('../README.md', 'mainREADME.md')
152153
swap_prefix('mainREADME.md', '```mermaid', '```{mermaid}\n:align: center\n')
153154

155+
# Grab the reference file from OR
154156
url = 'https://raw.githubusercontent.com/The-OpenROAD-Project/OpenROAD/master/docs/contrib/GitGuide.md'
155157
get_file_from_url(url, 'contrib/GitGuide.md')
158+
159+
# Temporarily using commit number, will change once OR commit merged.
160+
url = 'https://raw.githubusercontent.com/The-OpenROAD-Project/OpenROAD/3563176d00daeb613eed2ccf9442137b0ae2cad3/docs/index.md'
161+
get_file_from_url(url, 'SupportedOS.md')
156162

157163
# edit OpenROAD to OpenROAD-flow-scripts for GitGuide
158164
with open('contrib/GitGuide.md', 'r') as f:
159165
content = f.read()
160-
161166
content = content.replace('user/Build.md', '../index.md#build-or-installing-orfs-dependencies')
162167
content = content.replace('OpenROAD', 'OpenROAD-flow-scripts')
163168
content = content.replace('The-OpenROAD-flow-scripts', 'The-OpenROAD')
164169
with open('contrib/GitGuide.md', 'w') as f:
165170
f.write(content)
171+
172+
# Create a copy of the index.md file
173+
import shutil
174+
shutil.copy('index.md', 'index2.md')
175+
176+
# Use re to find the desired content
177+
start_pattern = '## Supported Operating Systems'
178+
end_pattern = '## Code of conduct'
179+
with open('SupportedOS.md', 'r') as f:
180+
markdown_content = f.read()
181+
182+
match = re.search(f'{start_pattern}(.*?){end_pattern}', markdown_content, re.DOTALL)
183+
184+
assert match is not None, 'No match found, check the OR Doc pattern on index.md'
185+
extracted_content = match.group(1)
186+
extracted_content = "\n#### Supported Operating Systems" + extracted_content
187+
print(extracted_content)
188+
189+
# Find insert position
190+
with open('index2.md', 'r') as f:
191+
existing_content = f.read()
192+
match = re.search(r'### Setup', existing_content)
193+
assert match is not None, 'Check search keyword.'
194+
with open('index2.md', 'w') as f:
195+
insert_position = match.end() + 1
196+
before_insert = existing_content[:insert_position]
197+
after_insert = existing_content[insert_position:]
198+
199+
# Combine the parts with the extracted content
200+
updated_content = before_insert + extracted_content + after_insert
201+
202+
f.write(updated_content)
203+
204+
# Get Manpage file
205+
url = 'https://raw.githubusercontent.com/The-OpenROAD-Project/OpenROAD/master/src/utl/README.md'
206+
get_file_from_url(url, 'Manpage.md')
85.3 KB
Loading

docs/images/create_codespace.gif

180 KB
Loading

docs/images/open_vnc.gif

43.8 KB
Loading

docs/index.md

Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
The OpenROAD ("Foundations and Realization of Open, Accessible Design")
44
project was launched in June 2018 within the DARPA IDEA program. OpenROAD
55
aims to bring down the barriers of cost, expertise and unpredictability that
6-
currently block designers' access to hardware implementation in advanced
6+
currently block designers access to hardware implementation in advanced
77
technologies. The project team (Qualcomm, Arm and multiple universities and
88
partners, led by UC San Diego) is developing a fully autonomous, open-source
99
tool chain for digital SoC layout generation, focusing on the RTL-to-GDSII
@@ -46,33 +46,6 @@ See these [tips](user/FAQS.md#how-do-i-get-better-search-results) to help improv
4646

4747
### Setup
4848

49-
#### Supported Operating Systems
50-
51-
Note that depending on the installation method, we have varying levels of
52-
support for various operating systems.
53-
54-
Legend:
55-
- `Y` for supported.
56-
- `-` for unsupported.
57-
58-
| Operating System | Local Installation | Prebuilt Binaries | Docker Installation | Windows Subsystem for Linux |
59-
| --- | --- | --- | --- | --- |
60-
| Ubuntu 20.04 | `Y` | `Y` | `Y` | `-` |
61-
| Ubuntu 22.04 | `Y` | `Y` | `Y` | `-` |
62-
| CentOS 7 | `Y` | `-` | `Y` | `-` |
63-
| CentOS 8 | `Y` | `-` | `Y` | `-` |
64-
| Debian 10 | `Y` | `Y` | `Y` | `-` |
65-
| Debian 11 | `Y` | `Y` | `Y` | `-` |
66-
| RHEL | `Y` | `-` | `Y` | `-` |
67-
| Windows 10 and above | `-` | `-` | `Y` | `Y` |
68-
| macOS | `Y*` | `-` | `Y` | `-` |
69-
70-
```{warning}
71-
For macOS, local compilation for the modules `par` and `mpl2` are not
72-
fully supported due to an upstream issue with `or-tools`. We recommend
73-
Docker installation wherever possible.
74-
```
75-
7649
#### System Requirements
7750

7851
To build the binaries and run `gcd` through the flow:
@@ -94,7 +67,7 @@ We support four major ways of installation:
9467
- [Windows Subsystem for Linux (WSL)](./user/BuildWithWSL.md)
9568
- [Local Installation](./user/BuildLocally.md)
9669

97-
You may also choose use the build script to customise your build process.
70+
You may also choose and use the build script to customise your build process.
9871
See more in the next section.
9972

10073
##### Build Command and options
@@ -178,15 +151,19 @@ OpenROAD-flow-scripts supports Verilog to GDS for the following open platforms:
178151
- ASAP7
179152
- Nangate45 / FreePDK45
180153
- SKY130
154+
- GF180
181155

182156
These platforms have a permissive license which allows us to
183157
redistribute the PDK and OpenROAD platform-specific files. The platform
184158
files and license(s) are located in `platforms/{platform}`.
185159

186160
OpenROAD-flow-scripts also supports the following proprietary platforms:
187161

162+
- GF55
188163
- GF12
189-
- TSMC65LP
164+
- Intel22
165+
- Intel16
166+
- TSMC65
190167

191168
The PDKs and platform-specific files for these kits cannot be provided
192169
due to NDA restrictions. However, if you are able to access these

docs/toc.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
root: index
1+
root: index2
22
entries:
33

44
- file: user/UserGuide.md
55
title: User Guide
66
entries:
7+
- file: user/BuildWithPrebuilt.md
8+
title: Build Using Pre-built Binaries
79
- file: user/BuildWithDocker
810
title: Build Using Docker
911
entries:
1012
- file: user/DockerShell.md
1113
title: Docker Shell utility
12-
- file: user/BuildWithPrebuilt.md
13-
title: Build Using Pre-built Binaries
1414
- file: user/BuildLocally.md
1515
title: Build Locally
1616
- file: user/BuildWithWSL.md
@@ -22,6 +22,9 @@ entries:
2222
- file: user/InstructionsForAutoTuner.md
2323
title: AutoTuner
2424

25+
- file: Manpage.md
26+
title: Manpages
27+
2528
- file: contrib/GettingInvolved.md
2629
title: Getting Involved
2730

@@ -51,4 +54,4 @@ entries:
5154
- file: user/QoRDashboard.md
5255
title: Using the OpenROAD Dashboard to track and analyze QoR
5356
- file: user/Jenkins.md
54-
title: Exploring CI Metrics with Jenkins
57+
title: Exploring CI Metrics with Jenkins

0 commit comments

Comments
 (0)