Skip to content

Commit 8446653

Browse files
Merge pull request #3136 from AlexandreSinger/feature-ap-timing-logging
[AP] Updated Timing Logging
2 parents 8255ada + 4b0d823 commit 8446653

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

vpr/src/analytical_place/global_placer.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,19 @@ SimPLGlobalPlacer::SimPLGlobalPlacer(e_ap_analytical_solver analytical_solver_ty
124124
*/
125125
static void print_placement_stats(const PartialPlacement& p_placement,
126126
const APNetlist& ap_netlist,
127-
FlatPlacementDensityManager& density_manager) {
127+
FlatPlacementDensityManager& density_manager,
128+
const PreClusterTimingManager& pre_cluster_timing_manager) {
128129
// Print the placement HPWL
129130
VTR_LOG("\tPlacement HPWL: %f\n", p_placement.get_hpwl(ap_netlist));
130131

132+
// Print the timing information.
133+
if (pre_cluster_timing_manager.is_valid()) {
134+
float cpd_ns = pre_cluster_timing_manager.get_timing_info().least_slack_critical_path().delay() * 1e9;
135+
float stns_ns = pre_cluster_timing_manager.get_timing_info().setup_total_negative_slack() * 1e9;
136+
VTR_LOG("\tPlacement estimated CPD: %f ns\n", cpd_ns);
137+
VTR_LOG("\tPlacement estimated sTNS: %f ns\n", stns_ns);
138+
}
139+
131140
// Print density information. Need to reset the density manager to ensure
132141
// the data is valid.
133142
density_manager.import_placement_into_bins(p_placement);
@@ -424,7 +433,8 @@ PartialPlacement SimPLGlobalPlacer::place() {
424433
VTR_LOG("Placement after Global Placement:\n");
425434
print_placement_stats(best_p_placement,
426435
ap_netlist_,
427-
*density_manager_);
436+
*density_manager_,
437+
pre_cluster_timing_manager_);
428438

429439
// Return the placement from the final iteration.
430440
return best_p_placement;

vtr_flow/parse/qor_config/qor_ap_fixed_chan_width.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,18 @@
22
# channel width.
33

44
vpr_status;output.txt;vpr_status=(.*)
5-
crit_path_delay;vpr.out;Critical path: (.*) ns
65
post_gp_hpwl;vpr.out;\s*Placement HPWL: (.*)
76
post_fl_hpwl;vpr.out;Initial placement BB estimate of wirelength: (.*)
87
post_dp_hpwl;vpr.out;BB estimate of min-dist \(placement\) wire length: (.*)
98
total_wirelength;vpr.out;\s*Total wirelength: (\d+)
9+
post_gp_cpd;vpr.out;\s*Placement estimated CPD: (.*) ns
10+
post_fl_cpd;vpr.out;Initial placement estimated Critical Path Delay \(CPD\): (.*) ns
11+
post_dp_cpd;vpr.out;Placement estimated critical path delay \(least slack\): (.*) ns
12+
crit_path_delay;vpr.out;Critical path: (.*) ns
13+
post_gp_sTNS;vpr.out;\s*Placement estimated sTNS: (.*) ns
14+
post_fl_sTNS;vpr.out;Initial placement estimated setup Total Negative Slack \(sTNS\): (.*) ns
15+
post_dp_sTNS;vpr.out;Placement estimated setup Total Negative Slack \(sTNS\): (.*) ns
16+
final_sTNS;vpr.out;Final setup Total Negative Slack \(sTNS\): (.*) ns
1017
post_gp_overfilled_bins;vpr.out;\s*Number of overfilled bins: (\d+)
1118
post_gp_avg_overfill;vpr.out;\s*Average overfill magnitude: (.*)
1219
post_gp_num_misplaced_blocks;vpr.out;\s*Number of blocks in an incompatible bin: (\d+)

0 commit comments

Comments
 (0)