RUDY ops
Opened this issue · 1 comments
zhengsizuo commented
def build_route_utilization_map(self, params, placedb, data_collections):
"""
@brief routing congestion map based on current cell locations
@param params parameters
@param placedb placement database
@param data_collections a collection of all data and variables required for constructing the ops
"""
congestion_op = rudy.Rudy(
netpin_start=data_collections.flat_net2pin_start_map,
flat_netpin=data_collections.flat_net2pin_map,
net_weights=data_collections.net_weights,
xl=placedb.routing_grid_xl,
yl=placedb.routing_grid_yl,
xh=placedb.routing_grid_xh,
yh=placedb.routing_grid_yh,
num_bins_x=placedb.num_routing_grids_x,
num_bins_y=placedb.num_routing_grids_y,
unit_horizontal_capacity=placedb.unit_horizontal_capacity,
unit_vertical_capacity=placedb.unit_vertical_capacity,
initial_horizontal_utilization_map=data_collections.
initial_horizontal_utilization_map,
initial_vertical_utilization_map=data_collections.
initial_vertical_utilization_map,
deterministic_flag=params.deterministic_flag)
def route_utilization_map_op(pos):
pin_pos = self.op_collections.pin_pos_op(pos)
return congestion_op(pin_pos)
return route_utilization_map_op
When calculating RUDY value, the routing_grid_x/y should multiply placedb.scale_factor.