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
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -582,10 +582,12 @@ Grid Layout Example
582
582
Example FPGA grid
583
583
584
584
585
-
.. arch:tag:: <interposer_cut dim=x|y loc="int"/>
585
+
.. arch:tag:: <interposer_cut x="int" y="int"/>
586
586
587
-
:req_param dim: Dimension or axis of the cut. 'X' or 'x' means a horizontal cut while 'Y' or 'y' means a vertical cut.
588
-
:req_param loc: Location of the cut. Cuts are done above or to the right of the tiles at coordinate 'loc'. For example a cut with dim=x and loc=0 would cut the vertical wires above tiles in the 0th row. Currently only integer values are supported.
587
+
:opt_param x: Specifies the x-coordinate of a vertical interposer cut.
588
+
:opt_param y: Specifies the y-coordinate of a horizontal interposer cut.
589
+
590
+
.. note:: Exactly one of the ``x`` or ``y`` attributes must be specified.
589
591
590
592
.. note:: Interposers are experimental and are currently not supported by VPR and using the related tags will not actually result in any changes to the flow.
591
593
Defines an interposer cut for modelling 2.5D interposer-based architectures. An interposer cut will cut all connections at location 'loc' along the axis 'dim' Leaving the two sides completely unconnected.
///@brief count_instances() counts the number of each tile type on each layer and store it in instance_counts_. It is called in the constructor.
215
+
/// @brief Counts the number of each tile type on each layer and store it in instance_counts_.
216
+
/// It is called in the constructor.
194
217
voidcount_instances();
195
218
196
219
std::string name_;
197
220
198
221
/**
199
222
* @brief grid_ is a 3D matrix that represents the grid of the FPGA chip.
200
-
* @note The first dimension is the layer number (grid_[0] corresponds to the bottom layer), the second dimension is the x coordinate, and the third dimension is the y coordinate.
223
+
* @note The first dimension is the layer number (grid_[0] corresponds to the bottom layer),
224
+
* the second dimension is the x coordinate, and the third dimension is the y coordinate.
201
225
* @note Note that vtr::Matrix operator[] returns and intermediate type
202
226
* @note which can be used for indexing in the second dimension, allowing
* @brief Struct containing information of interdire wires i.e. connections between the dies on an interposer
33
-
*
34
21
*/
35
22
structt_interdie_wire_inf {
36
23
std::string sg_name; ///< Name of the scatter-gather pattern to be used for the interdie connection
@@ -40,18 +27,18 @@ struct t_interdie_wire_inf {
40
27
* Contains starting and ending point (both inclusive) of scatter-gather instantiations and the increment/distance between the instantiations.
41
28
* offset_definition.repeat_expr is not relevant for interdie wires and is not set to anything or used.
42
29
*
43
-
* Locations defined by this offset definition define the starting point or the gathering point of the SG pattern. The end or scatter point of the SG pattern is defined by the sg_link.
30
+
* Locations defined by this offset definition define the starting point or the gathering point of the SG pattern.
31
+
* The end or scatter point of the SG pattern is defined by the sg_link.
44
32
*/
45
33
t_grid_loc_spec offset_definition;
46
34
int num; ///< Number of scatter-gather instantiations per switchblock location
47
35
};
48
36
49
37
/**
50
38
* @brief Struct containing information of an interposer cut
51
-
*
52
39
*/
53
40
structt_interposer_cut_inf {
54
-
e_interposer_cut_dim dim; ///< Dimension or axis of interposer cut.
41
+
e_interposer_cut_type dim; ///< Axis of interposer cut location. The cut is perpendicular to this axis. This specifies the dimension of `loc`.
55
42
int loc; ///< Location of the cut on the grid. Locations start from zero and cuts will happen above or to the right of the tiles at location=loc.
56
43
std::vector<t_interdie_wire_inf> interdie_wires; ///< Connectivity specification between the two sides of the cut.
if (interposer_dim.size() != 1 || !CHAR_INTERPOSER_DIM_MAP.contains(interposer_dim[0])) {
15
-
archfpga_throw(loc_data.filename_c_str(), loc_data.line(interposer_cut_tag), "Interposer tag dimension must be a single character of either X, x, Y or y.");
18
+
// Both x and y are specified
19
+
if (x != ARCH_FPGA_UNDEFINED_VAL && y != ARCH_FPGA_UNDEFINED_VAL) {
0 commit comments