Skip to content

Commit 82f3746

Browse files
committed
Merge remote-tracking branch 'origin/master' into yosys-upgrade
Attempting to resolve conflicts on yosys-upgrade
2 parents 778e3f2 + 3b984a7 commit 82f3746

File tree

545 files changed

+5032
-13141
lines changed

Some content is hidden

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

545 files changed

+5032
-13141
lines changed

.github/workflows/nightly_test_manual.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,4 +112,5 @@ jobs:
112112
name: nightly_test_results
113113
path: |
114114
vtr_flow/**/*.log
115+
vtr_flow/**/vpr.out
115116
vtr_flow/**/parse_results*.txt

.github/workflows/test.yml

Lines changed: 109 additions & 32 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,6 +144,92 @@ jobs:
125144
run: ./.github/scripts/unittest.sh
126145

127146

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:
151+
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'
157+
steps:
158+
159+
- uses: actions/setup-python@v5
160+
with:
161+
python-version: 3.12.3
162+
163+
- uses: actions/checkout@v4
164+
with:
165+
submodules: 'true'
166+
167+
- name: 'Get number of CPU cores'
168+
uses: SimenB/github-actions-cpu-cores@v2
169+
id: cpu-cores
170+
171+
- name: 'Install dependencies'
172+
run: ./.github/scripts/install_dependencies.sh
173+
174+
- name: 'ccache'
175+
uses: hendrikmuhs/[email protected]
176+
177+
- name: 'Test with VTR_ASSERT_LEVEL 4'
178+
if: success() || failure()
179+
env:
180+
CMAKE_PARAMS: "${{ env.COMMON_CMAKE_PARAMS }} -DVTR_ASSERT_LEVEL=4"
181+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
182+
run: |
183+
rm -f build/CMakeCache.txt
184+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
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}}
231+
232+
128233
Regression:
129234
runs-on: ubuntu-24.04
130235
strategy:
@@ -137,42 +242,12 @@ jobs:
137242
suite: 'vtr_reg_basic',
138243
extra_pkgs: ""
139244
},
140-
{
141-
name: 'Basic with highest assertion level',
142-
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=4 -DWITH_BLIFEXPLORER=on',
143-
suite: 'vtr_reg_basic',
144-
extra_pkgs: ""
145-
},
146245
{
147246
name: 'Basic_odin',
148247
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
149248
suite: 'vtr_reg_basic_odin',
150249
extra_pkgs: ""
151250
},
152-
{
153-
name: 'Basic with NO_GRAPHICS',
154-
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_USE_EZGL=off',
155-
suite: 'vtr_reg_basic',
156-
extra_pkgs: ""
157-
},
158-
{
159-
name: 'Basic with NO_SERVER',
160-
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_USE_EZGL=on -DVPR_USE_SERVER=off',
161-
suite: 'vtr_reg_basic',
162-
extra_pkgs: ""
163-
},
164-
{
165-
name: 'Basic with CAPNPROTO disabled',
166-
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_CAPNPROTO=off',
167-
suite: 'vtr_reg_basic',
168-
extra_pkgs: ""
169-
},
170-
{
171-
name: 'Basic with serial VPR_EXECUTION_ENGINE',
172-
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_EXECUTION_ENGINE=serial -DTATUM_EXECUTION_ENGINE=serial',
173-
suite: 'vtr_reg_basic',
174-
extra_pkgs: ""
175-
},
176251
{
177252
name: 'Basic with VTR_ENABLE_DEBUG_LOGGING',
178253
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on',
@@ -484,7 +559,9 @@ jobs:
484559
needs:
485560
- Build
486561
- Format
487-
- UniTests
562+
- VerifyTestSuites
563+
- UnitTests
564+
- BuildVariations
488565
- Regression
489566
- Sanitized
490567
- Parmys

.gitmodules

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,7 @@
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

.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

Makefile

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#This is a simple wrapper which hides cmake (for convenience, and from non-expert end users).
1+
# This is a simple wrapper which hides cmake (for convenience, and from non-expert end users).
22
#
33
# It supports the targets:
44
# 'make' - builds everything (all libaries/executables)
@@ -15,12 +15,14 @@
1515
#
1616
# 'make BUILD_TYPE=debug VERBOSE=1'
1717

18-
#Default build type
19-
# Possible values:
20-
# release_pgo #Perform a 2-stage build with profile-guided compiler optimization
21-
# release #Build with compiler optimization
22-
# debug #Build with debug info and no compiler optimization
23-
# strict #Build VPR with warnings treated as errors
18+
# Build type
19+
# Possible values (not case sensitive):
20+
# release #Build with compiler optimization (Default)
21+
# RelWithDebInfo #Build with debug info and compiler optimizations
22+
# debug #Build with debug info and no compiler optimization
23+
# Possible suffixes:
24+
# _pgo #Perform a 2-stage build with profile-guided compiler optimization
25+
# _strict #Build VPR with warnings treated as errors
2426
BUILD_TYPE ?= release
2527

2628
#Debugging verbosity enable

README.developers.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,11 +1131,17 @@ All tests passed (1 assertion in 1 test case)
11311131
VTR has support for several additional tools/features to aid debugging.
11321132

11331133
## Basic
1134-
To build vpr with make in debug mode, simply add `BUILD_TYPE=debug` at the end of your make command.
1134+
To build a tool with make in debug mode, simply add `BUILD_TYPE=debug` at the end of your make command. For example, to build all tools in debug mode use:
11351135
```shell
1136-
$ make vpr BUILD_TYPE=debug
1136+
$ make BUILD_TYPE=debug
11371137
```
11381138

1139+
You can also enable additional (verbose) output from some tools. To build vpr with both debug information and additional output, use:
1140+
```shell
1141+
$ make vpr BUILD_TYPE=debug VERBOSE=1
1142+
```
1143+
1144+
11391145
## Sanitizers
11401146
VTR can be compiled using *sanitizers* which will detect invalid memory accesses, memory leaks and undefined behaviour (supported by both GCC and LLVM):
11411147
```shell

dev/subtree_config.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,6 @@
2424
internal_path="libs/EXTERNAL/libtatum"
2525
external_url="https://github.com/verilog-to-routing/tatum.git"
2626
default_external_ref="master"/>
27-
<subtree
28-
name="libezgl"
29-
internal_path="libs/EXTERNAL/libezgl"
30-
external_url="https://github.com/mariobadr/ezgl.git"
31-
default_external_ref="master"/>
3227
<subtree
3328
name="capnproto"
3429
internal_path="libs/EXTERNAL/capnproto"
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
{"test_suites": [
2+
{
3+
"name": "vtr_reg_basic",
4+
"ignored_tasks": []
5+
},
6+
{
7+
"name": "vtr_reg_basic_odin",
8+
"ignored_tasks": []
9+
},
10+
{
11+
"name": "parmys_reg_basic",
12+
"ignored_tasks": []
13+
},
14+
{
15+
"name": "vtr_reg_valgrind_small",
16+
"ignored_tasks": []
17+
},
18+
{
19+
"name": "vtr_reg_strong",
20+
"ignored_tasks": [
21+
"strong_ap/gen_mass_report",
22+
"strong_cluster_seed_type",
23+
"strong_router_heap",
24+
"strong_verify_rr_graph_3d",
25+
"strong_xilinx_support"
26+
]
27+
},
28+
{
29+
"name": "vtr_reg_strong_odin",
30+
"ignored_tasks": [
31+
"strong_pack_modes",
32+
"strong_xilinx_support",
33+
"strong_router_heap",
34+
"strong_cluster_seed_type"
35+
]
36+
},
37+
{
38+
"name": "vtr_reg_nightly_test1",
39+
"ignored_tasks": [
40+
"arithmetic_tasks/FIR_filters",
41+
"arithmetic_tasks/FIR_filters_frac",
42+
"arithmetic_tasks/adder_trees",
43+
"symbiflow"
44+
]
45+
},
46+
{
47+
"name": "vtr_reg_nightly_test2",
48+
"ignored_tasks": [
49+
"complex_switch",
50+
"vpr_verify_custom_sb_diff_chan_width",
51+
"vtr_xilinx_qor"
52+
]
53+
},
54+
{
55+
"name": "vtr_reg_nightly_test3",
56+
"ignored_tasks": [
57+
"vtr_reg_qor_chain_large"
58+
]
59+
},
60+
{
61+
"name": "vtr_reg_nightly_test4",
62+
"ignored_tasks": []
63+
},
64+
{
65+
"name": "vtr_reg_nightly_test5",
66+
"ignored_tasks": [
67+
"vpr_noc_mlp_odin_ii",
68+
"vpr_3d_noc_star_topology",
69+
"vpr_3d_noc_nearest_neighbor_topology",
70+
"vpr_3d_noc_clique_topology"
71+
]
72+
},
73+
{
74+
"name": "vtr_reg_nightly_test6",
75+
"ignored_tasks": []
76+
},
77+
{
78+
"name": "vtr_reg_nightly_test7",
79+
"ignored_tasks": [
80+
"vtr_reg_qor_large_depop_run_flat",
81+
"vtr_reg_qor_large_run_flat",
82+
"verify_router_lookahead_run_flat"
83+
]
84+
}
85+
]}

0 commit comments

Comments
 (0)