@@ -160,7 +160,8 @@ int get_physical_pin_from_capacity_location(t_physical_tile_type_ptr physical_ti
160
160
std::pair<int , int > get_capacity_location_from_physical_pin (t_physical_tile_type_ptr physical_tile, int pin);
161
161
162
162
// /@brief Returns the name of the pin_index'th pin on the specified block type
163
- std::string block_type_pin_index_to_name (t_physical_tile_type_ptr type, int pin_index);
163
+ // #TODO: is_flat shouldn't have a default value - This should be modified ASAP!
164
+ std::string block_type_pin_index_to_name (t_physical_tile_type_ptr type, int pin_physical_num, bool is_flat = false );
164
165
165
166
// /@brief Returns the name of the class_index'th pin class on the specified block type
166
167
std::vector<std::string> block_type_class_index_to_pin_names (t_physical_tile_type_ptr type, int class_index);
@@ -301,4 +302,80 @@ const t_physical_tile_port* get_port_by_pin(const t_sub_tile* sub_tile, int pin)
301
302
*/
302
303
const t_port* get_port_by_pin (t_logical_block_type_ptr type, int pin);
303
304
305
+ /* *********************************** Access to intra-block resources ************************************/
306
+
307
+ /* Access information related to pin classes */
308
+
309
+ /* * get information given class physical num **/
310
+ std::tuple<const t_sub_tile*, int > get_sub_tile_from_class_physical_num (t_physical_tile_type_ptr physical_tile, int physical_class_num);
311
+
312
+ t_logical_block_type_ptr get_logical_block_from_class_physical_num (t_physical_tile_type_ptr physical_tile, int physical_class_num);
313
+
314
+ std::vector<int > get_pin_list_from_class_physical_num (t_physical_tile_type_ptr physical_tile, int class_physical_num);
315
+
316
+ PortEquivalence get_port_equivalency_from_class_physical_num (t_physical_tile_type_ptr physical_tile, int class_physical_num);
317
+
318
+ e_pin_type get_class_type_from_class_physical_num (t_physical_tile_type_ptr physical_tile, int class_physical_num);
319
+
320
+ int get_class_num_pins_from_class_physical_num (t_physical_tile_type_ptr physical_tile, int class_physical_num);
321
+
322
+ int get_pin_physical_num_from_class_physical_num (t_physical_tile_type_ptr physical_tile, int physical_class_num, int pin_logical_num);
323
+
324
+ bool is_class_on_tile (t_physical_tile_type_ptr physical_tile, int class_physical_num);
325
+ /* * **/
326
+
327
+ /* * get classes under different blocks **/
328
+ std::unordered_map<int , const t_class*> get_pb_graph_node_num_class_pairs (t_physical_tile_type_ptr physical_tile,
329
+ const t_sub_tile* sub_tile,
330
+ t_logical_block_type_ptr logical_block,
331
+ int sub_tile_relative_cap,
332
+ const t_pb_graph_node* pb_graph_node);
333
+ /* * **/
334
+ int get_total_num_sub_tile_internal_classes (const t_sub_tile* sub_tile);
335
+
336
+ int get_total_num_tile_internal_classes (t_physical_tile_type_ptr physical_tile);
337
+
338
+ int get_tile_class_max_ptc (t_physical_tile_type_ptr tile, bool is_flat);
339
+
340
+ /* */
341
+
342
+ /* Access information related to pins */
343
+
344
+ /* * get information given pin physical number **/
345
+ std::tuple<const t_sub_tile*, int > get_sub_tile_from_pin_physical_num (t_physical_tile_type_ptr physical_tile, int physical_num);
346
+
347
+ t_logical_block_type_ptr get_logical_block_from_pin_physical_num (t_physical_tile_type_ptr physical_tile, int physical_num);
348
+
349
+ const t_pb_graph_pin* get_pb_pin_from_pin_physical_num (t_physical_tile_type_ptr physical_tile, int physical_num);
350
+
351
+ PortEquivalence get_port_equivalency_from_pin_physical_num (t_physical_tile_type_ptr physical_tile, int pin_physical_num);
352
+
353
+ e_pin_type get_pin_type_from_pin_physical_num (t_physical_tile_type_ptr physical_tile, int physical_num);
354
+
355
+ int get_class_num_from_pin_physical_num (t_physical_tile_type_ptr physical_tile, int pin_physical_num);
356
+
357
+ bool is_pin_on_tile (t_physical_tile_type_ptr physical_tile, int physical_num);
358
+
359
+ std::vector<int > get_pb_graph_node_pins (const t_sub_tile* sub_tile,
360
+ t_logical_block_type_ptr logical_block,
361
+ int relative_cap,
362
+ const t_pb_graph_node* pb_graph_node);
363
+
364
+ std::vector<int > get_physical_pin_driving_pins (t_physical_tile_type_ptr physical_type,
365
+ t_logical_block_type_ptr logical_block,
366
+ int pin_physical_num);
367
+
368
+ int get_pb_pin_physical_num (const t_sub_tile* sub_tile,
369
+ t_logical_block_type_ptr logical_block,
370
+ int relative_cap,
371
+ const t_pb_graph_pin* pin);
372
+
373
+ int get_total_num_sub_tile_internal_pins (const t_sub_tile* sub_tile);
374
+
375
+ int get_total_num_tile_internal_pins (t_physical_tile_type_ptr tile);
376
+
377
+ int get_tile_ipin_opin_max_ptc (t_physical_tile_type_ptr tile, bool is_flat);
378
+
379
+ /* */
380
+
304
381
#endif
0 commit comments