VPR-7.0
|
Go to the source code of this file.
Functions | |
t_cluster_placement_stats * | alloc_and_load_cluster_placement_stats (void) |
boolean | get_next_primitive_list (INOUTP t_cluster_placement_stats *cluster_placement_stats, INP t_pack_molecule *molecule, INOUTP t_pb_graph_node **primitives_list, INP int clb_index) |
void | commit_primitive (INOUTP t_cluster_placement_stats *cluster_placement_stats, INP t_pb_graph_node *primitive) |
void | set_mode_cluster_placement_stats (INP t_pb_graph_node *complex_block, int mode) |
void | reset_cluster_placement_stats (INOUTP t_cluster_placement_stats *cluster_placement_stats) |
void | free_cluster_placement_stats (INOUTP t_cluster_placement_stats *cluster_placement_stats) |
int | get_array_size_of_molecule (t_pack_molecule *molecule) |
boolean | exists_free_primitive_for_logical_block (INOUTP t_cluster_placement_stats *cluster_placement_stats, INP int ilogical_block) |
void | reset_tried_but_unused_cluster_placements (INOUTP t_cluster_placement_stats *cluster_placement_stats) |
t_cluster_placement_stats* alloc_and_load_cluster_placement_stats | ( | void | ) |
[0..num_pb_types-1] array of cluster placement stats, one for each type_descriptors
Definition at line 56 of file cluster_placement.c.
void commit_primitive | ( | INOUTP t_cluster_placement_stats * | cluster_placement_stats, |
INP t_pb_graph_node * | primitive | ||
) |
Commit primitive, invalidate primitives blocked by mode assignment and update costs for primitives in same cluster as current Costing is done to try to pack blocks closer to existing primitives actual value based on closest common ancestor to committed placement, the farther the ancestor, the less reduction in cost there is Side effects: All cluster_placement_primitives may be invalidated/costed in this algorithm Al intermediate queues are requeued
Definition at line 347 of file cluster_placement.c.
boolean exists_free_primitive_for_logical_block | ( | INOUTP t_cluster_placement_stats * | cluster_placement_stats, |
INP int | ilogical_block | ||
) |
Definition at line 701 of file cluster_placement.c.
void free_cluster_placement_stats | ( | INOUTP t_cluster_placement_stats * | cluster_placement_stats_list | ) |
Free linked lists found in cluster_placement_stats_list
Definition at line 214 of file cluster_placement.c.
int get_array_size_of_molecule | ( | t_pack_molecule * | molecule | ) |
Definition at line 692 of file cluster_placement.c.
boolean get_next_primitive_list | ( | INOUTP t_cluster_placement_stats * | cluster_placement_stats, |
INP t_pack_molecule * | molecule, | ||
INOUTP t_pb_graph_node ** | primitives_list, | ||
INP int | clb_index | ||
) |
get next list of primitives for list of logical blocks primitives is the list of ptrs to primitives that matches with the list of logical_blocks (by index), assumes memory is preallocated
return TRUE if can find next primitive, FALSE otherwise
cluster_placement_stats - ptr to the current cluster_placement_stats of open complex block molecule - molecule to pack into open complex block primitives_list - a list of primitives indexed to match logical_block_ptrs of molecule. Expects an allocated array of primitives ptrs as inputs. This function loads the array with the lowest cost primitives that implement molecule
Definition at line 88 of file cluster_placement.c.
void reset_cluster_placement_stats | ( | INOUTP t_cluster_placement_stats * | cluster_placement_stats | ) |
Resets one cluster placement stats by clearing incremental costs and returning all primitives to valid queue
Definition at line 183 of file cluster_placement.c.
void reset_tried_but_unused_cluster_placements | ( | INOUTP t_cluster_placement_stats * | cluster_placement_stats | ) |
Definition at line 744 of file cluster_placement.c.
void set_mode_cluster_placement_stats | ( | INP t_pb_graph_node * | pb_graph_node, |
int | mode | ||
) |
Set mode of cluster
Definition at line 394 of file cluster_placement.c.