Skip to content

Commit 93846fa

Browse files
committed
Merge branch 'master' of github.com:verilog-to-routing/vtr-verilog-to-routing into joshua-xan
2 parents 8761fe6 + a06f326 commit 93846fa

File tree

1,671 files changed

+456680
-40569
lines changed

Some content is hidden

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

1,671 files changed

+456680
-40569
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#!/usr/bin/env bash
2+
3+
sudo apt update
4+
5+
sudo apt install -y \
6+
autoconf \
7+
automake \
8+
bash \
9+
bison \
10+
binutils \
11+
binutils-gold \
12+
build-essential \
13+
capnproto \
14+
exuberant-ctags \
15+
curl \
16+
doxygen \
17+
flex \
18+
fontconfig \
19+
gdb \
20+
git \
21+
gperf \
22+
libcairo2-dev \
23+
libcapnp-dev \
24+
libgtk-3-dev \
25+
libevent-dev \
26+
libfontconfig1-dev \
27+
liblist-moreutils-perl \
28+
libncurses5-dev \
29+
libx11-dev \
30+
libxft-dev \
31+
libxml2-utils \
32+
libxml++2.6-dev \
33+
libreadline-dev \
34+
tcllib \
35+
tcl8.6-dev \
36+
libffi-dev \
37+
perl \
38+
pkg-config \
39+
texinfo \
40+
time \
41+
valgrind \
42+
zip \
43+
qtbase5-dev \
44+
uuid-dev \
45+
default-jdk \
46+
g++-9 \
47+
gcc-9 \
48+
g++-10 \
49+
gcc-10 \
50+
g++-11 \
51+
gcc-11 \
52+
g++-12 \
53+
gcc-12 \
54+
g++-13 \
55+
gcc-13 \
56+
clang-14 \
57+
clang-18 \
58+
clang-format-14 \
59+
libtbb-dev
60+
61+
pip install -r requirements.txt
62+
63+
git clone https://github.com/capnproto/capnproto-java.git $GITHUB_WORKSPACE/env/capnproto-java
64+
pushd $GITHUB_WORKSPACE/env/capnproto-java
65+
make
66+
sudo make install
67+
popd

.github/workflows/containers.yml

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,34 @@
11
name: Containers
22

33
on:
4+
# We want to run the CI when anything is pushed to master.
5+
# Since master is a protected branch this only happens when a PR is merged.
6+
# This is a double check in case the PR was stale and had some issues.
47
push:
8+
branches:
9+
- master
10+
paths-ignore: # Prevents from running if only docs are updated
11+
- 'doc/**'
12+
- '**/*README*'
13+
- '**.md'
14+
- '**.rst'
515
pull_request:
16+
paths-ignore: # Prevents from running if only docs are updated
17+
- 'doc/**'
18+
- '**/*README*'
19+
- '**.md'
20+
- '**.rst'
621
workflow_dispatch:
722
schedule:
823
- cron: '0 0 * * 0' # weekly
924

25+
# We want to cancel previous runs for a given PR or branch / ref if another CI
26+
# run is requested.
27+
# See: https://docs.github.com/en/actions/using-jobs/using-concurrency
28+
concurrency:
29+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
30+
cancel-in-progress: true
31+
1032
jobs:
1133

1234
Image:
@@ -16,15 +38,15 @@ jobs:
1638
steps:
1739

1840
- name: 🧰 Repository Checkout
19-
uses: actions/checkout@v3
41+
uses: actions/checkout@v4
2042
with:
2143
submodules: 'true'
2244

2345
- name: 🔧 Generate image name
2446
id: generate
2547
run: |
2648
REPO='${{ github.repository }}'
27-
echo "::set-output name=image::ghcr.io/${REPO,,}/ubuntu/focal/build"
49+
echo "image=ghcr.io/${REPO,,}/ubuntu/focal/build" >> $GITHUB_OUTPUT
2850
2951
- name: ⛴️ Build container image
3052
run: docker build -t ${{ steps.generate.outputs.image }} -f Dockerfile .

.github/workflows/labeler.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jobs:
66
triage:
77
runs-on: ubuntu-latest
88
steps:
9-
- uses: actions/checkout@v3
9+
- uses: actions/checkout@v4
1010
- uses: actions/labeler@master
1111
with:
1212
repo-token: "${{ secrets.GITHUB_TOKEN }}"

.github/workflows/nightly_test.yml

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
name: NightlyTest
2+
3+
on:
4+
# We want to run the CI when anything is pushed to master.
5+
# Since master is a protected branch this only happens when a PR is merged.
6+
# This is a double check in case the PR was stale and had some issues.
7+
push:
8+
branches:
9+
- master
10+
paths-ignore: # Prevents from running if only docs are updated
11+
- 'doc/**'
12+
- '**/*README*'
13+
- '**.md'
14+
- '**.rst'
15+
pull_request:
16+
paths-ignore: # Prevents from running if only docs are updated
17+
- 'doc/**'
18+
- '**/*README*'
19+
- '**.md'
20+
- '**.rst'
21+
workflow_dispatch:
22+
schedule:
23+
- cron: '0 0 * * *' # daily
24+
25+
# We want to cancel previous runs for a given PR or branch / ref if another CI
26+
# run is requested.
27+
# See: https://docs.github.com/en/actions/using-jobs/using-concurrency
28+
concurrency:
29+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
30+
cancel-in-progress: true
31+
32+
env:
33+
# default compiler for all non-compatibility tests
34+
MATRIX_EVAL: "CC=gcc-11 && CXX=g++-11"
35+
36+
jobs:
37+
Run-tests:
38+
# Prevents from running on forks where no custom runners are available
39+
if: ${{ github.repository_owner == 'verilog-to-routing' }}
40+
41+
timeout-minutes: 420
42+
43+
container: ubuntu:jammy
44+
45+
runs-on: [self-hosted, Linux, X64]
46+
47+
strategy:
48+
fail-fast: false
49+
matrix:
50+
include:
51+
- {test: "vtr_reg_nightly_test1", cores: "16", options: "", cmake: "", extra_pkgs: ""}
52+
- {test: "vtr_reg_nightly_test1_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
53+
- {test: "vtr_reg_nightly_test2", cores: "16", options: "", cmake: "", extra_pkgs: ""}
54+
- {test: "vtr_reg_nightly_test2_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
55+
- {test: "vtr_reg_nightly_test3", cores: "16", options: "", cmake: "", extra_pkgs: ""}
56+
- {test: "vtr_reg_nightly_test3_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
57+
- {test: "vtr_reg_nightly_test4", cores: "16", options: "", cmake: "", extra_pkgs: ""}
58+
- {test: "vtr_reg_nightly_test4_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
59+
- {test: "vtr_reg_nightly_test5", cores: "16", options: "", cmake: "", extra_pkgs: ""}
60+
- {test: "vtr_reg_nightly_test6", cores: "16", options: "", cmake: "", extra_pkgs: ""}
61+
- {test: "vtr_reg_nightly_test7", cores: "16", options: "", cmake: "", extra_pkgs: ""}
62+
- {test: "vtr_reg_strong", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3", extra_pkgs: "libeigen3-dev"}
63+
- {test: "vtr_reg_strong_odin", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3 -DWITH_ODIN=ON", extra_pkgs: "libeigen3-dev"}
64+
- {test: "vtr_reg_strong_odin", cores: "16", options: "-skip_qor", cmake: "-DVTR_ASSERT_LEVEL=3 -DVTR_ENABLE_SANITIZE=ON -DWITH_ODIN=ON", extra_pkgs: "libeigen3-dev"}
65+
# - {test: "vtr_reg_system_verilog", cores: "16", options: "", cmake: "-DYOSYS_F4PGA_PLUGINS=ON", extra_pkgs: ""} # Test turned off -> F4PGA conflicts with Yosys (version 42)
66+
- {test: "odin_reg_strong", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
67+
- {test: "parmys_reg_strong", cores: "16", options: "", cmake: "-DYOSYS_F4PGA_PLUGINS=OFF", extra_pkgs: ""}
68+
69+
env:
70+
DEBIAN_FRONTEND: "noninteractive"
71+
72+
steps:
73+
74+
# TODO: This runnner is running on a self-hosted CPU. In order to upgrade
75+
# to v4, need to upgrade the machine to support node20.
76+
- uses: actions/checkout@v3
77+
with:
78+
submodules: 'true'
79+
80+
- name: Setup
81+
run: stdbuf -i0 -i0 -e0 ./.github/scripts/hostsetup.sh
82+
83+
- name: Install external libraries
84+
run: apt install -y ${{ matrix.extra_pkgs }}
85+
if: ${{ matrix.extra_pkgs }}
86+
87+
- name: Execute test script
88+
run: stdbuf -i0 -o0 -e0 ./.github/scripts/run-vtr.sh
89+
env:
90+
VPR_NUM_WORKERS: 4
91+
VTR_TEST: ${{ matrix.test }}
92+
VTR_TEST_OPTIONS: ${{ matrix.options }}
93+
VTR_CMAKE_PARAMS: ${{ matrix.cmake }}
94+
NUM_CORES: ${{ matrix.cores }}
95+
96+
- name: Upload test results
97+
# If the job was not cancelled, we want to save the result (this includes
98+
# when the job fails). See warning here:
99+
# https://docs.github.com/en/actions/learn-github-actions/expressions#always
100+
if: ${{ !cancelled() }}
101+
# TODO: This runnner is running on a self-hosted CPU. In order to upgrade
102+
# to v4, need to upgrade the machine to support node20.
103+
uses: actions/upload-artifact@v3
104+
with:
105+
name: ${{matrix.test}}_test_results
106+
path: |
107+
**/results*.gz
108+
**/plot_*.svg
109+
**/qor_results*.tar.gz
110+

.github/workflows/noble.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# This workflow is designed to test that VTR can run on Ubuntu 24.04. Since
2+
# the Ubuntu 24.04 GitHub runners are still in Beta, this is left as a workflow
3+
# that must be dispatched manually. In the future this workflow should be
4+
# removed and made the default (integrated into test.yml).
5+
name: Noble
6+
7+
on:
8+
workflow_dispatch:
9+
schedule:
10+
- cron: '0 0 * * *' # daily
11+
12+
# We want to cancel previous runs for a given PR or branch / ref if another CI
13+
# run is requested.
14+
# See: https://docs.github.com/en/actions/using-jobs/using-concurrency
15+
concurrency:
16+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
17+
cancel-in-progress: true
18+
19+
env:
20+
MATRIX_EVAL: "CC=gcc-13 && CXX=g++-13"
21+
22+
jobs:
23+
FutureCompatibility:
24+
runs-on: ubuntu-24.04
25+
strategy:
26+
fail-fast: false
27+
matrix:
28+
include:
29+
- { name: 'GCC 13 (Ubuntu Noble - 24.04)', eval: 'CC=gcc-13 && CXX=g++-13', }
30+
- { name: 'Clang 18 (Ubuntu Noble - 24.04)', eval: 'CC=clang-18 && CXX=clang++-18', }
31+
name: 'B: ${{ matrix.name }}'
32+
steps:
33+
- uses: actions/setup-python@v5
34+
with:
35+
python-version: 3.12.3
36+
- uses: actions/checkout@v4
37+
with:
38+
submodules: 'true'
39+
- run: ./.github/scripts/install_noble_dependencies.sh
40+
41+
- uses: hendrikmuhs/[email protected]
42+
43+
- name: Test
44+
env:
45+
CMAKE_PARAMS: "-DVTR_ASSERT_LEVEL=3 -DVTR_IPO_BUILD=off"
46+
MATRIX_EVAL: ${{ matrix.eval }}
47+
BUILD_TYPE: release
48+
run: |
49+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
50+
./.github/scripts/build.sh
51+

0 commit comments

Comments
 (0)