@@ -117,6 +117,12 @@ class RRGSB {
117
117
/* get a rr_node at a given side and track_id for a connection block */
118
118
RRNodeId get_cb_opin_node (const t_rr_type& cb_type, const e_side& side, const size_t & node_id) const ;
119
119
120
+ /* Get the number of MEDIUM rr_nodes */
121
+ size_t get_num_medium_nodes () const ;
122
+
123
+ /* get a rr_node at a given ptc number */
124
+ RRNodeId get_medium_node (const size_t & ptc) const ;
125
+
120
126
int get_cb_chan_node_index (const t_rr_type& cb_type, const RRNodeId& node) const ;
121
127
122
128
int get_chan_node_index (const e_side& node_side, const RRNodeId& node) const ;
@@ -130,6 +136,11 @@ class RRGSB {
130
136
/* Check if the node exist in the opposite side of this Switch Block */
131
137
bool is_sb_node_exist_opposite_side (const RRGraphView& rr_graph, const RRNodeId& node, const e_side& node_side) const ;
132
138
139
+ bool is_opin_node (const RRNodeId& node) const ;
140
+ bool is_ipin_node (const RRNodeId& node) const ;
141
+ bool is_medium_node (const RRNodeId& node) const ;
142
+ bool is_chan_node (const RRNodeId& node) const ;
143
+
133
144
public: /* Accessors: to identify mirrors */
134
145
/* check if the connect block exists in the GSB */
135
146
bool is_cb_exist (const t_rr_type& cb_type) const ;
@@ -186,6 +197,9 @@ class RRGSB {
186
197
void add_opin_node (const RRNodeId& node,
187
198
const e_side& node_side);
188
199
200
+ /* Add a node to the medium_node_ */
201
+ void add_medium_node (const RRNodeId& medium_node);
202
+
189
203
/* Sort all the incoming edges for routing channel rr_node */
190
204
void sort_chan_node_in_edges (const RRGraphView& rr_graph);
191
205
/* Sort all the incoming edges for input pin rr_node */
@@ -269,6 +283,9 @@ class RRGSB {
269
283
* Each CB may have OPINs from all sides
270
284
*/
271
285
std::array<std::array<std::vector<RRNodeId>, NUM_2D_SIDES>, 2 > cb_opin_node_;
286
+
287
+ /* Medium Nodes Data */
288
+ std::vector<RRNodeId> medium_node_;
272
289
};
273
290
274
291
#endif
0 commit comments