Skip to content

Commit 1751af2

Browse files
authored
Merge branch 'master' into draw_net_fix
2 parents 9d455d7 + 5160a12 commit 1751af2

File tree

3,292 files changed

+1261220
-15496
lines changed

Some content is hidden

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

3,292 files changed

+1261220
-15496
lines changed

.github/workflows/nightly_test_manual.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,3 +114,23 @@ jobs:
114114
vtr_flow/**/*.log
115115
vtr_flow/**/vpr.out
116116
vtr_flow/**/parse_results*.txt
117+
118+
- name: Generate golden results
119+
if: success() || failure()
120+
run: |
121+
source .venv/bin/activate
122+
./run_reg_test.py vtr_reg_nightly_test1 -create_golden
123+
./run_reg_test.py vtr_reg_nightly_test2 -create_golden
124+
./run_reg_test.py vtr_reg_nightly_test3 -create_golden
125+
./run_reg_test.py vtr_reg_nightly_test4 -create_golden
126+
./run_reg_test.py vtr_reg_nightly_test5 -create_golden
127+
./run_reg_test.py vtr_reg_nightly_test6 -create_golden
128+
./run_reg_test.py vtr_reg_nightly_test7 -create_golden
129+
130+
- name: Upload golden results
131+
if: success() || failure()
132+
uses: actions/upload-artifact@v4
133+
with:
134+
name: nightly_tests_golden
135+
path: |
136+
vtr_flow/**/vtr_reg_nightly*/**/golden_results.txt

CMakeLists.txt

Lines changed: 11 additions & 12 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

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/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/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

doc/src/vpr/command_line_usage.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1324,6 +1324,14 @@ Analytical Placement is generally split into three stages:
13241324

13251325
**Default:** ``auto``
13261326

1327+
.. option:: --ap_high_fanout_threshold <int>
1328+
1329+
Defines the threshold for high fanout nets within AP flow.
1330+
1331+
Ignores the nets that have higher fanouts than the threshold for the analytical solver.
1332+
1333+
**Default:** ``256``
1334+
13271335
.. option:: --ap_verbosity <int>
13281336

13291337
Controls the verbosity of the AP flow output.

doc/src/vtr/run_vtr_flow.rst

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,13 @@ Enable Synlig tool with the ``-DSYNLIG_SYSTEMVERILOG=ON`` compile flag for the P
9090
9191
Will run the VTR flow (default configuration) with Yosys frontend using Parmys plugin as partial mapper. To utilize the Parmys plugin, the ``-DYOSYS_PARMYS_PLUGIN=ON`` compile flag should be passed while building the VTR project with Yosys as a frontend.
9292

93+
.. code-block:: bash
94+
95+
# Using the Parmys (Partial Mapper for Yosys) plugin as partial mapper with include files
96+
./run_vtr_flow <path/to/Verilog/File> <path/to/arch/file> -include <path/to/include/directory>/*.v*
97+
98+
Will run the VTR flow (default configuration) with Yosys frontend using Parmys plugin as partial mapper. In addition to the main circuit passed in with the architecture, it will also pass in every HDL file with the specified file type within the include directory.
99+
93100
Detailed Command-line Options
94101
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
95102

@@ -123,6 +130,15 @@ Detailed Command-line Options
123130
* ``vpr``
124131

125132
**Default:** ``vpr``
133+
134+
.. option:: -include <path_to_file(s)>/*.<file_type(s)>
135+
136+
List of include files to a benchmark circuit
137+
(pass to VTR frontends as a benchmark design set).
138+
139+
Include files can be any file supported by yosys+parmys (normally .v or .vh files).
140+
141+
The include directory should not contain the circuit passed in with the architecture.
126142

127143
.. option:: -power
128144

libs/libarchfpga/CMakeLists.txt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,6 @@ target_compile_definitions(libarchfpga PUBLIC ${INTERCHANGE_SCHEMA_HEADERS})
5757
add_executable(read_arch ${READ_ARCH_EXEC_SRC})
5858
target_link_libraries(read_arch libarchfpga)
5959

60-
#Supress IPO link warnings if IPO is enabled
61-
get_target_property(READ_ARCH_USES_IPO read_arch INTERPROCEDURAL_OPTIMIZATION)
62-
if(READ_ARCH_USES_IPO)
63-
set_property(TARGET read_arch APPEND PROPERTY LINK_FLAGS ${IPO_LINK_WARN_SUPRESS_FLAGS})
64-
endif()
65-
6660
install(TARGETS libarchfpga DESTINATION bin)
6761
install(FILES ${LIB_HEADERS} DESTINATION include/libarchfpga)
6862

libs/libarchfpga/src/logic_types.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,8 @@ struct t_model {
6262
bool never_prune = false; ///< Don't remove from the netlist even if a block of this type has no output ports used and, therefore, unconnected to the rest of the netlist
6363
};
6464

65-
// Tag for the logical model ID
66-
struct logical_model_id_tag;
6765
// A unique ID that represents a logical model in the architecture.
68-
typedef vtr::StrongId<logical_model_id_tag, size_t> LogicalModelId;
66+
typedef vtr::StrongId<struct logical_model_id_tag, size_t> LogicalModelId;
6967

7068
/**
7169
* @brief A storage class containing all of the logical models in an FPGA

libs/libarchfpga/src/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ int main(int argc, char** argv) {
4343
printf("Reading in architecture\n");
4444

4545
/* function declarations */
46-
XmlReadArch(argv[1], atoi(argv[2]), &arch, physical_tile_types, logical_block_types);
46+
xml_read_arch(argv[1], atoi(argv[2]), &arch, physical_tile_types, logical_block_types);
4747

4848
printf("Printing Results\n");
4949

libs/libarchfpga/src/physical_types.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,13 @@ class t_metadata_value {
9797
// Return string value.
9898
vtr::interned_string as_string() const { return value_; }
9999

100+
t_metadata_value& operator=(const t_metadata_value& o) noexcept {
101+
if (this != &o) {
102+
value_ = o.value_;
103+
}
104+
return *this;
105+
}
106+
100107
private:
101108
vtr::interned_string value_;
102109
};

0 commit comments

Comments
 (0)