@@ -130,6 +130,21 @@ class OverrideDelayModel : public PlaceDelayModel {
130
130
void compute_override_delay_model (RouterDelayProfiler& router,
131
131
const t_router_opts& router_opts);
132
132
133
+ /* *
134
+ * @brief Structure that allows delays to be queried from the delay model.
135
+ *
136
+ * Delay is calculated given the origin physical tile, the origin
137
+ * pin, the destination physical tile, and the destination pin.
138
+ * This structure encapsulates all these information.
139
+ *
140
+ * @param from_type, to_type
141
+ * Physical tile index (for easy array access)
142
+ * @param from_class, to_class
143
+ * The class that the pins belongs to.
144
+ * @param to_x, to_y
145
+ * The horizontal and vertical displacement
146
+ * between two physical tiles.
147
+ */
133
148
struct t_override {
134
149
short from_type;
135
150
short to_type;
@@ -139,9 +154,15 @@ class OverrideDelayModel : public PlaceDelayModel {
139
154
short delta_y;
140
155
141
156
/* *
157
+ * @brief Comparison operator designed for performance.
158
+ *
159
+ * Operator< is important since t_override serves as the key into the
160
+ * map structure delay_overrides_. A default comparison operator would
161
+ * not be inlined by the compiler.
162
+ *
142
163
* A combination of ALWAYS_INLINE attribute and std::lexicographical_compare
143
- * is required for operator< to be inlined by compiler. Proper inlining of the
144
- * function reduces place time by around 5%.
164
+ * is required for operator< to be inlined by compiler. Proper inlining of
165
+ * the function reduces place time by around 5%.
145
166
*
146
167
* For more information: https://github.com/verilog-to-routing/vtr-verilog-to-routing/issues/1225
147
168
*/
@@ -153,6 +174,13 @@ class OverrideDelayModel : public PlaceDelayModel {
153
174
}
154
175
};
155
176
177
+ /* *
178
+ * @brief Map data structure that returns delay values according to
179
+ * specific delay model queries.
180
+ *
181
+ * Delay model queries are provided by the t_override structure, which
182
+ * encapsulates the information regarding the origin and the destination.
183
+ */
156
184
vtr::flat_map2<t_override, float > delay_overrides_;
157
185
158
186
/* *
0 commit comments