Skip to content

Commit c630899

Browse files
Merge remote-tracking branch 'origin/master' into temp_rr_graph_gen_dir
2 parents 7b9c226 + 2517149 commit c630899

File tree

247 files changed

+3342
-2848
lines changed

Some content is hidden

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

247 files changed

+3342
-2848
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

Dockerfile

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,15 @@ ENV PIP_BREAK_SYSTEM_PACKAGES=1
1111
# Install and cleanup is done in one command to minimize the build cache size
1212
RUN apt-get update -qq \
1313
# Extract package names from install_apt_packages.sh
14-
&& 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' \
1515
# Install packages
1616
| xargs apt-get -y install --no-install-recommends \
1717
# Additional packages not listed in install_apt_packages.sh
1818
&& apt-get -y install --no-install-recommends \
1919
wget \
2020
ninja-build \
21-
default-jre \
2221
libeigen3-dev \
23-
libtbb-dev \
2422
python3-pip \
25-
git \
2623
time \
2724
# Install python packages
2825
&& pip install -r requirements.txt \

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ 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-
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. Geoders, and V. Betz "VTR 9: Open-Source CAD for Fabric and Beyond FPGA Architecture Exploration", ACM TRETS, 2025.
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
```

doc/src/vpr/command_line_usage.rst

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1517,6 +1517,35 @@ VPR uses a negotiated congestion algorithm (based on Pathfinder) to perform rout
15171517
* `swns` - setup Worst Negative Slack (sWNS) [ns]
15181518
* `stns` - Setup Total Negative Slack (sTNS) [ns]
15191519

1520+
1521+
.. option:: --generate_net_timing_report {on | off}
1522+
1523+
Generates a report that lists the bounding box, slack, and delay of every routed connection in a design in CSV format (``report_net_timing.csv``). Each row in the CSV corresponds to a single net.
1524+
1525+
The report can later be used by other tools to enable further optimizations. For example, the Synopsys synthesis tool (Synplify) can use this information to re-synthesize the design and improve the Quality of Results (QoR).
1526+
1527+
Fields in the report are:
1528+
1529+
.. code-block:: none
1530+
1531+
netname : The name assigned to the net in the atom netlist
1532+
Fanout : Net's fanout (number of sinks)
1533+
bb_xmin : X coordinate of the net's bounding box's bottom-left corner
1534+
bb_ymin : Y coordinate of the net's bounding box's bottom-left corner
1535+
bb_layer_min : Lowest layer number of the net's bounding box
1536+
bb_xmax : X coordinate of the net's bounding box's top-right corner
1537+
bb_ymax : Y coordinate of the net's bounding box's top-right corner
1538+
bb_layer_max : Highest layer number of the net's bounding box
1539+
src_pin_name : Name of the net's source pin
1540+
src_pin_slack : Setup slack of the net's source pin
1541+
sinks : A semicolon-separated list of sink pin entries, each in the format:
1542+
<sink_pin_name>,<sink_pin_slack>,<sink_pin_delay>
1543+
1544+
Example value for the ``sinks`` field:
1545+
``"U2.B,0.12,0.5;U3.C,0.10,0.6;U4.D,0.08,0.7"``
1546+
1547+
**Default:** ``off``
1548+
15201549
.. option:: --route_verbosity <int>
15211550

15221551
Controls the verbosity of routing output.

doc/src/zreferences.rst

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
Publications & References
22
=========================
33

4+
How to cite
5+
-----------
6+
`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>`__]
7+
8+
Previous Publications
9+
---------------------
10+
* `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.
11+
12+
* `J. LUU`, `J. Goeders`, `M. Wainberg`, `A. Somerville`, `T. Yu`, `K. Nasartschuk`, `M. Nasr`, `S. Wang`, `T. L`, `N. Ahmed`, `K. B. Kent`, `J. Anderson`, `J. Rose`, `V. Betz`, "VTR 7.0: Next Generation Architecture and CAD System for FPGAs", *ACM TRETS*, 2014.
13+
14+
References
15+
----------
16+
417
.. bibliography:: z_references.bib
518
:all:

install_apt_packages.sh

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ sudo apt-get install -y \
1010
flex \
1111
python3-dev \
1212
python3-venv
13-
13+
14+
# Packages for more complex features of VTR that most people will use.
15+
sudo apt-get install -y \
16+
libtbb-dev
17+
1418
# Required for graphics
1519
sudo apt-get install -y \
1620
libgtk-3-dev \
@@ -42,6 +46,11 @@ sudo apt-get install -y \
4246
sphinx-common
4347

4448
# Required for code formatting
45-
sudo apt-get install -y \
46-
clang-format-18
47-
49+
# NOTE: clang-format-18 may only be found on specific distributions. Only
50+
# install it if the distribution has this version of clang format.
51+
if apt-cache search '^clang-format-18$' | grep -q 'clang-format-18'; then
52+
sudo apt-get install -y \
53+
clang-format-18
54+
else
55+
echo "clang-format-18 not found in apt-cache. Skipping installation."
56+
fi

vpr/CMakeLists.txt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ set_property(CACHE VPR_PGO_CONFIG PROPERTY STRINGS prof_gen prof_use none)
1212

1313
set(VPR_PGO_DATA_DIR "." CACHE PATH "Where to store and retrieve PGO data")
1414

15+
set(VPR_ENABLE_OPEN_MP "on" CACHE STRING "Enable OpenMP when compiling VPR")
16+
1517
#Handle graphics setup
1618
set(GRAPHICS_DEFINES "")
1719

@@ -295,6 +297,21 @@ else()
295297
message(FATAL_ERROR "VPR: Unrecognized execution engine '${VPR_USE_EXECUTION_ENGINE}'")
296298
endif()
297299

300+
#
301+
# OpenMP configuration
302+
#
303+
if (VPR_ENABLE_OPEN_MP STREQUAL "on")
304+
find_package(OpenMP)
305+
if (OpenMP_CXX_FOUND)
306+
target_link_libraries(libvpr OpenMP::OpenMP_CXX)
307+
message(STATUS "OpenMP: Enabled")
308+
else()
309+
message(STATUS "OpenMP: Disabled (requested but not found)")
310+
endif()
311+
else()
312+
message(STATUS "OpenMP: Disabled")
313+
endif()
314+
298315
#
299316
# Signal handler configuration
300317
#

0 commit comments

Comments
 (0)