Skip to content

Commit ff0cf71

Browse files
Merge branch 'master' into modeling_multi_die_stack
2 parents e7d016b + 7a96762 commit ff0cf71

File tree

191 files changed

+15038575
-115
lines changed

Some content is hidden

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

191 files changed

+15038575
-115
lines changed

.github/scripts/install_dependencies.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,19 @@ sudo apt install -y \
4343
qtbase5-dev \
4444
uuid-dev \
4545
default-jdk \
46-
clang \
47-
clang-format-12 \
4846
g++-9 \
4947
gcc-9 \
5048
g++-10 \
5149
gcc-10 \
5250
g++-11 \
5351
gcc-11 \
52+
g++-12 \
53+
gcc-12 \
54+
clang-11 \
5455
clang-12 \
56+
clang-13 \
57+
clang-14 \
58+
clang-format-14 \
5559
libtbb12
5660

5761
pip install -r requirements.txt

.github/workflows/build_dependency_ubuntu-22.04.sh

Lines changed: 0 additions & 59 deletions
This file was deleted.

.github/workflows/test.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,11 @@ jobs:
363363
- { name: 'GCC 9 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-9 && CXX=g++-9', }
364364
- { name: 'GCC 10 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-10 && CXX=g++-10', }
365365
- { name: 'GCC 11 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-11 && CXX=g++-11', }
366+
- { name: 'GCC 12 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-12 && CXX=g++-12', }
367+
- { name: 'Clang 11 (Ubuntu Jammy - 22.04)', eval: 'CC=clang-11 && CXX=clang++-11', }
366368
- { name: 'Clang 12 (Ubuntu Jammy - 22.04)', eval: 'CC=clang-12 && CXX=clang++-12', }
369+
- { name: 'Clang 13 (Ubuntu Jammy - 22.04)', eval: 'CC=clang-13 && CXX=clang++-13', }
370+
- { name: 'Clang 14 (Ubuntu Jammy - 22.04)', eval: 'CC=clang-14 && CXX=clang++-14', }
367371
name: 'B: ${{ matrix.name }}'
368372
steps:
369373

CMakeLists.txt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ option(VTR_ENABLE_PROFILING "Enable performance profiler (gprof)" OFF)
3232
option(VTR_ENABLE_COVERAGE "Enable code coverage tracking (gcov)" OFF)
3333
option(VTR_ENABLE_DEBUG_LOGGING "Enable debug logging" OFF)
3434
option(VTR_ENABLE_VERBOSE "Enable increased debug verbosity" OFF)
35+
option(SPEC_CPU "Enable SPEC CPU v8 support" OFF)
3536

3637
#Allow the user to decide whether to compile the graphics library
3738
set(VPR_USE_EZGL "auto" CACHE STRING "Specify whether vpr uses the graphics library")
@@ -298,6 +299,16 @@ if(VTR_ENABLE_VERBOSE)
298299
message(STATUS "Enabling increased debugging verbosity")
299300
endif()
300301

302+
#
303+
# Build for SPEC CPU Benchmark v8
304+
#
305+
set(SPEC_CPU_FLAGS "")
306+
if(SPEC_CPU)
307+
# Enable SPEC CPU flag - Maximizes portability of code and minimizing the variation in how much work we do on different platforms
308+
set(SPEC_CPU_FLAGS "-DSPEC_CPU")
309+
message(STATUS "SPEC CPU FLAGS: ${SPEC_CPU_FLAGS}")
310+
endif()
311+
301312
if (CMAKE_MAKE_PROGRAM EQUAL "ninja" )
302313
#Only for coloured output for ninja, it may be desired
303314
#to not force colours with other make programs (e.g. if
@@ -315,7 +326,7 @@ endif()
315326
# Set final flags
316327
#
317328
separate_arguments(
318-
ADDITIONAL_FLAGS UNIX_COMMAND "${SANITIZE_FLAGS} ${PROFILING_FLAGS} ${COVERAGE_FLAGS} ${LOGGING_FLAGS} ${COLORED_COMPILE} ${EXTRA_FLAGS}"
329+
ADDITIONAL_FLAGS UNIX_COMMAND "${SANITIZE_FLAGS} ${PROFILING_FLAGS} ${COVERAGE_FLAGS} ${LOGGING_FLAGS} ${COLORED_COMPILE} ${EXTRA_FLAGS} ${SPEC_CPU_FLAGS}"
319330
)
320331
separate_arguments(
321332
WARN_FLAGS UNIX_COMMAND "${WARN_FLAGS}"

cmake/modules/AutoClangFormat.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ add_custom_target(format-cpp-files
2121
COMMAND find ${DIRS_TO_FORMAT_CPP} ${FIND_TO_FORMAT_CPP})
2222

2323
#
24-
# Use clang-format-12 for code format
24+
# Use clang-format-14 for code format
2525
#
2626
add_custom_target(format-cpp
2727
COMMAND find ${DIRS_TO_FORMAT_CPP} ${FIND_TO_FORMAT_CPP} |
28-
xargs -P ${CPU_COUNT} clang-format-12 -style=file -i)
28+
xargs -P ${CPU_COUNT} clang-format-14 -style=file -i)
2929

3030
#
3131
# Use simple python script for fixing C like boxed comments

doc/src/parmys/quickstart.rst

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,32 @@ Prerequisites
99
* ctags
1010
* bison
1111
* flex
12-
* gcc 5.x
12+
* g++ 9.x
1313
* cmake 3.9 (minimum version)
1414
* time
1515
* cairo
16-
* gawk
17-
* xdot
18-
* tcl-dev
16+
* build-essential
17+
* libreadline-dev
18+
* gawk tcl-dev
19+
* libffi-dev
20+
* git
1921
* graphviz
22+
* xdot
2023
* pkg-config
21-
* python3
22-
* libffi-dev
23-
* libreadline-dev
24+
* python3-dev
2425
* libboost-system-dev
2526
* libboost-python-dev
26-
* libboost-filesystem-dev
27+
* libboost-filesystem-dev
2728
* zlib1g-dev
2829

2930
Building
3031
--------
3132

3233
To build the VTR flow with the Parmys front-end you may use the VTR Makefile wrapper, by calling the ``make CMAKE_PARAMS="-DWITH_PARMYS=ON"`` command in the `$VTR_ROOT` directory.
3334

35+
.. note::
36+
Our CI testing is on Ubuntu 22.04, so that is the best tested platform and recommended for development.
37+
3438
.. note::
3539

3640
Compiling the VTR flow with the ``-DYOSYS_F4PGA_PLUGINS=ON`` flag is required to build and install Yosys SystemVerilog and UHDM plugins.

doc/src/quickstart/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ The first step is to `download VTR <https://verilogtorouting.org/download/>`_ an
1717

1818
Environment Setup
1919
-----------------
20-
VTR requires several system packages and Python packages to build and run the flow. You can install the required system packages using the following command (this works on Ubuntu 18.04 and 20.04, but you may require different packages on other Linux distributions):
20+
VTR requires several system packages and Python packages to build and run the flow. You can install the required system packages using the following command (this works on Ubuntu 18.04, 20.04 and 22.04, but you may require different packages on other Linux distributions). Our CI testing is on Ubuntu 22.04, so that is the best tested platform and recommended for development.
2121

2222
.. code-block:: bash
2323

doc/src/vtr/optional_build_info.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,15 @@ For unix-like systems we provide a wrapper Makefile which supports the tradition
1818
VTR requires a C++-14 compliant compiler.
1919
It is tested against the default compilers of all Debian and Ubuntu releases within their standard support lifetime. Currently, those are the following:
2020

21-
* GCC/G++: 7, 8, 9, 10, 11
22-
* Clang/Clang++: 6, 7, 10
21+
* GCC/G++: 9, 10, 11, 12
22+
* Clang/Clang++: 11, 12, 13, 14
2323

2424
Other compilers may work but are untested (your milage may vary).
2525

2626
### Package Dependencies
2727

28+
* On Linux, the fastest way to set up all dependencies is to enter the commands listed in the VTR Quick Start [Environment Setup](https://docs.verilogtorouting.org/en/latest/quickstart/#environment-setup).
29+
2830
* At minimum you will require:
2931
* A modern C++ compiler supporting C++14 (such as GCC >= 4.9 or clang >= 3.6)
3032
* cmake, make

install_apt_packages.sh

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,25 @@ sudo apt-get install -y \
1616
libgtk-3-dev \
1717
libx11-dev
1818

19-
# Required for parmys front-end
19+
# Required for parmys front-end from https://github.com/YosysHQ/yosys
2020
sudo apt-get install -y \
21+
build-essential \
2122
clang \
23+
bison \
24+
flex \
25+
libreadline-dev \
26+
gawk \
2227
tcl-dev \
23-
uuid-dev \
24-
default-jdk \
25-
libreadline-dev
28+
libffi-dev \
29+
git \
30+
graphviz \
31+
xdot \
32+
pkg-config \
33+
python3-dev \
34+
libboost-system-dev \
35+
libboost-python-dev \
36+
libboost-filesystem-dev \
37+
zlib1g-dev
2638

2739
# Required to build the documentation
2840
sudo apt-get install -y \

libs/librrgraph/src/base/rr_graph_storage.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ struct edge_swapper {
120120
std::swap(a.storage_->edge_src_node_[a_edge], a.storage_->edge_src_node_[b_edge]);
121121
std::swap(a.storage_->edge_dest_node_[a_edge], a.storage_->edge_dest_node_[b_edge]);
122122
std::swap(a.storage_->edge_switch_[a_edge], a.storage_->edge_switch_[b_edge]);
123-
std::swap(a.storage_->edge_remapped_[a_edge], a.storage_->edge_remapped_[b_edge]);
123+
std::vector<bool>::swap(a.storage_->edge_remapped_[a_edge], a.storage_->edge_remapped_[b_edge]);
124124
}
125125

126126
friend void swap(edge_swapper& a, edge_swapper& b) {

0 commit comments

Comments
 (0)