Skip to content

Commit 01d3b7d

Browse files
committed
2 parents 7950a1b + aabed10 commit 01d3b7d

File tree

489 files changed

+12135
-8118
lines changed

Some content is hidden

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

489 files changed

+12135
-8118
lines changed

.github/scripts/install_dependencies.sh

Lines changed: 5 additions & 13 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,10 +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 \
60-
openssl
49+
clang-18
50+
51+
# Standard packages install script.
52+
./install_apt_packages.sh
6153

6254
pip install -r requirements.txt
6355

.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: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,12 @@ jobs:
104104
run: |
105105
source .venv/bin/activate
106106
./run_reg_test.py -j12 vtr_reg_nightly_test7
107+
108+
- name: Upload regression results
109+
if: success() || failure()
110+
uses: actions/upload-artifact@v4
111+
with:
112+
name: nightly_test_results
113+
path: |
114+
vtr_flow/**/*.log
115+
vtr_flow/**/parse_results*.txt

.github/workflows/stale.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ jobs:
1010
steps:
1111
- uses: actions/stale@v9
1212
with:
13+
# Set default number of days before being marked stale to 100 years
14+
# This will be overriden by "days-before-issue-stale" and "days-before-pr-stale"
15+
# This is done to avoid marking PRs as stale, as it is not something
16+
# we want to do.
17+
days-before-stale: 36500
1318
# The message to be shown for stale issues
1419
stale-issue-message: 'This issue has been inactive for a year and has been marked as stale. It will be closed in 15 days if it continues to be stale. If you believe this is still an issue, please add a comment.'
1520
close-issue-message: 'This issue has been marked stale for 15 days and has been automatically closed.'
@@ -20,6 +25,11 @@ jobs:
2025
# Start from the oldest issues
2126
ascending: true
2227

28+
# Upper limit for number of API calls per day
29+
# This worklfow does 2-3 API calls per issue
30+
# including issues that have been marked stale
31+
operations-per-run: 300
32+
2333
# The configuration below can be used to allow the same behaviour with PRs.
2434
# Since we currently don't want to close old PRs, it is commented out but
2535
# left here in case we change our mind.

Dockerfile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
1-
FROM ubuntu:22.04
1+
FROM ubuntu:24.04
22
ARG DEBIAN_FRONTEND=noninteractive
33
# set out workspace
44
ENV WORKSPACE=/workspace
55
RUN mkdir -p ${WORKSPACE}
66
WORKDIR ${WORKSPACE}
77
COPY . ${WORKSPACE}
8+
# Required to bypass Python's protection on system-wide package installations in Ubuntu 23.04+.
9+
# This allows pip to install packages globally without using a virtual environment.
10+
ENV PIP_BREAK_SYSTEM_PACKAGES=1
811
# Install and cleanup is done in one command to minimize the build cache size
912
RUN apt-get update -qq \
1013
# Extract package names from install_apt_packages.sh
11-
&& sed '/sudo/d' install_apt_packages.sh | sed '/#/d' | sed 's/ \\//g' | sed '/^$/d' | sed '/^[[:space:]]*$/d' \
14+
&& sed '/sudo/d' install_apt_packages.sh | sed '/#/d' | sed '/if\s.*then$/d' | sed '/else$/d' | sed '/fi$/d' | sed '/echo\s/d' | sed 's/ \\//g' | sed '/^$/d' | sed '/^[[:space:]]*$/d' | sed 's/\s//g' \
1215
# Install packages
1316
| xargs apt-get -y install --no-install-recommends \
1417
# Additional packages not listed in install_apt_packages.sh
1518
&& apt-get -y install --no-install-recommends \
1619
wget \
1720
ninja-build \
18-
default-jre \
1921
libeigen3-dev \
20-
libtbb-dev \
2122
python3-pip \
22-
git \
2323
time \
2424
# Install python packages
2525
&& pip install -r requirements.txt \
@@ -29,4 +29,4 @@ RUN apt-get update -qq \
2929
# Build VTR
3030
RUN rm -rf build && make -j$(nproc) && make install
3131
# Container's default launch command
32-
SHELL ["/bin/bash", "-c"]
32+
SHELL ["/bin/bash", "-c"]

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@ See the [full license](LICENSE.md) for details.
3636
## How to Cite
3737
The following paper may be used as a general citation for VTR:
3838

39-
K. E. Murray, O. Petelin, S. Zhong, J. M. Wang, M. ElDafrawy, J.-P. Legault, E. Sha, A. G. Graham, J. Wu, M. J. P. Walker, H. Zeng, P. Patros, J. Luu, K. B. Kent and V. Betz "VTR 8: High Performance CAD and Customizable FPGA Architecture Modelling", ACM TRETS, 2020.
39+
M. A. Elgammal, A. Mohaghegh, S. G. Shahrouz, F. Mahmoudi, F. Kosar, K. Talaei, J. Fife, D. Khadivi, K. Murray, A. Boutros, K. B. Kent, J. Goeders, and V. Betz "VTR 9: Open-Source CAD for Fabric and Beyond FPGA Architecture Exploration", ACM TRETS, 2025. [PDF](https://dl.acm.org/doi/epdf/10.1145/3734798)
4040

4141
Bibtex:
4242
```
43-
@article{vtr8,
44-
title={VTR 8: High Performance CAD and Customizable FPGA Architecture Modelling},
45-
author={Murray, Kevin E. and Petelin, Oleg and Zhong, Sheng and Wang, Jai Min and ElDafrawy, Mohamed and Legault, Jean-Philippe and Sha, Eugene and Graham, Aaron G. and Wu, Jean and Walker, Matthew J. P. and Zeng, Hanqing and Patros, Panagiotis and Luu, Jason and Kent, Kenneth B. and Betz, Vaughn},
43+
@article{vtr9,
44+
title={VTR 9: Open-Source CAD for Fabric and Beyond FPGA Architecture Exploration},
45+
author={Elgammal, Mohamed A. and Mohaghegh, Amin and Shahrouz, Soheil G. and Mahmoudi, Fatemehsadat and Kosar, Fahrican and Talaei, Kimia and Fife, Joshua and Khadivi, Daniel and Murray, Kevin and Boutros, Andrew and Kent, Kenneth B. and Goeders, Jeff and Betz, Vaughn},
4646
journal={ACM Trans. Reconfigurable Technol. Syst.},
47-
year={2020}
47+
year={2025}
4848
}
4949
```
5050

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
==========
2+
Connection Router
3+
==========
4+
5+
ConnectionRouter
6+
---------
7+
.. doxygenfile:: connection_router.h
8+
:project: vpr
9+
10+
SerialConnectionRouter
11+
----------
12+
.. doxygenclass:: SerialConnectionRouter
13+
:project: vpr
14+
15+
ParallelConnectionRouter
16+
----------
17+
.. doxygenclass:: ParallelConnectionRouter
18+
:project: vpr

doc/src/api/vprinternals/vpr_router.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ VPR Router
99

1010
router_heap
1111
router_lookahead
12+
router_connection_router

doc/src/api/vtrutil/containers.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ vtr_vector
88
:project: vtr
99
:sections: briefdescription detaileddescription innernamespace innerclass public-func typedef func
1010

11+
vtr_array
12+
----------
13+
.. doxygenfile:: vtr_array.h
14+
:project: vtr
15+
:sections: briefdescription detaileddescription innernamespace innerclass public-func typedef func
16+
1117
vtr_small_vector
1218
----------------
1319
.. doxygenclass:: vtr::small_vector

doc/src/quickstart/index.rst

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,23 @@ If you cloned the repository, you will need to set up the git submodules (if you
2323
2424
> git submodule init
2525
> git submodule update
26-
27-
VTR requires several system packages and Python packages to build and run the flow. Ubuntu users can install the required system packages using the following command (this works on Ubuntu 18.04, 20.04, 22.04 and 24.04, but you may require different packages on other Linux distributions). Our CI testing is on Ubuntu 24.04, so that is the best tested platform and recommended for development.
26+
27+
VTR requires several system and Python packages to build and run the flow. Ubuntu users can install the required system packages using the provided script or the command below. This setup works on Ubuntu 18.04, 20.04, 22.04, and 24.04, but note that some packages (such as ``clang-format-18``) are only available by default on Ubuntu 24.04. On older versions, this package will not be installed unless you manually add the appropriate LLVM APT repository.
28+
29+
To install ``clang-format-18`` on older Ubuntu versions (e.g., 20.04 or 22.04), you must add the LLVM repository manually. Note that this tool is only required if you want to run ``make format`` to automatically fix formatting issues in the code. It is not necessary for building or running VPR.
30+
31+
.. code-block:: bash
32+
33+
sudo apt install wget gnupg lsb-release
34+
wget https://apt.llvm.org/llvm.sh
35+
chmod +x llvm.sh
36+
sudo ./llvm.sh 18
37+
38+
After that, you can install ``clang-format-18`` using:
39+
40+
.. code-block:: bash
41+
42+
sudo apt install clang-format-18
2843
2944
.. code-block:: bash
3045

doc/src/tutorials/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ Tutorials
1010
arch/index
1111
titan_benchmarks/index
1212
timing_simulation/index
13+
timing_analysis/index

0 commit comments

Comments
 (0)