@@ -1595,35 +1595,31 @@ double NetCostHandler::get_net_wirelength_from_layer_bb_(ClusterNetId net_id) {
15951595 return ncost;
15961596}
15971597
1598- float NetCostHandler::get_chanz_cost_factor_ (const t_bb& bounding_box ) {
1598+ float NetCostHandler::get_chanz_cost_factor_ (const t_bb& bb ) {
15991599 float place_cost_exp = placer_opts_.place_cost_exp ;
1600- int x_high = bounding_box.xmax ;
1601- int x_low = bounding_box.xmin ;
1602- int y_high = bounding_box.ymax ;
1603- int y_low = bounding_box.ymin ;
16041600
16051601 int num_inter_dir_conn;
16061602
1607- if (x_low == 0 && y_low == 0 ) {
1608- num_inter_dir_conn = acc_tile_num_inter_die_conn_[x_high][y_high ];
1609- } else if (x_low == 0 ) {
1610- num_inter_dir_conn = acc_tile_num_inter_die_conn_[x_high][y_high ] -
1611- acc_tile_num_inter_die_conn_[x_high][y_low -1 ];
1612- } else if (y_low == 0 ) {
1613- num_inter_dir_conn = acc_tile_num_inter_die_conn_[x_high][y_high ] -
1614- acc_tile_num_inter_die_conn_[x_low -1 ][y_high ];
1603+ if (bb. xmin == 0 && bb. ymin == 0 ) {
1604+ num_inter_dir_conn = acc_tile_num_inter_die_conn_[bb. xmax ][bb. ymax ];
1605+ } else if (bb. xmin == 0 ) {
1606+ num_inter_dir_conn = acc_tile_num_inter_die_conn_[bb. xmax ][bb. ymax ] -
1607+ acc_tile_num_inter_die_conn_[bb. xmax ][bb. ymin -1 ];
1608+ } else if (bb. ymin == 0 ) {
1609+ num_inter_dir_conn = acc_tile_num_inter_die_conn_[bb. xmax ][bb. ymax ] -
1610+ acc_tile_num_inter_die_conn_[bb. xmin -1 ][bb. ymax ];
16151611 } else {
1616- num_inter_dir_conn = acc_tile_num_inter_die_conn_[x_high][y_high ] -
1617- acc_tile_num_inter_die_conn_[x_low -1 ][y_high ] -
1618- acc_tile_num_inter_die_conn_[x_high][y_low -1 ] +
1619- acc_tile_num_inter_die_conn_[x_low -1 ][y_low -1 ];
1612+ num_inter_dir_conn = acc_tile_num_inter_die_conn_[bb. xmax ][bb. ymax ] -
1613+ acc_tile_num_inter_die_conn_[bb. xmin -1 ][bb. ymax ] -
1614+ acc_tile_num_inter_die_conn_[bb. xmax ][bb. ymin -1 ] +
1615+ acc_tile_num_inter_die_conn_[bb. xmin -1 ][bb. ymin -1 ];
16201616 }
16211617
16221618 float z_cost_factor;
16231619 if (num_inter_dir_conn == 0 ) {
16241620 return 1 .0f ;
16251621 } else {
1626- int bb_num_tiles = (x_high - x_low + 1 ) * (y_high - y_low + 1 );
1622+ int bb_num_tiles = (bb. xmax - bb. xmin + 1 ) * (bb. ymax - bb. ymin + 1 );
16271623 z_cost_factor = bb_num_tiles / static_cast <float >(num_inter_dir_conn);
16281624 z_cost_factor = pow ((double )z_cost_factor, (double )place_cost_exp);
16291625 }
0 commit comments