Skip to content

Commit be67405

Browse files
Merge branch 'master' into temp_coding_style_guide
2 parents cbe9a2a + 2f0f980 commit be67405

File tree

3,482 files changed

+46789
-445603
lines changed

Some content is hidden

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

3,482 files changed

+46789
-445603
lines changed

.github/scripts/install_dependencies.sh

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,32 @@
22

33
sudo apt update
44

5+
# Required packages specifically for the CI and not VTR in general.
56
sudo apt install -y \
67
autoconf \
78
automake \
89
bash \
9-
bison \
1010
binutils \
1111
binutils-gold \
12-
build-essential \
1312
capnproto \
1413
exuberant-ctags \
1514
curl \
1615
doxygen \
17-
flex \
1816
fontconfig \
1917
gdb \
20-
git \
2118
gperf \
2219
libcairo2-dev \
2320
libcapnp-dev \
24-
libgtk-3-dev \
2521
libevent-dev \
2622
libfontconfig1-dev \
2723
liblist-moreutils-perl \
2824
libncurses5-dev \
29-
libx11-dev \
3025
libxft-dev \
3126
libxml2-utils \
3227
libxml++2.6-dev \
33-
libreadline-dev \
3428
tcllib \
3529
tcl8.6-dev \
36-
libffi-dev \
3730
perl \
38-
pkg-config \
3931
texinfo \
4032
time \
4133
valgrind \
@@ -54,9 +46,10 @@ sudo apt install -y \
5446
clang-15 \
5547
clang-16 \
5648
clang-17 \
57-
clang-18 \
58-
clang-format-18 \
59-
libtbb-dev
49+
clang-18
50+
51+
# Standard packages install script.
52+
./install_apt_packages.sh
6053

6154
pip install -r requirements.txt
6255

.github/scripts/install_jammy_dependencies.sh

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,32 @@
22

33
sudo apt update
44

5+
# Required packages specifically for the CI and not VTR in general.
56
sudo apt install -y \
67
autoconf \
78
automake \
89
bash \
9-
bison \
1010
binutils \
1111
binutils-gold \
12-
build-essential \
1312
capnproto \
1413
exuberant-ctags \
1514
curl \
1615
doxygen \
17-
flex \
1816
fontconfig \
1917
gdb \
20-
git \
2118
gperf \
2219
libcairo2-dev \
2320
libcapnp-dev \
24-
libgtk-3-dev \
2521
libevent-dev \
2622
libfontconfig1-dev \
2723
liblist-moreutils-perl \
2824
libncurses5-dev \
29-
libx11-dev \
3025
libxft-dev \
3126
libxml2-utils \
3227
libxml++2.6-dev \
33-
libreadline-dev \
3428
tcllib \
3529
tcl8.6-dev \
36-
libffi-dev \
3730
perl \
38-
pkg-config \
3931
texinfo \
4032
time \
4133
valgrind \
@@ -50,9 +42,10 @@ sudo apt install -y \
5042
g++-11 \
5143
gcc-11 \
5244
g++-12 \
53-
gcc-12 \
54-
clang-format-14 \
55-
libtbb-dev
45+
gcc-12
46+
47+
# Standard packages install script.
48+
./install_apt_packages.sh
5649

5750
pip install -r requirements.txt
5851

.github/workflows/nightly_test_manual.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ jobs:
5050
make get_ispd_benchmarks
5151
./dev/upgrade_vtr_archs.sh
5252
make get_symbiflow_benchmarks
53+
make get_zeroasic_rr_graphs
5354
5455
# Build VTR using the default build options.
5556
- name: 'Build VTR'
@@ -104,3 +105,33 @@ jobs:
104105
run: |
105106
source .venv/bin/activate
106107
./run_reg_test.py -j12 vtr_reg_nightly_test7
108+
109+
- name: Upload regression results
110+
if: success() || failure()
111+
uses: actions/upload-artifact@v4
112+
with:
113+
name: nightly_test_results
114+
path: |
115+
vtr_flow/**/*.log
116+
vtr_flow/**/vpr.out
117+
vtr_flow/**/parse_results*.txt
118+
119+
- name: Generate golden results
120+
if: success() || failure()
121+
run: |
122+
source .venv/bin/activate
123+
./run_reg_test.py vtr_reg_nightly_test1 -create_golden
124+
./run_reg_test.py vtr_reg_nightly_test2 -create_golden
125+
./run_reg_test.py vtr_reg_nightly_test3 -create_golden
126+
./run_reg_test.py vtr_reg_nightly_test4 -create_golden
127+
./run_reg_test.py vtr_reg_nightly_test5 -create_golden
128+
./run_reg_test.py vtr_reg_nightly_test6 -create_golden
129+
./run_reg_test.py vtr_reg_nightly_test7 -create_golden
130+
131+
- name: Upload golden results
132+
if: success() || failure()
133+
uses: actions/upload-artifact@v4
134+
with:
135+
name: nightly_tests_golden
136+
path: |
137+
vtr_flow/**/vtr_reg_nightly*/**/golden_results.txt

.github/workflows/test.yml

Lines changed: 87 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,26 @@ jobs:
9999
run: ./dev/${{ matrix.script }}
100100

101101

102-
UniTests:
102+
VerifyTestSuites:
103+
runs-on: ubuntu-24.04
104+
name: 'Verify Test Suites'
105+
steps:
106+
107+
- uses: actions/setup-python@v5
108+
with:
109+
python-version: 3.12.3
110+
111+
- uses: actions/checkout@v4
112+
# NOTE: We do not need sub-modules. This only verifies the tests, does not run them.
113+
114+
- name: 'Run test suite verification'
115+
run: |
116+
./dev/vtr_test_suite_verifier/verify_test_suites.py \
117+
-vtr_regression_tests_dir vtr_flow/tasks/regression_tests \
118+
-test_suite_info dev/vtr_test_suite_verifier/test_suites_info.json
119+
120+
121+
UnitTests:
103122
name: 'U: C++ Unit Tests'
104123
runs-on: ubuntu-24.04
105124
steps:
@@ -125,36 +144,90 @@ jobs:
125144
run: ./.github/scripts/unittest.sh
126145

127146

128-
Warnings:
129-
name: 'W: Check Compilation Warnings'
147+
# This test builds different variations of VTR (with different CMake Params)
148+
# and ensures that they can run the basic regression tests. This also ensures
149+
# that these build variations are warning clean.
150+
BuildVariations:
130151
runs-on: ubuntu-24.04
152+
name: 'B: Build Variations'
153+
env:
154+
# For the CI, we want all build variations to be warning clean.
155+
# NOTE: Need to turn IPO off due to false warnings being produced.
156+
COMMON_CMAKE_PARAMS: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off'
131157
steps:
132158

133159
- uses: actions/setup-python@v5
134160
with:
135161
python-version: 3.12.3
162+
136163
- uses: actions/checkout@v4
137164
with:
138165
submodules: 'true'
139166

140-
- name: Get number of CPU cores
167+
- name: 'Get number of CPU cores'
141168
uses: SimenB/github-actions-cpu-cores@v2
142169
id: cpu-cores
143170

144-
- name: Install dependencies
171+
- name: 'Install dependencies'
145172
run: ./.github/scripts/install_dependencies.sh
146173

147-
- uses: hendrikmuhs/[email protected]
174+
- name: 'ccache'
175+
uses: hendrikmuhs/[email protected]
148176

149-
- name: Test
177+
- name: 'Test with VTR_ASSERT_LEVEL 4'
178+
if: success() || failure()
150179
env:
151-
#In order to get compilation warnings produced per source file, we must do a non-IPO build
152-
#We also turn warnings into errors for this target by doing a strict compile
153-
CMAKE_PARAMS: "-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_STRICT_COMPILE=on -DVTR_IPO_BUILD=off"
180+
CMAKE_PARAMS: "${{ env.COMMON_CMAKE_PARAMS }} -DVTR_ASSERT_LEVEL=4"
154181
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
155182
run: |
183+
rm -f build/CMakeCache.txt
156184
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
157-
./.github/scripts/build.sh
185+
make -j${{ steps.cpu-cores.outputs.count}}
186+
./run_reg_test.py vtr_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count}}
187+
188+
- name: 'Test with NO_GRAPHICS'
189+
if: success() || failure()
190+
env:
191+
CMAKE_PARAMS: "${{ env.COMMON_CMAKE_PARAMS }} -DVPR_USE_EZGL=off"
192+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
193+
run: |
194+
rm -f build/CMakeCache.txt
195+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
196+
make -j${{ steps.cpu-cores.outputs.count}}
197+
./run_reg_test.py vtr_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count}}
198+
199+
- name: 'Test with NO_SERVER'
200+
if: success() || failure()
201+
env:
202+
CMAKE_PARAMS: "${{ env.COMMON_CMAKE_PARAMS }} -DVPR_USE_SERVER=off"
203+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
204+
run: |
205+
rm -f build/CMakeCache.txt
206+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
207+
make -j${{ steps.cpu-cores.outputs.count}}
208+
./run_reg_test.py vtr_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count}}
209+
210+
- name: 'Test with CAPNPROTO disabled'
211+
if: success() || failure()
212+
env:
213+
CMAKE_PARAMS: "${{ env.COMMON_CMAKE_PARAMS }} -DVTR_ENABLE_CAPNPROTO=off"
214+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
215+
run: |
216+
rm -f build/CMakeCache.txt
217+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
218+
make -j${{ steps.cpu-cores.outputs.count}}
219+
./run_reg_test.py vtr_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count}}
220+
221+
- name: 'Test with serial VPR_EXECUTION_ENGINE'
222+
if: success() || failure()
223+
env:
224+
CMAKE_PARAMS: "${{ env.COMMON_CMAKE_PARAMS }} -DVPR_EXECUTION_ENGINE=serial -DTATUM_EXECUTION_ENGINE=serial"
225+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
226+
run: |
227+
rm -f build/CMakeCache.txt
228+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
229+
make -j${{ steps.cpu-cores.outputs.count}}
230+
./run_reg_test.py vtr_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count}}
158231
159232
160233
Regression:
@@ -169,36 +242,12 @@ jobs:
169242
suite: 'vtr_reg_basic',
170243
extra_pkgs: ""
171244
},
172-
{
173-
name: 'Basic with highest assertion level',
174-
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=4 -DWITH_BLIFEXPLORER=on',
175-
suite: 'vtr_reg_basic',
176-
extra_pkgs: ""
177-
},
178245
{
179246
name: 'Basic_odin',
180247
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
181248
suite: 'vtr_reg_basic_odin',
182249
extra_pkgs: ""
183250
},
184-
{
185-
name: 'Basic with NO_GRAPHICS',
186-
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_USE_EZGL=off',
187-
suite: 'vtr_reg_basic',
188-
extra_pkgs: ""
189-
},
190-
{
191-
name: 'Basic with NO_SERVER',
192-
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_USE_EZGL=on -DVPR_USE_SERVER=off',
193-
suite: 'vtr_reg_basic',
194-
extra_pkgs: ""
195-
},
196-
{
197-
name: 'Basic with CAPNPROTO disabled',
198-
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_CAPNPROTO=off',
199-
suite: 'vtr_reg_basic',
200-
extra_pkgs: ""
201-
},
202251
{
203252
name: 'Basic with VTR_ENABLE_DEBUG_LOGGING',
204253
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on',
@@ -510,8 +559,9 @@ jobs:
510559
needs:
511560
- Build
512561
- Format
513-
- UniTests
514-
- Warnings
562+
- VerifyTestSuites
563+
- UnitTests
564+
- BuildVariations
515565
- Regression
516566
- Sanitized
517567
- Parmys

.gitmodules

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,10 @@
66
[submodule "libs/EXTERNAL/sockpp"]
77
path = libs/EXTERNAL/sockpp
88
url = https://github.com/w0lek/sockpp.git
9+
10+
[submodule "libs/EXTERNAL/libezgl"]
11+
path = libs/EXTERNAL/libezgl
12+
url = https://github.com/verilog-to-routing/ezgl.git
13+
[submodule "libs/EXTERNAL/yosys"]
14+
path = libs/EXTERNAL/yosys
15+
url = https://github.com/YosysHQ/yosys.git

.readthedocs.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ build:
1919
tools:
2020
python: "3.11"
2121

22+
submodules:
23+
include: all
24+
2225
python:
2326
install:
2427
- requirements: doc/requirements.txt
28+
- requirements: requirements.txt

0 commit comments

Comments
 (0)