Skip to content

Commit f73396b

Browse files
authored
Merge branch 'master' into add_det_route_stage_option_to_reclustering_utils
2 parents 9e93fcf + 8791d19 commit f73396b

File tree

91 files changed

+3503
-501
lines changed

Some content is hidden

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

91 files changed

+3503
-501
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: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,17 @@ on:
77
push:
88
branches:
99
- master
10+
paths-ignore: # Prevents from running if only docs are updated
11+
- 'doc/**'
12+
- '**/*README*'
13+
- '**.md'
14+
- '**.rst'
1015
pull_request:
16+
paths-ignore: # Prevents from running if only docs are updated
17+
- 'doc/**'
18+
- '**/*README*'
19+
- '**.md'
20+
- '**.rst'
1121
workflow_dispatch:
1222
schedule:
1323
- cron: '0 0 * * 0' # weekly
@@ -36,7 +46,7 @@ jobs:
3646
id: generate
3747
run: |
3848
REPO='${{ github.repository }}'
39-
echo "::set-output name=image::ghcr.io/${REPO,,}/ubuntu/focal/build"
49+
echo "image=ghcr.io/${REPO,,}/ubuntu/focal/build" >> $GITHUB_OUTPUT
4050
4151
- name: ⛴️ Build container image
4252
run: docker build -t ${{ steps.generate.outputs.image }} -f Dockerfile .

.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+

.github/workflows/test.yml

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,17 @@ on:
77
push:
88
branches:
99
- master
10+
paths-ignore: # Prevents from running if only docs are updated
11+
- 'doc/**'
12+
- '**/*README*'
13+
- '**.md'
14+
- '**.rst'
1015
pull_request:
16+
paths-ignore: # Prevents from running if only docs are updated
17+
- 'doc/**'
18+
- '**/*README*'
19+
- '**.md'
20+
- '**.rst'
1121
workflow_dispatch:
1222
schedule:
1323
- cron: '0 0 * * *' # daily
@@ -86,9 +96,10 @@ jobs:
8696
NUM_CORES: ${{ matrix.cores }}
8797

8898
- name: Upload test results
89-
# We always want the test results to be uploaded, even when cancelled.
99+
# If the job was not cancelled, we want to save the result (this includes
100+
# when the job fails). See warning here:
90101
# https://docs.github.com/en/actions/learn-github-actions/expressions#always
91-
if: ${{ always() }}
102+
if: ${{ !cancelled() }}
92103
# TODO: This runnner is running on a self-hosted CPU. In order to upgrade
93104
# to v4, need to upgrade the machine to support node20.
94105
uses: actions/upload-artifact@v3
@@ -275,17 +286,19 @@ jobs:
275286
./run_reg_test.py ${{ matrix.suite }} -show_failures -j2
276287
277288
- name: Upload regression run files
289+
if: ${{ !cancelled() }}
278290
uses: actions/upload-artifact@v4
279291
with:
280292
name: ${{matrix.name}}_run_files
281293
path: |
282294
vtr_flow/**/*.out
283-
vtr_flow/**/*.blif
295+
# vtr_flow/**/*.blif # Removed since it was taking too much space and was hardly used.
284296
vtr_flow/**/*.p
285297
vtr_flow/**/*.net
286298
vtr_flow/**/*.r
287299
288300
- name: Upload regression results
301+
if: ${{ !cancelled() }}
289302
uses: actions/upload-artifact@v4
290303
with:
291304
name: ${{matrix.name}}_results
@@ -421,9 +434,9 @@ jobs:
421434
matrix:
422435
include:
423436
- { name: 'GCC 9 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-9 && CXX=g++-9', }
424-
- { name: 'GCC 10 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-10 && CXX=g++-10', }
425-
- { name: 'GCC 11 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-11 && CXX=g++-11', }
426-
- { name: 'GCC 12 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-12 && CXX=g++-12', }
437+
- { name: 'GCC 10 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-10 && CXX=g++-10', }
438+
- { name: 'GCC 11 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-11 && CXX=g++-11', }
439+
- { name: 'GCC 12 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-12 && CXX=g++-12', }
427440
- { name: 'Clang 11 (Ubuntu Jammy - 22.04)', eval: 'CC=clang-11 && CXX=clang++-11', }
428441
- { name: 'Clang 12 (Ubuntu Jammy - 22.04)', eval: 'CC=clang-12 && CXX=clang++-12', }
429442
- { name: 'Clang 13 (Ubuntu Jammy - 22.04)', eval: 'CC=clang-13 && CXX=clang++-13', }
@@ -450,7 +463,6 @@ jobs:
450463
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
451464
./.github/scripts/build.sh
452465
453-
454466
Coverity:
455467
name: 'Coverity Scan'
456468
needs:

CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ option(VPR_USE_SERVER "Specify whether vpr enables the server mode" ON)
4646
#VPR option --enable_analytic_placer is also required for Analytic Placement
4747
option(VPR_ANALYTIC_PLACE "Enable analytic placement in VPR." ON)
4848
option(VPR_ENABLE_INTERCHANGE "Enable FPGA interchange." ON)
49+
option(VPR_ENABLE_NOC_SAT_ROUTING "Enable NoC SAT routing." OFF)
4950

5051
option(WITH_BLIFEXPLORER "Enable build with blifexplorer" OFF)
5152

@@ -220,12 +221,12 @@ endforeach()
220221
set(FLEX_BISON_WARN_SUPPRESS_FLAGS "")
221222
set(FLEX_BISON_WARN_SUPPRESS_FLAGS_TO_CHECK
222223
"-Wno-redundant-decls" #Flex/bison generate code with redundant declarations
223-
"-Wno-switch-default" #Flex/bison generate switch statments w/o default cases
224+
"-Wno-switch-default" #Flex/bison generate switch statements w/o default cases
224225
"-Wno-unused-parameter" #Flex produces functions with unused params in re-entrant mode
225226
"-Wno-missing-declarations" #Flex misses some declarations in re-entrant mode
226227
"-Wimplicit-fallthrough=0" #Bison produces some cases with explicit
227228
"-Wno-sign-compare" #Flex generates code which performs some signed/unsigned comparison
228-
"-Wno-null-dereference" #Bison produces some cases with potenetial null derefs
229+
"-Wno-null-dereference" #Bison produces some cases with potential null derefs
229230
)
230231
foreach(flag ${FLEX_BISON_WARN_SUPPRESS_FLAGS_TO_CHECK})
231232
CHECK_CXX_COMPILER_FLAG(${flag} CXX_COMPILER_SUPPORTS_${flag})

doc/src/api/vpr/contexts.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,7 @@ Structures
4343
.. doxygenstruct:: TimingContext
4444
:project: vpr
4545
:members:
46+
47+
.. doxygenstruct:: ServerContext
48+
:project: vpr
49+
:members:

doc/src/api/vpr/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ VPR API
1111
netlist
1212
route_tree
1313
rr_graph
14+
server

doc/src/api/vpr/server.rst

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
========
2+
Server
3+
========
4+
5+
server::update
6+
--------------
7+
8+
.. doxygenfunction:: server::update
9+
:project: vpr
10+
11+
server::GateIO
12+
--------------
13+
14+
.. doxygenclass:: server::GateIO
15+
:project: vpr
16+
:members:
17+
18+
server::Task
19+
------------
20+
21+
.. doxygenfile:: commcmd.h
22+
:project: vpr
23+
24+
.. doxygenclass:: server::Task
25+
:project: vpr
26+
:members:
27+
28+
server::TaskResolver
29+
--------------------
30+
31+
.. doxygenclass:: server::TaskResolver
32+
:project: vpr
33+
:members:
34+
35+
.. doxygenstruct:: server::CritPathsResult
36+
:project: vpr
37+
:members:
38+
39+
.. doxygenfunction:: server::calc_critical_path
40+
:project: vpr
41+
42+
.. doxygenenum:: e_timing_report_detail
43+
:project: vpr
44+
45+
comm::Telegram
46+
--------------
47+
48+
.. doxygenclass:: comm::TelegramHeader
49+
:project: vpr
50+
:members:
51+
52+
.. doxygenstruct:: comm::TelegramFrame
53+
:project: vpr
54+
:members:
55+
56+
.. doxygenclass:: comm::TelegramBuffer
57+
:project: vpr
58+
:members:
59+
60+
.. doxygenclass:: comm::ByteArray
61+
:project: vpr
62+
:members:
63+
64+
Parsers
65+
-------
66+
67+
.. doxygenclass:: server::TelegramOptions
68+
:project: vpr
69+
:members:
70+
71+
.. doxygenclass:: comm::TelegramParser
72+
:project: vpr
73+
:members:
74+
75+
76+
Compression utils
77+
-----------------
78+
79+
.. doxygenfunction:: try_compress
80+
:project: vpr
81+
82+
.. doxygenfunction:: try_decompress
83+
:project: vpr

doc/src/vpr/command_line_usage.rst

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1824,6 +1824,27 @@ The following options are used to enable power estimation in VPR.
18241824

18251825
Instructions on generating this file are provided in :ref:`power_estimation`.
18261826

1827+
Server Mode Options
1828+
^^^^^^^^^^^^^^^^^^^^^^^^
1829+
1830+
If VPR is in server mode, it listens on a socket for commands from a client. Currently, this is used to enable interactive timing analysis and visualization of timing paths in the VPR UI under the control of a separate client.
1831+
1832+
The following options are used to enable server mode in VPR.
1833+
1834+
.. seealso:: :ref:`server_mode` for more details.
1835+
1836+
.. option:: --server
1837+
1838+
Run in server mode. Accept single client application connection and respond to client requests
1839+
1840+
**Default:** ``off``
1841+
1842+
.. option:: --port PORT
1843+
1844+
Server port number.
1845+
1846+
**Default:** ``60555``
1847+
18271848
Command-line Auto Completion
18281849
----------------------------
18291850

doc/src/vtr/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ VTR also includes a set of benchmark designs known to work with the design flow.
4343
running_vtr
4444
benchmarks
4545
power_estimation/index.rst
46+
server_mode/index.rst
4647
tasks
4748
run_vtr_flow
4849
run_vtr_task
Binary file not shown.

0 commit comments

Comments
 (0)