Skip to content

[WIP] VIB Upgrades for Tileable Routing Resource Graph on OpenFPGA #2637

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 150 commits into from
Jan 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
150 commits
Select commit Hold shift + click to select a range
b49f82f
Update device_grid_annotation.cpp
Wang-Yuanqi-source May 26, 2024
7cdb3f7
Update tileable_chan_details_builder.cpp
Wang-Yuanqi-source May 26, 2024
c8d6be8
Update tileable_rr_graph_node_builder.cpp
Wang-Yuanqi-source May 26, 2024
f328220
Update tileable_rr_graph_gsb.h
Wang-Yuanqi-source May 26, 2024
8a83ee9
Update tileable_rr_graph_edge_builder.cpp
Wang-Yuanqi-source May 26, 2024
5e23e1b
Update tileable_rr_graph_gsb.cpp
Wang-Yuanqi-source May 26, 2024
063a13d
Update tileable_rr_graph_gsb.h
Wang-Yuanqi-source May 26, 2024
48df84d
Update tileable_rr_graph_builder.cpp
Wang-Yuanqi-source May 26, 2024
9e11eb8
Update read_xml_arch_file.cpp
Wang-Yuanqi-source May 26, 2024
9c6fc7a
Update physical_types.h
Wang-Yuanqi-source May 26, 2024
b7c24d6
Update tileable_chan_details_builder.cpp
Wang-Yuanqi-source May 26, 2024
e9e7bfe
Update chan_node_details.cpp
Wang-Yuanqi-source May 26, 2024
260572e
Update chan_node_details.h
Wang-Yuanqi-source May 26, 2024
ce1b3b4
Update tileable_rr_graph_edge_builder.h
Wang-Yuanqi-source May 26, 2024
dc6aa86
Update tileable_rr_graph_edge_builder.cpp
Wang-Yuanqi-source May 26, 2024
6a1f9f8
Update tileable_rr_graph_edge_builder.h
Wang-Yuanqi-source May 26, 2024
0d9e9fd
Update tileable_rr_graph_gsb.h
Wang-Yuanqi-source May 26, 2024
042bef4
Update rr_graph_view.h
Wang-Yuanqi-source May 26, 2024
77f802e
Update rr_graph_storage.h
Wang-Yuanqi-source May 26, 2024
ba5cd69
Update rr_graph_storage.cpp
Wang-Yuanqi-source May 26, 2024
7ffd299
Update rr_graph_builder.h
Wang-Yuanqi-source May 26, 2024
155716f
Update read_xml_arch_file.cpp
Wang-Yuanqi-source May 26, 2024
7bd0433
Update physical_types.h
Wang-Yuanqi-source Jun 9, 2024
a0ecbce
Update read_xml_arch_file.cpp
Wang-Yuanqi-source Jun 9, 2024
16ab238
Update SetupGrid.cpp
Wang-Yuanqi-source Jun 9, 2024
35cccdc
Update vpr_context.h
Wang-Yuanqi-source Jun 9, 2024
7af8feb
Update SetupGrid.h
Wang-Yuanqi-source Jun 9, 2024
56a7e68
Update vpr_api.cpp
Wang-Yuanqi-source Jun 9, 2024
98e7992
Update tileable_rr_graph_edge_builder.cpp
Wang-Yuanqi-source Jun 9, 2024
5b32f84
Update tileable_rr_graph_builder.cpp
Wang-Yuanqi-source Jun 9, 2024
87d4b59
Update tileable_rr_graph_edge_builder.h
Wang-Yuanqi-source Jun 9, 2024
c23795c
Update tileable_rr_graph_node_builder.cpp
Wang-Yuanqi-source Jun 9, 2024
873469f
Update tileable_rr_graph_node_builder.h
Wang-Yuanqi-source Jun 9, 2024
307fb0b
Update read_xml_arch_file.cpp
Wang-Yuanqi-source Jun 15, 2024
77dfbe9
Update tileable_rr_graph_builder.cpp
Wang-Yuanqi-source Jun 15, 2024
55c4835
Update check_rr_graph.cpp
Wang-Yuanqi-source Jun 15, 2024
82151d4
Update check_route.cpp
Wang-Yuanqi-source Jun 15, 2024
fffdc02
Update rr_graph_uxsdcxx_serializer.h
Wang-Yuanqi-source Jun 15, 2024
71c60e2
Update rr_graph_uxsdcxx_interface.h
Wang-Yuanqi-source Jun 15, 2024
14eedda
Update rr_graph.cpp
Wang-Yuanqi-source Jun 15, 2024
ac8c197
Update rr_graph2.cpp
Wang-Yuanqi-source Jun 15, 2024
ed15d8a
Update vpr_utils.cpp
Wang-Yuanqi-source Jun 15, 2024
e508528
Update connection_router.cpp
Wang-Yuanqi-source Jun 15, 2024
08268fe
Update overuse_report.cpp
Wang-Yuanqi-source Jun 15, 2024
6abd0b7
Update vpr_utils.h
Wang-Yuanqi-source Jun 15, 2024
f80e4c3
Update router_lookahead_map_utils.cpp
Wang-Yuanqi-source Jun 15, 2024
92fd5af
Update router_lookahead_map.cpp
Wang-Yuanqi-source Jun 15, 2024
faf2ef3
Update rr_graph_uxsdcxx.h
Wang-Yuanqi-source Jun 15, 2024
601718a
Update rr_spatial_lookup.cpp
Wang-Yuanqi-source Jun 15, 2024
0541865
Update check_rr_graph.h
Wang-Yuanqi-source Jun 15, 2024
a2777e6
Update tileable_rr_graph_edge_builder.cpp
Wang-Yuanqi-source Jun 15, 2024
58dce81
Update tileable_rr_graph_gsb.cpp
Wang-Yuanqi-source Jun 15, 2024
5bb56c7
Update tileable_rr_graph_gsb.h
Wang-Yuanqi-source Jun 15, 2024
0929cd0
Update rr_node_types.h
Wang-Yuanqi-source Jun 15, 2024
6121423
Update rr_graph_builder.h
Wang-Yuanqi-source Jun 15, 2024
1d0be82
Update rr_graph_storage.cpp
Wang-Yuanqi-source Jun 15, 2024
e904c86
Update rr_graph_storage.h
Wang-Yuanqi-source Jun 15, 2024
25b096d
Update rr_graph_cost.h
Wang-Yuanqi-source Jun 15, 2024
03556c6
Merge branch 'openfpga' into patch-1
Wang-Yuanqi-source Jul 2, 2024
75e8676
Update alloc_and_load_rr_indexed_data.cpp
Wang-Yuanqi-source Jul 13, 2024
0f81e94
Update read_route.cpp
Wang-Yuanqi-source Jul 13, 2024
9e0ae28
Update describe_rr_node.cpp
Wang-Yuanqi-source Jul 13, 2024
b65a8e2
Update check_route.cpp
Wang-Yuanqi-source Jul 13, 2024
abaec29
Update rr_graph_area.cpp
Wang-Yuanqi-source Jul 13, 2024
e6b7e7d
Update tileable_rr_graph_edge_builder.cpp
Wang-Yuanqi-source Jul 13, 2024
30dae5a
Update tileable_chan_details_builder.cpp
Wang-Yuanqi-source Jul 13, 2024
cc8816a
Update read_xml_arch_file.cpp
Wang-Yuanqi-source Jul 14, 2024
70e4f5a
Update vpr_utils.h
Wang-Yuanqi-source Jul 14, 2024
cabf2ea
Update vpr_utils.cpp
Wang-Yuanqi-source Jul 14, 2024
0ead1a8
Update router_lookahead_map_utils.cpp
Wang-Yuanqi-source Jul 14, 2024
07627be
Update tileable_rr_graph_builder.cpp
Wang-Yuanqi-source Jul 14, 2024
efb99fc
Update vpr_utils.cpp
Wang-Yuanqi-source Jul 14, 2024
510f4e2
Update SetupGrid.h
Wang-Yuanqi-source Jul 14, 2024
993aca5
Update SetupGrid.h
Wang-Yuanqi-source Jul 14, 2024
68e4d65
Merge branch 'openfpga' into patch-1
Wang-Yuanqi-source Jul 30, 2024
1afa2f5
Create vib_inf.cpp
Wang-Yuanqi-source Oct 22, 2024
f3deaa6
Create vib_inf.h
Wang-Yuanqi-source Oct 22, 2024
ccb5b56
Update rr_graph_storage.h
Wang-Yuanqi-source Oct 22, 2024
3769b62
Update physical_types.h
Wang-Yuanqi-source Oct 22, 2024
9e521a0
Update read_xml_arch_file.cpp
Wang-Yuanqi-source Oct 22, 2024
cb22a8a
Update check_rr_graph.cpp
Wang-Yuanqi-source Oct 22, 2024
487ed26
Update check_rr_graph.h
Wang-Yuanqi-source Oct 22, 2024
6382aaf
Update rr_graph_uxsdcxx_serializer.h
Wang-Yuanqi-source Oct 22, 2024
bb2d5cf
Update SetupGrid.cpp
Wang-Yuanqi-source Oct 22, 2024
b3bb7c8
Update SetupGrid.h
Wang-Yuanqi-source Oct 22, 2024
5b27ab8
Update vpr_api.cpp
Wang-Yuanqi-source Oct 22, 2024
345a27c
Update vpr_context.h
Wang-Yuanqi-source Oct 22, 2024
eeb448a
Update connection_router.cpp
Wang-Yuanqi-source Oct 22, 2024
0d7cacd
Update overuse_report.cpp
Wang-Yuanqi-source Oct 22, 2024
6f773cd
Update router_lookahead_map_utils.cpp
Wang-Yuanqi-source Oct 22, 2024
f7427aa
Update router_lookahead_map.cpp
Wang-Yuanqi-source Oct 22, 2024
d91bd9f
Update rr_graph.cpp
Wang-Yuanqi-source Oct 22, 2024
ce412a4
Update tileable_rr_graph_builder.cpp
Wang-Yuanqi-source Oct 22, 2024
d0f19a0
Update tileable_rr_graph_edge_builder.cpp
Wang-Yuanqi-source Oct 22, 2024
f117218
Update tileable_rr_graph_edge_builder.h
Wang-Yuanqi-source Oct 22, 2024
0e0c9af
Update tileable_rr_graph_gsb.cpp
Wang-Yuanqi-source Oct 22, 2024
9b8a3f2
Update tileable_rr_graph_gsb.h
Wang-Yuanqi-source Oct 22, 2024
ca9e9f1
Update tileable_rr_graph_node_builder.cpp
Wang-Yuanqi-source Oct 22, 2024
3f5633b
Update tileable_rr_graph_node_builder.h
Wang-Yuanqi-source Oct 22, 2024
317e2fe
Update vpr_utils.cpp
Wang-Yuanqi-source Oct 22, 2024
4b91e02
Update vpr_utils.h
Wang-Yuanqi-source Oct 22, 2024
0f34455
Update tileable_chan_details_builder.cpp
Wang-Yuanqi-source Oct 22, 2024
3937e3c
Merge branch 'openfpga' into patch-1
Wang-Yuanqi-source Oct 24, 2024
3a3f24e
Update tileable_rr_graph_gsb.cpp
Wang-Yuanqi-source Nov 4, 2024
a757254
Update rr_spatial_lookup.cpp
Wang-Yuanqi-source Nov 4, 2024
b447186
Update rr_gsb.cpp
Wang-Yuanqi-source Nov 4, 2024
35b4200
Update tileable_rr_graph_gsb.h
Wang-Yuanqi-source Nov 4, 2024
d5d2372
Update tileable_rr_graph_node_builder.cpp
Wang-Yuanqi-source Nov 4, 2024
8afea46
Update tileable_rr_graph_node_builder.h
Wang-Yuanqi-source Nov 4, 2024
1d45f3b
Update check_rr_graph.cpp
Wang-Yuanqi-source Nov 4, 2024
e8c88fa
Update check_rr_graph.h
Wang-Yuanqi-source Nov 4, 2024
7c6d85c
Update vib_inf.h
Wang-Yuanqi-source Nov 4, 2024
6075e31
Update physical_types.h
Wang-Yuanqi-source Nov 4, 2024
3941eef
Update vib_inf.cpp
Wang-Yuanqi-source Nov 4, 2024
6be2c9a
Update read_xml_arch_file.cpp
Wang-Yuanqi-source Nov 4, 2024
391d044
Update SetupVPR.cpp
Wang-Yuanqi-source Nov 4, 2024
6f681c2
Update SetupGrid.cpp
Wang-Yuanqi-source Nov 4, 2024
463bdd0
Update SetupGrid.h
Wang-Yuanqi-source Nov 4, 2024
6359b5c
Create SetupVibGrid.cpp
Wang-Yuanqi-source Nov 4, 2024
c0a2736
Create SetupVibGrid.h
Wang-Yuanqi-source Nov 4, 2024
52edaf9
Update vpr_api.cpp
Wang-Yuanqi-source Nov 4, 2024
60bc5a0
Update vpr_context.h
Wang-Yuanqi-source Nov 4, 2024
b9d587e
Update rr_graph.xsd
Wang-Yuanqi-source Nov 4, 2024
5ad2329
Update tileable_rr_graph_edge_builder.cpp
Wang-Yuanqi-source Nov 4, 2024
cbcdf0e
Update tileable_rr_graph_edge_builder.h
Wang-Yuanqi-source Nov 4, 2024
84faf43
Update rr_graph.cpp
Wang-Yuanqi-source Nov 4, 2024
4e046ef
Update rr_graph_uxsdcxx_serializer.h
Wang-Yuanqi-source Nov 4, 2024
60bee8f
Update overuse_report.cpp
Wang-Yuanqi-source Nov 4, 2024
0b4cfc2
Update router_lookahead_map.cpp
Wang-Yuanqi-source Nov 4, 2024
a182a76
Update router_lookahead_map_utils.cpp
Wang-Yuanqi-source Nov 4, 2024
6343061
Update rr_gsb.h
Wang-Yuanqi-source Nov 4, 2024
3bb9068
Update tileable_rr_graph_node_builder.cpp
Wang-Yuanqi-source Nov 25, 2024
be709d2
Update SetupVibGrid.cpp
Wang-Yuanqi-source Nov 25, 2024
d7d93c9
Update tileable_rr_graph_node_builder.h
Wang-Yuanqi-source Nov 25, 2024
91960e2
Update tileable_rr_graph_builder.cpp
Wang-Yuanqi-source Nov 25, 2024
729ae80
Update tileable_rr_graph_edge_builder.cpp
Wang-Yuanqi-source Nov 25, 2024
7a0dfbc
Update tileable_rr_graph_gsb.cpp
Wang-Yuanqi-source Nov 25, 2024
2e50bfb
Update rr_gsb.h
Wang-Yuanqi-source Nov 25, 2024
9dac8c4
Update tileable_rr_graph_gsb.h
Wang-Yuanqi-source Nov 25, 2024
a4479e5
Update tileable_rr_graph_edge_builder.h
Wang-Yuanqi-source Nov 25, 2024
9ae8a99
Update vib_inf.h
Wang-Yuanqi-source Nov 25, 2024
230fe0f
Update vib_inf.cpp
Wang-Yuanqi-source Nov 25, 2024
1678907
Update tileable_rr_graph_gsb.cpp
Wang-Yuanqi-source Nov 25, 2024
cfe7c2a
Update index.rst
Wang-Yuanqi-source Nov 29, 2024
35a82e7
Create VIB.rst
Wang-Yuanqi-source Nov 29, 2024
e2fff38
Add files via upload
Wang-Yuanqi-source Nov 29, 2024
8dae0c3
Create vib_test_arch.xml
Wang-Yuanqi-source Nov 29, 2024
481efce
Create music.blif
Wang-Yuanqi-source Nov 29, 2024
9240ab6
Add files via upload
Wang-Yuanqi-source Nov 29, 2024
b96878a
Merge branch 'openfpga' into patch-1
Wang-Yuanqi-source Dec 17, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added doc/src/Images/VIB.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/src/Images/bent_wires.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/src/Images/double-level.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
173 changes: 173 additions & 0 deletions doc/src/vpr/VIB.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
.. _VIB:

VIB
============
The VIB architecture adds modeling support for double-level MUX topology and bent wires.

.. figure:: ../Images/VIB.png
:align: center
:height: 300

VIB architecture. The connections between the inputs and outputs of the LB and the routing wires are all implemented within the VIB.

.. figure:: ../Images/double-level.png
:align: center

Double-level MUX topology.

.. figure:: ../Images/bent_wires.png
:align: center

Presentation for bent wires.

FPGA Architecture File Modification (.xml)
--------------------------
For original tags of FPGA architecture file see :ref:`fpga_architecture_description`.

Modification for ``<segmentlist>`` Tag
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The content within the ``<segmentlist>`` tag consists of a group of ``<segment>`` tags.
The ``<segment>`` tag and its contents are described below.

.. arch:tag:: <segment axis="{x|y}" name="unique_name" length="int" type="{bidir|unidir}" res_type="{GCLK|GENERAL}" freq="float" Rmetal="float" Cmetal="float">content</segment>

:req_param content:
The switch names and the depopulation pattern as described below.

.. arch:tag:: <sb type="pattern">int list</sb>

.. arch:tag:: <cb type="pattern">int list</cb>

.. arch:tag:: <mux name="string"/>

For bent wires, a new content ``<bent>`` is added in the ``<segment>`` tag.

.. arch:tag:: <cb type="pattern">bent pattern list</cb>

This tag describes the bent pattern for this particular wire segment.
For example, a length 4 wire has a bent pattern of ``- - U``.
A ``-`` indicates no bent at this position and a ``U`` indicates a conterclockwise bent at the position. (``D`` indicates a clockwise bent.)

.. note:: A bent wire should remain consistent in both the x and y axes.

New Added Top Level Tag ``<vib_arch>``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The content within the ``<vib_arch>`` tag consists of a group of ``<vib>`` tags. Different ``<vib>`` tags describe the paradigms of VIB, which apply to different positions.

.. arch:tag:: <vib name="vib_name" pbtype_name="pbtype_name" vib_seg_group="int" arch_vib_switch="string">content</vib>

:req_param name:
A unique alphanumeric name to identify this VIB type.

:req_param pbtype_name:
The name of the block type (e.g. clb, memory) that this VIB connects to.

:req_param vib_seg_group:
The number of the segment types in this VIB.

:req_param arch_vib_switch:
Name of the mux switch type used to drive wires in the VIB by default, and a custom switch can override this switch type for specific connections if desired.

:req_param content:
The segment groups and the multistage MUX topology as described below.

The ``content`` of ``<vib>`` tag consists of several ``<seg_group>`` tags and a ``<multistage_muxs>`` tag.
For example:

.. code-block:: xml

<vib_arch>
<vib name="vib0" pbtype_name="clb" vib_seg_group="4" arch_vib_switch="mux0">
<seg_group name="L1" track_nums="12"/>
<seg_group name="L2" track_nums="20"/>
<seg_group name="L4" track_nums="16"/>
<seg_group name="L8" track_nums="16"/>
<multistage_muxs>
<first_stage switch_name="mux0">
...
</first_stage>
<second_stage>
...
</second_stage>
</multistage_muxs>
</vib>
<vib name="vib1" pbtype_name="dsp" vib_seg_group="4" arch_vib_switch="mux0">
...
</vib>
</vib_arch>

.. arch:tag:: <seg_group name="seg_name" track_nums="int"/>

:req_param name:
The name of the segment in this VIB described in ``<segmentlist>``.

:req_param track_nums:
The track number of the segment in this VIB.

.. note:: When using unidirectional segments, the track number of the segment represents the number for one direction. For example, the ``track_nums`` is ``10``, which means total ``20`` tracks of the segment in the channel for both (INC & DEC) directions.

.. arch:tag:: <multistage_muxs>content</multistage_muxs>

:req_param content:
The detaild information for first and second MUXes.

The ``content`` of ``<multistage_muxs>`` tag consists of a ``<first_stage>`` tag and a ``<secong_stage>`` tag.

.. arch:tag:: <first_stage switch_name="switch_name">content</first_stage>

:req_param switch_name:
Name of the mux switch type used to drive first stage MUXes in the VIB.

:req_param content:
The details of each MUX.

For example:

.. code-block:: xml

<first_stage switch_name="mux0">
<mux name="f_mux_0">
<from>clb.O[0] clb.O[8] clb.O[12:16]</from>
</mux>
<mux name="f_mux_1">
<from>L1.E2 L1.W2 L1.S8 L1.N8</from>
</mux>
...
</first_stage>

The ``<from>`` tag in ``<mux>`` describes nodes that connects to the MUX. ``clb.O[*]`` means output pin(s); ``L1.E2`` means the track ``2`` in the ``East`` direction of ``L1`` segment.

.. arch:tag:: <second_stage>content</second_stage>

:req_param content:
The details of each MUX.

For example:

.. code-block:: xml

<second_stage switch_name="mux0">
<mux name="s_mux_0">
<to>clb.I[0]</to>
<from>clb.O[0] clb.O[8] f_mux_0</from>
</mux>
<mux name="s_mux_1">
<to>L1.S1</to>
<from>L1.E1 L1.W1 f_mux_0 f_mux_1</from>
</mux>
...
</second_stage>

The ``<to>`` tag describes the node this MUX connects to. ``clb.I[*]`` means input pin(s); ``L1.S1`` means the track ``1`` in the ``South`` direction of ``L1`` segment. The ``<from>`` tag in ``<mux>`` describes nodes that connects to the MUX. ``clb.O[*]`` means output pin(s); ``L1.E2`` means the track ``2`` in the ``East`` direction of ``L1`` segment. ``f_mux_0`` means the name of the specific first stage MUX.

New Added Top Level Tag ``<vib_layout>``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Content inside this tag specifies VIB grid layout to describe different VIBs applied on different locations.

.. arch:tag:: <fixed_layout name="string">content</fixed_layout>

:req_param name:
The name identifying this VIB grid layout. It should be the same as the corresponding layout name inside the ``<layout>`` tag.

:req_param content:
The content should contain a set of grid location tags. For grid location tags of vib_layout see :ref:`fpga_architecture_description`; ref:`grid_expressions`
2 changes: 2 additions & 0 deletions doc/src/vpr/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,5 @@ The purpose of VPR is to make the packing, placement, and routing stages of the

file_formats
debug_aids

VIB
26 changes: 24 additions & 2 deletions libs/libarchfpga/src/physical_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@
#include "logic_types.h"
#include "clock_types.h"

#include "vib_inf.h"

//Forward declarations
struct t_clock_arch;
struct t_clock_network;
Expand Down Expand Up @@ -1629,7 +1631,16 @@ enum e_Fc_type {
* For backward compatibility, this attribute is optional. If not *
* specified, the resource type for the segment is considered to *
* be GENERAL. *
* meta: Table storing extra arbitrary metadata attributes. */
* meta: Table storing extra arbitrary metadata attributes. *
*
*
* New added parameters for bend wires: *
* isbend: This segment is bend or not *
* bend: The bend type of the segment, "-"-0, "U"-1, "D"-2 *
* For example: bend pattern <- - U ->; corresponding bend: [0,0,1,0] *
* part_len: Divide the segment into several parts based on bend position. *
* For example: length-5 bend segment: <- - U ->; *
* Corresponding part_len: [3,2] */
struct t_segment_inf {
std::string name;
int frequency;
Expand All @@ -1648,6 +1659,9 @@ struct t_segment_inf {
enum e_parallel_axis parallel_axis;
std::vector<bool> cb;
std::vector<bool> sb;
bool isbend;
std::vector<int> bend;
std::vector<int> part_len;
int seg_index;
enum SegResType res_type = SegResType::GENERAL;
//float Cmetal_per_m; /* Wire capacitance (per meter) */
Expand Down Expand Up @@ -2048,7 +2062,9 @@ struct t_noc_inf {
std::string noc_router_tile_name;
};

/* Detailed routing architecture */


/* Detailed routing architecture */
struct t_arch {
/** Stores unique strings used as key and values in <metadata> tags,
* i.e. implements a flyweight pattern to save memory.*/
Expand Down Expand Up @@ -2133,10 +2149,16 @@ struct t_arch {
//If the layout is not specified in the command line options, this variable will be set to "auto"
std::string device_layout;

std::vector<t_vib_grid_def> vib_grid_layouts;

t_clock_arch_spec clock_arch; // Clock related data types

/// Stores NoC-related architectural information when there is an embedded NoC
t_noc_inf* noc = nullptr;

// added for vib
//bool is_vib_arch = false;
std::vector<VibInf> vib_infs;
};

#endif
Loading
Loading