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: vpr/src/device/rr_spatial_lookup.h
+26-2Lines changed: 26 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -81,6 +81,18 @@ class RRSpatialLookup {
81
81
int y,
82
82
t_rr_type type) const;
83
83
84
+
/**
85
+
* Returns the indices of the specified routing resource nodes,
86
+
* representing virtual sinks.
87
+
* - (x, y) are the coordinate of the sink nodes within the FPGA
88
+
*
89
+
* Note:
90
+
* - Return an empty list if there are no sinks at the given (x, y) location
91
+
* - The node list returned only contains valid ids
92
+
*/
93
+
std::vector<RRNodeId> find_sink_nodes(int x,
94
+
int y) const;
95
+
84
96
/**
85
97
* Like find_node() but returns all matching nodes on all the sides.
86
98
* This is particularly useful for getting all instances
@@ -118,7 +130,7 @@ class RRSpatialLookup {
118
130
int y,
119
131
t_rr_type type,
120
132
int ptc,
121
-
e_side side);
133
+
e_side side = SIDES[0]);
122
134
123
135
/**
124
136
* Mirror the last dimension of a look-up, i.e., a list of nodes, from a source coordinate to
@@ -168,6 +180,18 @@ class RRSpatialLookup {
168
180
t_rr_type type,
169
181
e_side side);
170
182
183
+
/* -- Internal data queries -- */
184
+
private:
185
+
/* An internal API to find all the nodes in a specific location with a given type
186
+
* For OPIN/IPIN nodes that may exist on multiple sides, a specific side must be provided
187
+
* This API is NOT public because its too powerful for developers with very limited sanity checks
188
+
* But it is used to build the public APIs find_channel_nodes() etc., where sufficient sanity checks are applied
189
+
*/
190
+
std::vector<RRNodeId> find_nodes(int x,
191
+
int y,
192
+
t_rr_type type,
193
+
e_side side = SIDES[0]) const;
194
+
171
195
/* -- Internal data storage -- */
172
196
private:
173
197
/* TODO: When the refactoring effort finishes,
@@ -179,7 +203,7 @@ class RRSpatialLookup {
179
203
* or inside the data structures to be changed later.
180
204
* That explains why the reference is used here temporarily
181
205
*/
182
-
/* Fast look-up */
206
+
/* Fast look-up: TODO: Should rework the data type. Currently it is based on a 3-dimensional arrqay mater where some dimensions must always be accessed with a specific index. Such limitation should be overcome*/
0 commit comments