@@ -84,6 +84,10 @@ void remove_mol_from_cluster(const t_pack_molecule* molecule,
8484 * the function does not run a detailed intra-cluster routing-based legality check.
8585 * If many molecules will be added to a cluster, this option enables use of a single
8686 * routing check on the completed cluster (vs many incremental checks).
87+ * @param force_site: optional user-specified primitive site on which to place the molecule; this is passed to
88+ * try_pack_molecule and then to get_next_primitive_site. If a force_site argument is provided,
89+ * the molecule is either placed on the specified site or fails to add to the cluster.
90+ * If the force_site argument is set to its default value (-1), vpr selects an available site.
8791 */
8892bool start_new_cluster_for_mol (t_pack_molecule* molecule,
8993 const t_logical_block_type_ptr& type,
@@ -97,7 +101,8 @@ bool start_new_cluster_for_mol(t_pack_molecule* molecule,
97101 t_lb_router_data** router_data,
98102 PartitionRegion& temp_cluster_pr,
99103 NocGroupId& temp_cluster_noc_grp_id,
100- enum e_detailed_routing_stages detailed_routing_stage = E_DETAILED_ROUTE_FOR_EACH_ATOM);
104+ enum e_detailed_routing_stages detailed_routing_stage = E_DETAILED_ROUTE_FOR_EACH_ATOM,
105+ int force_site = -1 );
101106
102107/* *
103108 * @brief A function that packs a molecule into an existing cluster
@@ -118,6 +123,10 @@ bool start_new_cluster_for_mol(t_pack_molecule* molecule,
118123 * If many molecules will be added to a cluster, this option enables use of a single
119124 * routing check on the completed cluster (vs many incremental checks).
120125 * @param enable_pin_feasibility_filter: do a pin couting based legality check (before or in place of intra-cluster routing check).
126+ * @param force_site: optional user-specified primitive site on which to place the molecule; this is passed to
127+ * try_pack_molecule and then to get_next_primitive_site. If a force_site argument is provided,
128+ * the molecule is either placed on the specified site or fails to add to the cluster.
129+ * If the force_site argument is set to its default value (-1), vpr selects an available site.
121130 */
122131bool pack_mol_in_existing_cluster (t_pack_molecule* molecule,
123132 int molecule_size,
@@ -127,7 +136,8 @@ bool pack_mol_in_existing_cluster(t_pack_molecule* molecule,
127136 t_clustering_data& clustering_data,
128137 t_lb_router_data*& router_data,
129138 enum e_detailed_routing_stages detailed_routing_stage = E_DETAILED_ROUTE_FOR_EACH_ATOM,
130- bool enable_pin_feasibility_filter = true );
139+ bool enable_pin_feasibility_filter = true ,
140+ int force_site = -1 );
131141
132142/* *
133143 * @brief A function that fix the clustered netlist if the move is performed
0 commit comments