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
// Add 2D scatter-gather link edges (the nodes have already been created at this point). These links are mostly used for interposer-crossing connections, but could also be used for other things.
1680
+
// Add 2D scatter-gather link edges (the nodes have already been created at this point).
1681
+
// These links are mostly used for interposer-crossing connections, but could also be used for other things.
* @brief Takes location of a source and a sink and determines wether it crosses cut_loc or not. For example, the interval (1, 4) is cut by 3, while it is not cut by 5 or 0.
38
+
* @brief Update a CHANY node's bounding box in RRGraph and SpatialLookup entries.
39
+
* This function assumes that the channel node actually crosses the cut location and
40
+
* might not function correctly otherwise.
41
+
*
42
+
* This is a low level function, you should use cut_channel_node that wraps this up in a nicer API.
20
43
*/
44
+
staticvoidcut_chan_y_node(RRNodeId node,
45
+
int x_low,
46
+
int y_low,
47
+
int x_high,
48
+
int y_high,
49
+
int layer,
50
+
int ptc_num,
51
+
int cut_loc_y,
52
+
Direction node_direction,
53
+
RRGraphBuilder& rr_graph_builder,
54
+
RRSpatialLookup& spatial_lookup);
55
+
56
+
/**
57
+
* @brief Update a CHANX node's bounding box in RRGraph and SpatialLookup entries.
58
+
* This function assumes that the channel node actually crosses the cut location and
59
+
* might not function correctly otherwise.
60
+
*
61
+
* This is a low level function, you should use cut_channel_node that wraps this up in a nicer API.
62
+
*/
63
+
staticvoidcut_chan_x_node(RRNodeId node,
64
+
int x_low,
65
+
int y_low,
66
+
int x_high,
67
+
int y_high,
68
+
int layer,
69
+
int ptc_num,
70
+
int cut_loc_x,
71
+
Direction node_direction,
72
+
RRGraphBuilder& rr_graph_builder,
73
+
RRSpatialLookup& spatial_lookup);
74
+
75
+
/**
76
+
* @brief Update a CHANX or CHANY node's bounding box in RRGraph and SpatialLookup entries if it crosses cut_loc
77
+
*
78
+
* @param node Channel segment RR graph node that might cross the interposer cut line
79
+
* @param cut_loc location of vertical interposer cut line
80
+
* @param interposer_cut_type Type of the interposer cut line (Horizontal or vertical)
81
+
* @param sg_node_indices Sorted list of scatter-gather node IDs. We do not want to cut these nodes as they're allowed to cross an interposer cut line.
VPR_FATAL_ERROR(VPR_ERROR_ROUTE, "Bidir node has no starting point.");
@@ -136,14 +212,17 @@ std::vector<RREdgeId> mark_interposer_cut_edges_for_removal(const RRGraphView& r
136
212
return edges_to_be_removed;
137
213
}
138
214
139
-
/**
140
-
* @brief Update a CHANY node's bounding box in RRGraph and SpatialLookup entries.
141
-
* This function assumes that the channel node actually crosses the cut location and
142
-
* might not function correctly otherwise.
143
-
*
144
-
* This is a low level function, you should use cut_channel_node that wraps this up in a nicer API.
145
-
*/
146
-
staticvoidcut_chan_y_node(RRNodeId node, int x_low, int y_low, int x_high, int y_high, int layer, int ptc_num, int cut_loc_y, Direction node_direction, RRGraphBuilder& rr_graph_builder, RRSpatialLookup& spatial_lookup) {
@@ -165,14 +244,17 @@ static void cut_chan_y_node(RRNodeId node, int x_low, int y_low, int x_high, int
165
244
}
166
245
}
167
246
168
-
/**
169
-
* @brief Update a CHANX node's bounding box in RRGraph and SpatialLookup entries.
170
-
* This function assumes that the channel node actually crosses the cut location and
171
-
* might not function correctly otherwise.
172
-
*
173
-
* This is a low level function, you should use cut_channel_node that wraps this up in a nicer API.
174
-
*/
175
-
staticvoidcut_chan_x_node(RRNodeId node, int x_low, int y_low, int x_high, int y_high, int layer, int ptc_num, int cut_loc_x, Direction node_direction, RRGraphBuilder& rr_graph_builder, RRSpatialLookup& spatial_lookup) {
247
+
staticvoidcut_chan_x_node(RRNodeId node,
248
+
int x_low,
249
+
int y_low,
250
+
int x_high,
251
+
int y_high,
252
+
int layer,
253
+
int ptc_num,
254
+
int cut_loc_x,
255
+
Direction node_direction,
256
+
RRGraphBuilder& rr_graph_builder,
257
+
RRSpatialLookup& spatial_lookup) {
176
258
if (node_direction == Direction::INC) {
177
259
// Anything to the right of cut_loc_x shouldn't exist
0 commit comments