Skip to content

Commit 5c5d0a0

Browse files
committed
AP High Fanout Net Thresholding: Clean-up and convert from passing
ap_opts to just threshold (int).
1 parent 4d93870 commit 5c5d0a0

File tree

5 files changed

+12
-18
lines changed

5 files changed

+12
-18
lines changed

vpr/src/analytical_place/analytical_placement_flow.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ void run_analytical_placement_flow(t_vpr_setup& vpr_setup) {
180180
APNetlist ap_netlist = gen_ap_netlist_from_atoms(atom_nlist,
181181
prepacker,
182182
constraints,
183-
ap_opts);
183+
ap_opts.ap_high_fanout_threshold);
184184
print_ap_netlist_stats(ap_netlist);
185185

186186
// Pre-compute the pre-clustering timing delays. This object will be passed

vpr/src/analytical_place/analytical_solver.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -802,7 +802,7 @@ void B2BSolver::init_linear_system(PartialPlacement& p_placement) {
802802
continue;
803803
size_t num_pins = netlist_.net_pins(net_id).size();
804804
VTR_ASSERT_SAFE_MSG(num_pins > 1, "net must have at least 2 pins");
805-
805+
806806
double net_w = net_weights_[net_id];
807807

808808
// Find the bounding blocks

vpr/src/analytical_place/gen_ap_netlist_from_atoms.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
APNetlist gen_ap_netlist_from_atoms(const AtomNetlist& atom_netlist,
2626
const Prepacker& prepacker,
2727
const UserPlaceConstraints& constraints,
28-
const t_ap_opts& ap_opts) {
28+
const int& high_fanout_threshold) {
2929
// Create a scoped timer for reading the atom netlist.
3030
vtr::ScopedStartFinishTimer timer("Read Atom Netlist to AP Netlist");
3131

@@ -158,7 +158,7 @@ APNetlist gen_ap_netlist_from_atoms(const AtomNetlist& atom_netlist,
158158
// If fanout number of the net is higher than the threshold, mark as ignored for AP.
159159
size_t num_pins = ap_netlist.net_pins(ap_net_id).size();
160160
VTR_ASSERT_DEBUG(num_pins > 1);
161-
if (num_pins - 1 > static_cast<size_t>(ap_opts.ap_high_fanout_threshold)) {
161+
if (num_pins - 1 > static_cast<size_t>(high_fanout_threshold)) {
162162
ap_netlist.set_net_is_ignored(ap_net_id, true);
163163
continue;
164164
}

vpr/src/analytical_place/gen_ap_netlist_from_atoms.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,20 @@ class APNetlist;
1212
class AtomNetlist;
1313
class Prepacker;
1414
class UserPlaceConstraints;
15-
struct t_ap_opts;
1615

1716
/**
1817
* @brief Use the results from prepacking the atom netlist to generate an APNetlist.
1918
*
20-
* @param atom_netlist The atom netlist for the input design.
21-
* @param prepacker The prepacker, initialized on the provided atom netlist.
22-
* @param constraints The placement constraints on the Atom blocks, provided
23-
* by the user.
19+
* @param atom_netlist The atom netlist for the input design.
20+
* @param prepacker The prepacker, initialized on the provided atom netlist.
21+
* @param constraints The placement constraints on the Atom blocks, provided
22+
* by the user.
23+
* @param high_fanout_threshold The threshold that nets with higher fanout will
24+
* be ignored.
2425
*
2526
* @return An APNetlist object, generated from the prepacker results.
2627
*/
2728
APNetlist gen_ap_netlist_from_atoms(const AtomNetlist& atom_netlist,
2829
const Prepacker& prepacker,
2930
const UserPlaceConstraints& constraints,
30-
const t_ap_opts& ap_opts);
31+
const int& high_fanout_threshold);

vtr_flow/parse/qor_config/qor_ap_fixed_chan_width.txt

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@
22
# channel width.
33

44
vpr_status;output.txt;vpr_status=(.*)
5-
net_threshold;vpr.out;AnalyticalPlacerOpts.ap_high_fanout_threshold: (.*)
6-
ignored_high_fanout_net_num;vpr.out;Ignored nets due to high fanout: (.*)
7-
non_ignored_nets;vpr.out;Non-ignored nets: (.*)
8-
total_nets;vpr.out;Total nets checked: (.*)
95
crit_path_delay;vpr.out;Critical path: (.*) ns
106
post_gp_hpwl;vpr.out;\s*Placement HPWL: (.*)
117
post_fl_hpwl;vpr.out;Initial placement BB estimate of wirelength: (.*)
@@ -21,13 +17,10 @@ post_fl_avg_disp;vpr.out;\s*Average atom displacement of initial placement from
2117
post_fl_max_disp;vpr.out;\s*Max atom displacement of initial placement from flat placement: (.*)
2218
ap_runtime;vpr.out;Analytical Placement took (.*) seconds
2319
ap_gp_runtime;vpr.out;AP Global Placer took (.*) seconds
24-
ap_gp_solver_runtime;vpr.out;Time spent in solver: (.*) seconds
25-
ap_gp_legalizer_runtime;vpr.out;Time spent in legalizer: (.*) seconds
2620
ap_fl_runtime;vpr.out;AP Full Legalizer took (.*) seconds
2721
ap_dp_runtime;vpr.out;AP Detailed Placer took (.*) seconds
2822
route_runtime;vpr.out;Routing took (.*) seconds
2923
total_runtime;vpr.out;The entire flow of VPR took (.*) seconds
3024
num_clb;vpr.out;Netlist clb blocks:\s*(\d+)
3125
num_lab;vpr.out;Netlist LAB blocks:\s*(\d+)
32-
total_CG_iters;vpr.out;Total number of CG iterations: (.*)
33-
ap_gp_last_iter;vpr.out;^ {2}(\d+)\s+[\d.]+\s+[\d.]+\s+[\d.]+\s+[\d.]+\s+[\d.]+$
26+

0 commit comments

Comments
 (0)