@@ -129,7 +129,7 @@ constexpr double MAX_INV_TIMING_COST = 1.e9;
129
129
/* ********************* Variables local to place.c ***************************/
130
130
131
131
/* Cost of a net, and a temporary cost of a net used during move assessment. */
132
- static vtr::vector<ClusterNetId, float > net_cost, temp_net_cost;
132
+ static vtr::vector<ClusterNetId, double > net_cost, temp_net_cost;
133
133
134
134
static t_pl_loc** legal_pos = nullptr ; /* [0..device_ctx.num_block_types-1][0..type_tsize - 1] */
135
135
static int * num_legal_pos = nullptr ; /* [0..num_legal_pos-1] */
@@ -152,8 +152,8 @@ static vtr::vector<ClusterNetId, char> bb_updated_before;
152
152
/* driven portion of the cost function. These arrays will be set to */
153
153
/* (criticality * delay) for each point to point connection. */
154
154
155
- static vtr::vector<ClusterNetId, float *> point_to_point_timing_cost;
156
- static vtr::vector<ClusterNetId, float *> temp_point_to_point_timing_cost;
155
+ static vtr::vector<ClusterNetId, double *> point_to_point_timing_cost;
156
+ static vtr::vector<ClusterNetId, double *> temp_point_to_point_timing_cost;
157
157
158
158
/* [0..cluster_ctx.clb_nlist.nets().size()-1][1..num_pins-1]. What is the value of the delay */
159
159
/* for each connection in the circuit */
@@ -388,7 +388,7 @@ static void record_affected_net(const ClusterNetId net, int& num_affected_nets);
388
388
static void update_net_bb (const ClusterNetId net, int iblk, const ClusterBlockId blk, const ClusterPinId blk_pin);
389
389
static void update_td_delta_costs (const PlaceDelayModel& delay_model, const ClusterNetId net, const ClusterPinId pin, double & delta_timing_cost);
390
390
391
- static float get_net_cost (ClusterNetId net_id, t_bb* bb_ptr);
391
+ static double get_net_cost (ClusterNetId net_id, t_bb* bb_ptr);
392
392
393
393
static void get_bb_from_scratch (ClusterNetId net_id, t_bb* coords, t_bb* num_on_edges);
394
394
@@ -2442,10 +2442,10 @@ static void alloc_and_load_placement_structs(float place_cost_exp,
2442
2442
temp_point_to_point_delay[net_id] = (float *)vtr::malloc (num_sinks * sizeof (float ));
2443
2443
temp_point_to_point_delay[net_id]--;
2444
2444
2445
- point_to_point_timing_cost[net_id] = (float *)vtr::malloc (num_sinks * sizeof (float ));
2445
+ point_to_point_timing_cost[net_id] = (double *)vtr::malloc (num_sinks * sizeof (double ));
2446
2446
point_to_point_timing_cost[net_id]--;
2447
2447
2448
- temp_point_to_point_timing_cost[net_id] = (float *)vtr::malloc (num_sinks * sizeof (float ));
2448
+ temp_point_to_point_timing_cost[net_id] = (double *)vtr::malloc (num_sinks * sizeof (double ));
2449
2449
temp_point_to_point_timing_cost[net_id]--;
2450
2450
}
2451
2451
for (auto net_id : cluster_ctx.clb_nlist .nets ()) {
@@ -2738,11 +2738,11 @@ static double get_net_wirelength_estimate(ClusterNetId net_id, t_bb* bbptr) {
2738
2738
return (ncost);
2739
2739
}
2740
2740
2741
- static float get_net_cost (ClusterNetId net_id, t_bb* bbptr) {
2741
+ static double get_net_cost (ClusterNetId net_id, t_bb* bbptr) {
2742
2742
/* Finds the cost due to one net by looking at its coordinate bounding *
2743
2743
* box. */
2744
2744
2745
- float ncost, crossing;
2745
+ double ncost, crossing;
2746
2746
auto & cluster_ctx = g_vpr_ctx.clustering ();
2747
2747
2748
2748
/* Get the expected "crossing count" of a net, based on its number *
0 commit comments