You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/src/arch/reference.rst
+32-14Lines changed: 32 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2485,7 +2485,7 @@ The full format is documented below.
2485
2485
Defined under the ``<switchfuncs>`` XML node, one or more ``<func...>`` entries is used to specify permutation functions that connect different sides of a switch block.
Specifies how many connections should be created between the from_type/from_switchpoint set and the to_type/to_switchpoint set.
@@ -2592,6 +2592,10 @@ The full format is documented below.
2592
2592
By using a zero-delay and zero-resistance switch one can also create T and L shaped wire segments.
2593
2593
2594
2594
**Default:** If no override is specified, the usual wire_switch that drives the ``to`` wire will be used.
2595
+
2596
+
:opt_param side:
2597
+
Specifies the sides that connections are gathered from or scattered to. Valid sides are right, left, top and bottom and are represented by characters 'r', 'l', 't' and 'b'.
2598
+
For example, to select connections from right, left and bottom set this attribute to "rlb". Note that this attribute is used only for scatter-gather patterns and does not do anything for other usages of this tag.
The content under the ``<scatter_gather_list>`` tag consists of one or more ``<sg_pattern>`` tags that are used to specify a scatter-gather pattern.
2647
+
Scatter-gather patterns can be used to specify multi-level switch patterns, rather than the direct wire-to-wire switch patterns of conventional switch blocks.
2648
+
These additional switches, wires and/or muxes will be added to the architecture, augmenting wires created using segment specifications and swiches created using switch box specifications.
2649
+
The number of any additional wires or muxes created by scatter-gather specifications will not vary with routing channel width.
2650
+
2651
+
.. note:: Scatter-Gather patterns are work in progress and experimental. Currently, VPR does not support this specification and using this tag would not result in any modifications to the RR-Graph.
2643
2652
2644
2653
When instantiated, a scatter-gather pattern gathers connections from a switchblock and passes the connection through a multiplexer and a wire segment, then scatters or fans out somewhere else in the device. These patterns can be used to define 3D switchblocks. An example is shown below:
2645
2654
2646
2655
.. code-block:: xml
2647
2656
2648
2657
<scatter_gather_list>
2649
-
<sg_pattern name="name" type="unidir"> <!-- segment: attribute or tag? -->
2658
+
<sg_pattern name="name" type="unidir">
2650
2659
<gather>
2651
-
<wireconn num_conns="30" from_type="L16" from_switchpoint="0,12,8,4" side="rltb"/> <!-- Illegal to have to_type and to_switchpoint --> <!-- No above/under side -->
2660
+
<!-- Gather 30 connections from the 0, 4, 8 or 12 position of L16 wires of all four sides of a switchblock location -->
<sg_link name="L_UP" z_offset="1" x_offset="0" y_offset="0" mux="3D_SB_MUX" seg_type="TSV"/> <!-- One hot offsets -->
2670
+
<!-- Link going up one layer, using the '3D_SB_MUX' multiplexer to gather connections from the bottom layer and using the 'TSV' node/wire to move up one layer -->
Unidir: Added connections are unidirectional; all the gather connections are combined in a mux that then drives the scatter-gather node which in turn drives the wires specified in the scatter specification.
2693
+
Bidir: The gather and scatter connections are mirrored; the same scatter pattern is implemented at each end of the scatter-gather pattern. This implies the two muxes driving the scatter-gather node can have their outputs tri-stated.
2694
+
2679
2695
.. arch:tag:: <gather>
2680
2696
2681
2697
Contains a <wireconn> tag specifying how the fan-in or gather connections are selected. See ``wireconn`` for the relevant specification.
2698
+
This <wireconn> tag supports an additioinal 'side' attribute which selects the sides that connections are gathered from (e.g. any of the top, bottom, left and right).
2682
2699
2683
2700
.. arch:tag:: <scatter>
2684
2701
2685
2702
Contains a <wireconn> tag specifying how the fan-out or scatter connections are selected. See ``wireconn`` for the relevant specification.
2703
+
This <wireconn> tag supports an additioinal 'side' attribute which selects the sides that connections are scattered to (e.g. any of the top, bottom, left and right).
2686
2704
2687
2705
.. arch:tag:: <sg_link_list>
2688
2706
2689
-
Contains one or more <sg_link> tags specifying how the connections move from the gather location to the scatter location.
2707
+
Contains one or more <sg_link> tags specifying how the pattern of how connections move from the gather location to the scatter location.
2690
2708
2691
2709
.. note:: These <sg_link> tags are not instantiations of the pattern. instead, the instantiations select one of the sg_link tags to use.
:req_param mux: Name of the multiplexer used to gather connections
2697
-
:req_param seg_type: Name of the segment/wire used to move through the device to the scatter location
2715
+
:req_param seg_type: Name of the segment/wire used to move through the device to the scatter location (i.e. the type of the scatter-gather node)
2698
2716
2699
2717
:opt_param x_offset: Offset of the scatter relative to the gather in the x-axis
2700
2718
:opt_param x_offset: Offset of the scatter relative to the gather in the y-axis
2701
2719
:opt_param x_offset: Offset of the scatter relative to the gather in the z-axis
2702
2720
2703
-
.. note:: One and only one of the offset fields for the sg_link tag must be set.
2721
+
.. note:: One and only one of the offset fields for the sg_link tag must be set. The magnitude of the offset will generally be chosen by the architecture file creator to match the length of the sg_link segment type.
0 commit comments