1
1
/* *
2
- * @file rr_graph_utils.h
3
- *
4
- * @brief This file includes the most-utilized functions that manipulate the RRGraph object.
5
- */
2
+ * @file rr_graph_utils.h
3
+ *
4
+ * @brief This file includes the most-utilized functions that manipulate the RRGraph object.
5
+ */
6
6
7
7
#ifndef RR_GRAPH_UTILS_H
8
8
#define RR_GRAPH_UTILS_H
9
9
10
10
/* Include header files which include data structures used by
11
- * the function declaration
12
- */
11
+ * the function declaration
12
+ */
13
13
#include < vector>
14
14
#include " rr_graph_fwd.h"
15
15
#include " rr_node_types.h"
@@ -43,53 +43,53 @@ struct t_cluster_pin_chain {
43
43
};
44
44
45
45
/* *
46
- * @brief Get node-to-node switches in a RRGraph
46
+ * @brief Get node-to-node switches in a RRGraph
47
47
*
48
48
* @return A vector of switch ids
49
- * */
49
+ */
50
50
std::vector<RRSwitchId> find_rr_graph_switches (const RRGraph& rr_graph,
51
51
const RRNodeId& from_node,
52
52
const RRNodeId& to_node);
53
53
54
54
/* *
55
- * @brief This function generates and returns a vector indexed by RRNodeId containing a list of fan-in edges for each node.
56
- */
55
+ * @brief This function generates and returns a vector indexed by RRNodeId containing a list of fan-in edges for each node.
56
+ */
57
57
vtr::vector<RRNodeId, std::vector<RREdgeId>> get_fan_in_list (const RRGraphView& rr_graph);
58
58
59
59
/* *
60
- * @brief This function sets better locations for SINK nodes.
61
- *
62
- * @details
63
- * build_rr_graph() sets the location of SINK nodes to span the entire tile they are in. This function sets the location
64
- * of SINK nodes to be the average coordinate of the IPINs on their cluster block to which they are connected
65
- *
66
- * @note
67
- * This function only changes SINK locations in tiles which have dimensions greater than 1x1
68
- */
60
+ * @brief This function sets better locations for SINK nodes.
61
+ *
62
+ * @details
63
+ * build_rr_graph() sets the location of SINK nodes to span the entire tile they are in. This function sets the location
64
+ * of SINK nodes to be the average coordinate of the IPINs on their cluster block to which they are connected
65
+ *
66
+ * @note
67
+ * This function only changes SINK locations in tiles which have dimensions greater than 1x1
68
+ */
69
69
void set_sink_locs (const RRGraphView& rr_graph, RRGraphBuilder& rr_graph_builder);
70
70
71
71
/* *
72
- * @brief Returns the segment number (distance along the channel) of the connection box from from_rr_type (CHANX or
73
- * CHANY) to to_node (IPIN).
74
- */
72
+ * @brief Returns the segment number (distance along the channel) of the connection box from from_rr_type (CHANX or
73
+ * CHANY) to to_node (IPIN).
74
+ */
75
75
int seg_index_of_cblock (const RRGraphView& rr_graph, t_rr_type from_rr_type, int to_node);
76
76
77
77
/* *
78
- * @breif Returns the segment number (distance along the channel) of the switch box from from_node (CHANX or CHANY) to
79
- * to_node (CHANX or CHANY).
80
- *
81
- * @details
82
- * The switch box on the left side of a CHANX segment at (i,j) has seg_index = i-1, while the switch box on the right
83
- * side of that segment has seg_index = i. CHANY stuff works similarly. Hence the range of values returned is 0 to
84
- * device_ctx.grid.width()-1 (if from_node is a CHANX) or 0 to device_ctx.grid.height()-1 (if from_node is a CHANY).
85
- */
78
+ * @breif Returns the segment number (distance along the channel) of the switch box from from_node (CHANX or CHANY) to
79
+ * to_node (CHANX or CHANY).
80
+ *
81
+ * @details
82
+ * The switch box on the left side of a CHANX segment at (i,j) has seg_index = i-1, while the switch box on the right
83
+ * side of that segment has seg_index = i. CHANY stuff works similarly. Hence the range of values returned is 0 to
84
+ * device_ctx.grid.width()-1 (if from_node is a CHANX) or 0 to device_ctx.grid.height()-1 (if from_node is a CHANY).
85
+ */
86
86
int seg_index_of_sblock (const RRGraphView& rr_graph, int from_node, int to_node);
87
87
88
88
/* *
89
- * @brief This function checks whether all inter-die connections are form OPINs. Return "true"
90
- * if that is the case. Can be used for multiple purposes. For example, to determine which type of bounding
91
- * box to be used to estimate the wire-length of a net.
92
- * @return limited_to_opin
93
- */
89
+ * @brief This function checks whether all inter-die connections are form OPINs. Return "true"
90
+ * if that is the case. Can be used for multiple purposes. For example, to determine which type of bounding
91
+ * box to be used to estimate the wire-length of a net.
92
+ * @return limited_to_opin
93
+ */
94
94
bool inter_layer_connections_limited_to_opin (const RRGraphView& rr_graph);
95
95
#endif
0 commit comments