Skip to content

Commit af31b4d

Browse files
authored
Merge branch 'master' into 3d_noc
2 parents 8554635 + 3ac6d17 commit af31b4d

File tree

84 files changed

+4274
-2942
lines changed

Some content is hidden

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

84 files changed

+4274
-2942
lines changed

.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: ""}
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=ON", 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/test.yml

Lines changed: 0 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -34,83 +34,6 @@ env:
3434
MATRIX_EVAL: "CC=gcc-11 && CXX=g++-11"
3535

3636
jobs:
37-
38-
39-
Run-tests:
40-
# Prevents from running on forks where no custom runners are available
41-
if: ${{ github.repository_owner == 'verilog-to-routing' }}
42-
43-
timeout-minutes: 420
44-
45-
container: ubuntu:jammy
46-
47-
runs-on: [self-hosted, Linux, X64]
48-
49-
strategy:
50-
fail-fast: false
51-
matrix:
52-
include:
53-
- {test: "vtr_reg_nightly_test1", cores: "16", options: "", cmake: "", extra_pkgs: ""}
54-
- {test: "vtr_reg_nightly_test1_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
55-
- {test: "vtr_reg_nightly_test2", cores: "16", options: "", cmake: "", extra_pkgs: ""}
56-
- {test: "vtr_reg_nightly_test2_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
57-
- {test: "vtr_reg_nightly_test3", cores: "16", options: "", cmake: "", extra_pkgs: ""}
58-
- {test: "vtr_reg_nightly_test3_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
59-
- {test: "vtr_reg_nightly_test4", cores: "16", options: "", cmake: "", extra_pkgs: ""}
60-
- {test: "vtr_reg_nightly_test4_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
61-
- {test: "vtr_reg_nightly_test5", cores: "16", options: "", cmake: "", extra_pkgs: ""}
62-
- {test: "vtr_reg_nightly_test6", cores: "16", options: "", cmake: "", extra_pkgs: ""}
63-
- {test: "vtr_reg_nightly_test7", cores: "16", options: "", cmake: "", extra_pkgs: ""}
64-
- {test: "vtr_reg_strong", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3", extra_pkgs: "libeigen3-dev"}
65-
- {test: "vtr_reg_strong_odin", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3 -DWITH_ODIN=ON", extra_pkgs: "libeigen3-dev"}
66-
- {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"}
67-
- {test: "vtr_reg_system_verilog", cores: "16", options: "", cmake: "-DYOSYS_F4PGA_PLUGINS=ON", extra_pkgs: ""}
68-
- {test: "odin_reg_strong", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
69-
- {test: "parmys_reg_strong", cores: "16", options: "", cmake: "-DYOSYS_F4PGA_PLUGINS=ON", extra_pkgs: ""}
70-
71-
env:
72-
DEBIAN_FRONTEND: "noninteractive"
73-
74-
steps:
75-
76-
# TODO: This runnner is running on a self-hosted CPU. In order to upgrade
77-
# to v4, need to upgrade the machine to support node20.
78-
- uses: actions/checkout@v3
79-
with:
80-
submodules: 'true'
81-
82-
- name: Setup
83-
run: stdbuf -i0 -i0 -e0 ./.github/scripts/hostsetup.sh
84-
85-
- name: Install external libraries
86-
run: apt install -y ${{ matrix.extra_pkgs }}
87-
if: ${{ matrix.extra_pkgs }}
88-
89-
- name: Execute test script
90-
run: stdbuf -i0 -o0 -e0 ./.github/scripts/run-vtr.sh
91-
env:
92-
VPR_NUM_WORKERS: 4
93-
VTR_TEST: ${{ matrix.test }}
94-
VTR_TEST_OPTIONS: ${{ matrix.options }}
95-
VTR_CMAKE_PARAMS: ${{ matrix.cmake }}
96-
NUM_CORES: ${{ matrix.cores }}
97-
98-
- name: Upload test results
99-
# If the job was not cancelled, we want to save the result (this includes
100-
# when the job fails). See warning here:
101-
# https://docs.github.com/en/actions/learn-github-actions/expressions#always
102-
if: ${{ !cancelled() }}
103-
# TODO: This runnner is running on a self-hosted CPU. In order to upgrade
104-
# to v4, need to upgrade the machine to support node20.
105-
uses: actions/upload-artifact@v3
106-
with:
107-
name: ${{matrix.test}}_test_results
108-
path: |
109-
**/results*.gz
110-
**/plot_*.svg
111-
**/qor_results*.tar.gz
112-
113-
11437
Build:
11538
name: 'B: Building VtR'
11639
runs-on: ubuntu-22.04

BUILDING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ If you download a different version of those tools, then those versions may not
4646

4747
To verfiy that VTR has been installed correctly run::
4848

49-
./vtr_flow/scripts/run_vtr_task.py regression_tests/vtr_reg_basic/basic_timing
49+
./vtr_flow/scripts/run_vtr_task.py ./vtr_flow/tasks/regression_tests/vtr_reg_basic/basic_timing
5050

5151
The expected output is::
5252

doc/src/api/vpr/grid.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
========
2+
Grid
3+
========
4+
5+
DeviceGrid
6+
-------
7+
8+
.. doxygenclass:: DeviceGrid
9+
:project: vpr
10+
:members:

doc/src/api/vpr/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ VPR API
77
:maxdepth: 1
88

99
contexts
10+
grid
1011
mapping
1112
netlist
1213
route_tree

doc/src/api/vpr/rr_graph.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,9 @@ RRSpatialLookup
3535
:project: librrgraph
3636
:members:
3737

38+
rr_graph_utils
39+
---------------
40+
41+
.. doxygenfile:: rr_graph_utils.h
42+
:project: librrgraph
43+
:sections: briefdescription detaileddescription func prototype user-defined public-func
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
==============
2+
Router Lookahead
3+
==============
4+
5+
e_router_lookahead
6+
----------
7+
.. doxygenenum:: e_router_lookahead
8+
:project: vpr
9+
10+
11+
RouterLookahead
12+
----------
13+
.. doxygenclass:: RouterLookahead
14+
:project: vpr
15+
:members:
16+
17+
MapLookahead
18+
----------
19+
.. doxygenclass:: MapLookahead
20+
:project: vpr
21+
22+
make_router_lookahead
23+
----------
24+
.. doxygenfunction:: make_router_lookahead
25+
:project: vpr
26+
27+
get_cached_router_lookahead
28+
----------
29+
.. doxygenfunction:: get_cached_router_lookahead
30+
:project: vpr
31+
32+
invalidate_router_lookahead_cache
33+
----------
34+
.. doxygenfunction:: invalidate_router_lookahead_cache
35+
:project: vpr

doc/src/api/vprinternals/vpr_router.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ VPR Router
77
.. toctree::
88
:maxdepth: 1
99

10-
router_heap
10+
router_heap
11+
router_lookahead

doc/src/vpr/command_line_usage.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1306,6 +1306,15 @@ The following options are only valid when the router is in timing-driven mode (t
13061306

13071307
**Default:** ``1.2``
13081308

1309+
.. option:: --astar_offset <float>
1310+
1311+
Sets how aggressive the directed search used by the timing-driven router is.
1312+
It is a subtractive adjustment to the lookahead heuristic.
1313+
1314+
Values between 0 and 1e-9 are resonable; higher values may increase quality at the expense of run-time.
1315+
1316+
**Default:** ``0.0``
1317+
13091318
.. option:: --router_profiler_astar_fac <float>
13101319

13111320
Controls the directedness of the timing-driven router's exploration when doing router delay profiling of an architecture.

0 commit comments

Comments
 (0)