Skip to content

Commit 3dd0704

Browse files
Merge commit master into temp_chanz_rr_type
2 parents 662f820 + 2f0f980 commit 3dd0704

File tree

2,917 files changed

+38482
-427586
lines changed

Some content is hidden

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

2,917 files changed

+38482
-427586
lines changed

.github/workflows/nightly_test_manual.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ jobs:
5050
make get_ispd_benchmarks
5151
./dev/upgrade_vtr_archs.sh
5252
make get_symbiflow_benchmarks
53+
make get_zeroasic_rr_graphs
5354
5455
# Build VTR using the default build options.
5556
- name: 'Build VTR'
@@ -114,3 +115,23 @@ jobs:
114115
vtr_flow/**/*.log
115116
vtr_flow/**/vpr.out
116117
vtr_flow/**/parse_results*.txt
118+
119+
- name: Generate golden results
120+
if: success() || failure()
121+
run: |
122+
source .venv/bin/activate
123+
./run_reg_test.py vtr_reg_nightly_test1 -create_golden
124+
./run_reg_test.py vtr_reg_nightly_test2 -create_golden
125+
./run_reg_test.py vtr_reg_nightly_test3 -create_golden
126+
./run_reg_test.py vtr_reg_nightly_test4 -create_golden
127+
./run_reg_test.py vtr_reg_nightly_test5 -create_golden
128+
./run_reg_test.py vtr_reg_nightly_test6 -create_golden
129+
./run_reg_test.py vtr_reg_nightly_test7 -create_golden
130+
131+
- name: Upload golden results
132+
if: success() || failure()
133+
uses: actions/upload-artifact@v4
134+
with:
135+
name: nightly_tests_golden
136+
path: |
137+
vtr_flow/**/vtr_reg_nightly*/**/golden_results.txt

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,6 @@
1010
[submodule "libs/EXTERNAL/libezgl"]
1111
path = libs/EXTERNAL/libezgl
1212
url = https://github.com/verilog-to-routing/ezgl.git
13+
[submodule "libs/EXTERNAL/yosys"]
14+
path = libs/EXTERNAL/yosys
15+
url = https://github.com/YosysHQ/yosys.git

CMakeLists.txt

Lines changed: 19 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -227,18 +227,17 @@ foreach(flag ${FLEX_BISON_WARN_SUPPRESS_FLAGS_TO_CHECK})
227227
endif()
228228
endforeach()
229229

230-
#Suppress IPO link warnings
231-
set(IPO_LINK_WARN_SUPRESS_FLAGS " ")
232-
set(IPO_LINK_WARN_SUPRESS_FLAGS_TO_CHECK
233-
"-Wno-null-dereference"
234-
)
235-
foreach(flag ${IPO_LINK_WARN_SUPRESS_FLAGS_TO_CHECK})
236-
CHECK_CXX_COMPILER_FLAG(${flag} CXX_COMPILER_SUPPORTS_${flag})
237-
if(CXX_COMPILER_SUPPORTS_${flag})
238-
#Flag supported, so enable it
239-
set(IPO_LINK_WARN_SUPRESS_FLAGS "${IPO_LINK_WARN_SUPRESS_FLAGS} ${flag}")
240-
endif()
241-
endforeach()
230+
# Suppress IPO link warnings.
231+
# When IPO is turned on, it sometimes leads to false positives for warnings
232+
# since it checks for warnings after some of the source files have been compiled.
233+
# We globally suppress these warnings here. Any CMake executable which is added
234+
# after this line will have these warnings suppressed at link time.
235+
if (CMAKE_INTERPROCEDURAL_OPTIMIZATION)
236+
message(STATUS "IPO: Suppressing known VTR warnings.")
237+
add_link_options(-Wno-alloc-size-larger-than # libarchfpga allocates C-style arrays using integers.
238+
-Wno-stringop-overflow # EXTERNAL/capnproto has some string overflow warnings.
239+
)
240+
endif()
242241

243242
#
244243
# Sanitizer flags
@@ -361,6 +360,14 @@ add_custom_target(get_symbiflow_benchmarks
361360
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
362361
COMMENT "Downloading (~100MB) and extracting SymbiFlow architectures (~2.7GB) into VTR source tree.")
363362

363+
#
364+
# Zero ASIC RR Graph Files
365+
#
366+
add_custom_target(get_zeroasic_rr_graphs
367+
COMMAND ./vtr_flow/scripts/get_zeroasic_rr_graphs.py --vtr_flow_dir ./vtr_flow
368+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
369+
COMMENT "Downloading (~2MB) and extracting Zero ASIC RR graphs (~0.1GB) into VTR source tree.")
370+
364371
#
365372
# Unit Testing
366373
#
@@ -406,24 +413,6 @@ if(${WITH_ABC})
406413
add_subdirectory(abc)
407414
endif()
408415

409-
if(${WITH_PARMYS}) # define cmake params to compile Yosys
410-
add_definitions("-D_YOSYS_")
411-
412-
set(MAKE_PROGRAM "$(MAKE)")
413-
if(${CMAKE_GENERATOR} STREQUAL "Ninja")
414-
set(MAKE_PROGRAM "make")
415-
endif()
416-
417-
# Commented out since a make file should not call another make command with
418-
# threads. It should pass this information from the parent automatically.
419-
# if(NOT DEFINED "${CMAKE_BUILD_PARALLEL_LEVEL}")
420-
# set(CUSTOM_BUILD_PARALLEL_LEVEL 16)
421-
# else()
422-
# set(CUSTOM_BUILD_PARALLEL_LEVEL "${CMAKE_BUILD_PARALLEL_LEVEL}")
423-
# endif()
424-
add_subdirectory(yosys)
425-
endif()
426-
427416
add_subdirectory(libs) #libs/CMakeLists.txt handles adding warnings flags to non-external libraries
428417

429418
if(${WITH_PARMYS})

blifexplorer/CMakeLists.txt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,6 @@ else()
5656
${CMAKE_DL_LIBS}
5757
)
5858

59-
#Supress IPO link warnings if IPO is enabled
60-
get_target_property(TEST_BLIFEXPLORER_USES_IPO blifexplorer INTERPROCEDURAL_OPTIMIZATION)
61-
if (TEST_BLIFEXPLORER_USES_IPO)
62-
set_property(TARGET blifexplorer APPEND PROPERTY LINK_FLAGS ${IPO_LINK_WARN_SUPRESS_FLAGS})
63-
endif()
64-
65-
6659
install(TARGETS blifexplorer DESTINATION bin)
6760

6861
endif()

dev/subtree_config.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,6 @@
4949
internal_path="vtr_flow/benchmarks/system_verilog/fx68k"
5050
external_url="https://github.com/ijor/fx68k.git"
5151
default_external_ref="master"/>
52-
<subtree
53-
name="yosys"
54-
internal_path="yosys"
55-
external_url="https://github.com/YosysHQ/yosys.git"
56-
default_external_ref="yosys-0.32"/>
5752
<subtree
5853
name="parmys"
5954
internal_path="parmys"

dev/vtr_test_suite_verifier/test_suites_info.json

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,12 @@
1919
"name": "vtr_reg_strong",
2020
"ignored_tasks": [
2121
"strong_router_heap",
22-
"strong_verify_rr_graph_3d",
23-
"strong_xilinx_support"
22+
"strong_verify_rr_graph_3d"
2423
]
2524
},
2625
{
2726
"name": "vtr_reg_strong_odin",
2827
"ignored_tasks": [
29-
"strong_xilinx_support",
3028
"strong_router_heap",
3129
"strong_cluster_seed_type"
3230
]
@@ -44,8 +42,7 @@
4442
"name": "vtr_reg_nightly_test2",
4543
"ignored_tasks": [
4644
"complex_switch",
47-
"vpr_verify_custom_sb_diff_chan_width",
48-
"vtr_xilinx_qor"
45+
"vpr_verify_custom_sb_diff_chan_width"
4946
]
5047
},
5148
{

doc/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
#Sphinx
22
_build
3+
.venv

doc/README

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,22 @@ Currently VTR's documenation is automatically built by https://readthedocs.org/p
1414
How to build documentation
1515
--------------------------
1616

17-
To build the documentation locally you need sphinx installed:
17+
To build the documentation locally you need to to install Doxygen (Optional) and the python dependencies. You can use your distribution's package manager to install Doxygen. Ubuntu and Debian users can use the following command:
1818

19-
For ubuntu/debian based systems:
19+
$ sudo apt install doxygen
2020

21-
$ apt-get install python-sphinx
21+
While Fedora and RHEL users can use the following command:
2222

23-
To properly build citations and the bibliography, we use the sphinxcontrib-bibtex extension:
23+
$ sudo dnf install doxygen
2424

25-
$ pip install sphinxcontrib-bibtex
25+
You can install python dependencies by fist optionally making a virtual environment:
2626

27-
To install all the python requirements:
27+
$ python -m venv .venv
28+
$ source .venv/bin/activate
2829

29-
$ pip install -r requirements.txt
30+
And then using the requirements file to install the dependencies:
31+
32+
$ pip install -r requirements.txt
3033

3134
To build the documentation just run:
3235

doc/requirements.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22
# used by Read The Docs to install python required
33
# modules with pip.
44

5-
sphinx<7
5+
# Pinned sphinx's version to avoid breakage in future
6+
sphinx == 8.2.3
67
sphinx_rtd_theme
78

89
# Support custom domains
9-
sphinxcontrib-domaintools
10+
git+https://github.com/AmirhosseinPoolad/sphinxcontrib-domaintools
1011

1112
# Support Markdown
1213
sphinx-markdown-tables

doc/src/arch/reference.rst

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1167,6 +1167,24 @@ The following tags are common to all ``<tile>`` tags:
11671167
11681168
**Default:** ``0``
11691169
1170+
If the subtile capacity is greater than 1, you can specify the capacity range when defining the pin locations. For example:
1171+
1172+
.. code-block:: xml
1173+
1174+
<sub_tile name="io_bottom" capacity="6">
1175+
<equivalent_sites>
1176+
<site pb_type="io"/>
1177+
</equivalent_sites>
1178+
<input name="outpad" num_pins="1"/>
1179+
<output name="inpad" num_pins="1"/>
1180+
<fc in_type="frac" in_val="0.15" out_type="frac" out_val="0.10"/>
1181+
<pinlocations pattern="custom">
1182+
<loc side="top">io_bottom[0:1].outpad io_bottom[0:3].inpad io_bottom[2:5].outpad io_bottom[4:5].inpad</loc>
1183+
</pinlocations>
1184+
</sub_tile>
1185+
1186+
If no capacity range is specified, it is assumed that the location applies to all capacity instances.
1187+
11701188
Physical equivalence for a pin is specified by listing a pin more than once for different locations.
11711189
For example, a LUT whose output can exit from the top and bottom of a block will have its output pin specified twice: once for the top and once for the bottom.
11721190

0 commit comments

Comments
 (0)