@@ -297,7 +297,7 @@ static void outer_loop_recompute_criticalities(t_placer_opts placer_opts,
297
297
float * place_delay_value, float * timing_cost, float * delay_cost,
298
298
int * outer_crit_iter_count, float * inverse_prev_timing_cost,
299
299
float * inverse_prev_bb_cost,
300
- const IntraLbPbPinLookup& pb_gpin_lookup ,
300
+ const ClusteredPinAtomPinsLookup& netlist_pin_lookup ,
301
301
#ifdef ENABLE_CLASSIC_VPR_STA
302
302
t_slack* slacks,
303
303
t_timing_inf timing_inf,
@@ -313,7 +313,7 @@ static void placement_inner_loop(float t, float rlim, t_placer_opts placer_opts,
313
313
t_slack* slacks,
314
314
t_timing_inf timing_inf,
315
315
#endif
316
- const IntraLbPbPinLookup& pb_gpin_lookup ,
316
+ const ClusteredPinAtomPinsLookup& netlist_pin_lookup ,
317
317
SetupTimingInfo& timing_info);
318
318
319
319
/* ****************************************************************************/
@@ -385,6 +385,8 @@ void try_place(t_placer_opts placer_opts,
385
385
initial_placement (placer_opts.pad_loc_type , placer_opts.pad_loc_file .c_str ());
386
386
init_draw_coords ((float ) width_fac);
387
387
388
+ // Enables fast look-up of atom pins connect to CLB pins
389
+ ClusteredPinAtomPinsLookup netlist_pin_lookup (cluster_ctx.clb_nlist , pb_gpin_lookup);
388
390
389
391
/* Gets initial cost and loads bounding boxes. */
390
392
@@ -414,7 +416,7 @@ void try_place(t_placer_opts placer_opts,
414
416
timing_info->set_warn_unconstrained (false ); // Don't warn again about unconstrained nodes again during placement
415
417
416
418
// Initial slack estimates
417
- load_criticalities (*timing_info, crit_exponent, pb_gpin_lookup );
419
+ load_criticalities (*timing_info, crit_exponent, netlist_pin_lookup );
418
420
419
421
critical_path = timing_info->least_slack_critical_path ();
420
422
@@ -572,7 +574,7 @@ void try_place(t_placer_opts placer_opts,
572
574
outer_loop_recompute_criticalities (placer_opts, num_connections,
573
575
crit_exponent, bb_cost, &place_delay_value, &timing_cost, &delay_cost,
574
576
&outer_crit_iter_count, &inverse_prev_timing_cost, &inverse_prev_bb_cost,
575
- pb_gpin_lookup ,
577
+ netlist_pin_lookup ,
576
578
#ifdef ENABLE_CLASSIC_VPR_STA
577
579
slacks,
578
580
timing_inf,
@@ -586,7 +588,7 @@ void try_place(t_placer_opts placer_opts,
586
588
slacks,
587
589
timing_inf,
588
590
#endif
589
- pb_gpin_lookup ,
591
+ netlist_pin_lookup ,
590
592
*timing_info);
591
593
592
594
/* Lines below prevent too much round-off error from accumulating *
@@ -694,7 +696,7 @@ void try_place(t_placer_opts placer_opts,
694
696
outer_loop_recompute_criticalities (placer_opts, num_connections,
695
697
crit_exponent, bb_cost, &place_delay_value, &timing_cost, &delay_cost,
696
698
&outer_crit_iter_count, &inverse_prev_timing_cost, &inverse_prev_bb_cost,
697
- pb_gpin_lookup ,
699
+ netlist_pin_lookup ,
698
700
#ifdef ENABLE_CLASSIC_VPR_STA
699
701
slacks,
700
702
timing_inf,
@@ -712,7 +714,7 @@ void try_place(t_placer_opts placer_opts,
712
714
slacks,
713
715
timing_inf,
714
716
#endif
715
- pb_gpin_lookup ,
717
+ netlist_pin_lookup ,
716
718
*timing_info);
717
719
718
720
tot_iter += move_lim;
@@ -868,7 +870,7 @@ static void outer_loop_recompute_criticalities(t_placer_opts placer_opts,
868
870
float * place_delay_value, float * timing_cost, float * delay_cost,
869
871
int * outer_crit_iter_count, float * inverse_prev_timing_cost,
870
872
float * inverse_prev_bb_cost,
871
- const IntraLbPbPinLookup& pb_gpin_lookup ,
873
+ const ClusteredPinAtomPinsLookup& netlist_pin_lookup ,
872
874
#ifdef ENABLE_CLASSIC_VPR_STA
873
875
t_slack* slacks,
874
876
t_timing_inf timing_inf,
@@ -892,7 +894,7 @@ static void outer_loop_recompute_criticalities(t_placer_opts placer_opts,
892
894
893
895
// Per-temperature timing update
894
896
timing_info.update ();
895
- load_criticalities (timing_info, crit_exponent, pb_gpin_lookup );
897
+ load_criticalities (timing_info, crit_exponent, netlist_pin_lookup );
896
898
897
899
#ifdef ENABLE_CLASSIC_VPR_STA
898
900
load_timing_graph_net_delays (point_to_point_delay_cost);
@@ -922,7 +924,7 @@ static void placement_inner_loop(float t, float rlim, t_placer_opts placer_opts,
922
924
t_slack* slacks,
923
925
t_timing_inf timing_inf,
924
926
#endif
925
- const IntraLbPbPinLookup& pb_gpin_lookup ,
927
+ const ClusteredPinAtomPinsLookup& netlist_pin_lookup ,
926
928
SetupTimingInfo& timing_info) {
927
929
928
930
int inner_crit_iter_count, inner_iter;
@@ -978,7 +980,7 @@ static void placement_inner_loop(float t, float rlim, t_placer_opts placer_opts,
978
980
*/
979
981
// Inner loop timing update
980
982
timing_info.update ();
981
- load_criticalities (timing_info, crit_exponent, pb_gpin_lookup );
983
+ load_criticalities (timing_info, crit_exponent, netlist_pin_lookup );
982
984
983
985
#ifdef ENABLE_CLASSIC_VPR_STA
984
986
load_timing_graph_net_delays (point_to_point_delay_cost);
0 commit comments