Skip to content

Commit f41ebb1

Browse files
authored
Merge branch 'master' into fredt_check_all_legality_flip
2 parents ec8d7d8 + 00811b8 commit f41ebb1

File tree

196 files changed

+3763
-3280
lines changed

Some content is hidden

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

196 files changed

+3763
-3280
lines changed

.github/workflows/stale.yml

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

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
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
@@ -29,4 +32,4 @@ RUN apt-get update -qq \
2932
# Build VTR
3033
RUN rm -rf build && make -j$(nproc) && make install
3134
# Container's default launch command
32-
SHELL ["/bin/bash", "-c"]
35+
SHELL ["/bin/bash", "-c"]

doc/src/api/vtrutil/containers.rst

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

+17-2
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/vpr/command_line_usage.rst

+10
Original file line numberDiff line numberDiff line change
@@ -1730,6 +1730,16 @@ Analysis Options
17301730

17311731
**Default:** ``unconnected``
17321732

1733+
.. option:: --post_synth_netlist_module_parameters { on | off }
1734+
1735+
Controls whether the post-synthesis netlist output by VTR can use Verilog parameters
1736+
or not. When using the post-synthesis netlist for external timing analysis,
1737+
some tools cannot accept the netlist if it contains parameters. By setting
1738+
this option to ``off``, VPR will try to represent the netlist using non-parameterized
1739+
modules.
1740+
1741+
**Default:** ``on``
1742+
17331743
.. option:: --timing_report_npaths <int>
17341744

17351745
Controls how many timing paths are reported.

install_apt_packages.sh

+5
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,8 @@ sudo apt-get install -y \
4040
# Required to build the documentation
4141
sudo apt-get install -y \
4242
sphinx-common
43+
44+
# Required for code formatting
45+
sudo apt-get install -y \
46+
clang-format-18
47+

libs/EXTERNAL/libblifparse/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
1313
endif()
1414

1515
#Flex and Bison are used to generate the parser
16-
find_package(BISON REQUIRED 3.0)
16+
find_package(BISON REQUIRED 3.3)
1717
find_package(FLEX REQUIRED)
1818

1919
file(GLOB_RECURSE LIB_SOURCES src/blif*.cpp)

libs/EXTERNAL/libblifparse/src/blif_parser.y

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
/* C++ parsers require Bison 3 */
2-
%require "3.0"
1+
/* C++ parsers require Bison 3.3 */
2+
%require "3.3"
33
%language "C++"
44

55
/* Write-out tokens header file */
@@ -34,7 +34,7 @@
3434
%define api.namespace {blifparse}
3535

3636
/* Name the parser class */
37-
%define parser_class_name {Parser}
37+
%define api.parser.class {Parser}
3838

3939
/* Match the flex prefix */
4040
%define api.prefix {blifparse_}

libs/EXTERNAL/libsdcparse/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
1313
endif()
1414

1515
#Flex and Bison are used to generate the parser
16-
find_package(BISON REQUIRED 3.0)
16+
find_package(BISON REQUIRED 3.3)
1717
find_package(FLEX REQUIRED)
1818

1919
file(GLOB_RECURSE LIB_SOURCES src/sdc*.cpp)

libs/EXTERNAL/libsdcparse/src/sdc_parser.y

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
/* C++ parsers require Bison 3 */
2-
%require "3.0"
1+
/* C++ parsers require Bison 3.3 */
2+
%require "3.3"
33
%language "C++"
44

55
/* Write-out tokens header file */
@@ -34,7 +34,7 @@
3434
%define api.namespace {sdcparse}
3535

3636
/* Name the parser class */
37-
%define parser_class_name {Parser}
37+
%define api.parser.class {Parser}
3838

3939
/* Match the flex prefix */
4040
%define api.prefix {sdcparse_}

0 commit comments

Comments
 (0)