@@ -1595,35 +1595,31 @@ double NetCostHandler::get_net_wirelength_from_layer_bb_(ClusterNetId net_id) {
1595
1595
return ncost;
1596
1596
}
1597
1597
1598
- float NetCostHandler::get_chanz_cost_factor_ (const t_bb& bounding_box ) {
1598
+ float NetCostHandler::get_chanz_cost_factor_ (const t_bb& bb ) {
1599
1599
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 ;
1604
1600
1605
1601
int num_inter_dir_conn;
1606
1602
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 ];
1615
1611
} 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 ];
1620
1616
}
1621
1617
1622
1618
float z_cost_factor;
1623
1619
if (num_inter_dir_conn == 0 ) {
1624
1620
return 1 .0f ;
1625
1621
} 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 );
1627
1623
z_cost_factor = bb_num_tiles / static_cast <float >(num_inter_dir_conn);
1628
1624
z_cost_factor = pow ((double )z_cost_factor, (double )place_cost_exp);
1629
1625
}
0 commit comments