Skip to content

Commit 5b94af7

Browse files
inline doxygen comments for data members of t_placer_opts and t_ap_opts
1 parent b1b52f6 commit 5b94af7

File tree

2 files changed

+74
-88
lines changed

2 files changed

+74
-88
lines changed

vpr/src/analytical_place/ap_flow_enums.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ enum class e_ap_analytical_solver {
2727
*/
2828
enum class e_ap_partial_legalizer {
2929
BiPartitioning, ///< Partial Legalizer which forms minimum windows around dense regions and uses bipartitioning to spread blocks over windows.
30-
FlowBased ///> Partial Legalizer which flows blocks from overfilled bins to underfilled bins.
30+
FlowBased ///< Partial Legalizer which flows blocks from overfilled bins to underfilled bins.
3131
};
3232

3333
/**

vpr/src/base/vpr_types.h

Lines changed: 73 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -954,88 +954,77 @@ enum class e_move_type;
954954

955955
/**
956956
* @brief Various options for the placer.
957-
*
958-
* @param place_algorithm
959-
* Controls which placement algorithm is used.
960-
* @param place_quench_algorithm
961-
* Controls which placement algorithm is used
962-
* during placement quench.
963-
* @param timing_tradeoff
964-
* When in CRITICALITY_TIMING_PLACE mode, what is the
965-
* tradeoff between timing and wiring costs.
966-
* @param place_chan_width
967-
* The channel width assumed if only one placement is performed.
968-
* @param pad_loc_type
969-
* Are pins FREE or fixed randomly.
970-
* @param constraints_file
971-
* File that specifies locations of locked down (constrained)
972-
* blocks for placement. Empty string means no constraints file.
973-
* @param write_initial_place_file
974-
* Write the initial placement into this file. Empty string means
975-
* the initial placement is not written.
976-
* @param pad_loc_file
977-
* File to read pad locations from if pad_loc_type is USER.
978-
* @param place_freq
979-
* Should the placement be skipped, done once, or done
980-
* for each channel width in the binary search. (Default: ONCE)
981-
* @param recompute_crit_iter
982-
* How many temperature stages pass before we recompute
983-
* criticalities based on the current placement and its
984-
* estimated point-to-point delays.
985-
* @param inner_loop_crit_divider
986-
* (move_lim/inner_loop_crit_divider) determines how
987-
* many inner_loop iterations pass before a recompute
988-
* of criticalities is done.
989-
* @param td_place_exp_first
990-
* Exponent that is used in the CRITICALITY_TIMING_PLACE
991-
* mode to specify the initial value of `crit_exponent`.
992-
* After we map the slacks to criticalities, this value
993-
* is used to `sharpen` the criticalities, making connections
994-
* with worse slacks more critical.
995-
* @param td_place_exp_last
996-
* Value that the crit_exponent will be at the end.
997-
* @param doPlacement
998-
* True if placement is supposed to be done in the CAD flow.
999-
* False if otherwise.
1000-
* @param place_constraint_expand
1001-
* Integer value that specifies how far to expand the floorplan
1002-
* region when printing out floorplan constraints based on
1003-
* current placement.
1004-
* @param place_constraint_subtile
1005-
* True if subtiles should be specified when printing floorplan
1006-
* constraints. False if not.
1007-
* @param place_auto_init_t_scale
1008-
* When the annealer is using the automatic schedule, this option
1009-
* scales the initial temperature selected.
1010957
*/
1011958
struct t_placer_opts {
959+
/// Controls which placement algorithm is used.
1012960
t_place_algorithm place_algorithm;
961+
962+
/// Controls which placement algorithm is used during placement quench.
1013963
t_place_algorithm place_quench_algorithm;
1014-
t_annealing_sched anneal_sched; ///<Placement option annealing schedule
964+
965+
/// Placement option annealing schedule
966+
t_annealing_sched anneal_sched;
967+
968+
/// When in CRITICALITY_TIMING_PLACE mode, what is the tradeoff between timing and wiring costs.
1015969
float timing_tradeoff;
970+
1016971
float congestion_factor;
1017972
float congestion_rlim_trigger_ratio;
1018973
float congestion_chan_util_threshold;
974+
975+
/// The channel width assumed if only one placement is performed.
1019976
int place_chan_width;
977+
978+
/// Are pins FREE or fixed randomly.
1020979
enum e_pad_loc_type pad_loc_type;
980+
981+
/// File that specifies locations of locked down (constrained) blocks for placement. Empty string means no constraints file.
1021982
std::string constraints_file;
983+
984+
/// Write the initial placement into this file. Empty string means the initial placement is not written.
1022985
std::string write_initial_place_file;
986+
1023987
std::string read_initial_place_file;
988+
989+
/// Should the placement be skipped, done once, or done for each channel width in the binary search. (Default: ONCE)
1024990
enum pfreq place_freq;
991+
992+
/// How many temperature stages pass before we recompute criticalities
993+
/// based on the current placement and its estimated point-to-point delays.
1025994
int recompute_crit_iter;
995+
996+
/// (move_lim/inner_loop_crit_divider) determines how many inner_loop iterations pass before a recompute of criticalities is done.
1026997
int inner_loop_recompute_divider;
998+
1027999
int quench_recompute_divider;
1000+
1001+
/**
1002+
* Exponent that is used in the CRITICALITY_TIMING_PLACE mode to specify the initial value of `crit_exponent`.
1003+
* After we map the slacks to criticalities, this value is used to `sharpen` the criticalities, making
1004+
* connections with worse slacks more critical.
1005+
*/
10281006
float td_place_exp_first;
1007+
10291008
int seed;
1009+
1010+
/// Value that the crit_exponent will be at the end.
10301011
float td_place_exp_last;
1012+
1013+
/// True if placement is supposed to be done in the CAD flow. False if otherwise.
10311014
e_stage_action doPlacement;
1015+
10321016
float rlim_escape_fraction;
1017+
10331018
std::string move_stats_file;
1019+
10341020
int placement_saves_per_temperature;
1021+
10351022
e_place_effort_scaling effort_scaling;
1023+
10361024
e_timing_update_type timing_update_type;
10371025

10381026
PlaceDelayModelType delay_model_type;
1027+
10391028
e_reducer delay_model_reducer;
10401029

10411030
float delay_offset;
@@ -1050,23 +1039,40 @@ struct t_placer_opts {
10501039

10511040
std::string write_placement_delay_lookup;
10521041
std::string read_placement_delay_lookup;
1042+
10531043
vtr::vector<e_move_type, float> place_static_move_prob;
1044+
10541045
bool RL_agent_placement;
10551046
bool place_agent_multistate;
10561047
bool place_checkpointing;
1048+
10571049
int place_high_fanout_net;
1050+
10581051
e_place_bounding_box_mode place_bounding_box_mode;
1052+
10591053
e_agent_algorithm place_agent_algorithm;
1054+
10601055
float place_agent_epsilon;
10611056
float place_agent_gamma;
10621057
float place_dm_rlim;
1058+
10631059
e_agent_space place_agent_space;
1060+
10641061
std::string place_reward_fun;
1062+
10651063
float place_crit_limit;
1064+
1065+
1066+
/// Integer value that specifies how far to expand the floorplan region when
1067+
/// printing out floorplan constraints based on current placement.
10661068
int place_constraint_expand;
1069+
1070+
/// True if subtiles should be specified when printing floorplan constraints. False if not.
10671071
bool place_constraint_subtile;
1072+
10681073
int floorplan_num_horizontal_partitions;
10691074
int floorplan_num_vertical_partitions;
1075+
10701076
bool place_quench_only;
10711077

10721078
int placer_debug_block;
@@ -1082,6 +1088,7 @@ struct t_placer_opts {
10821088

10831089
e_place_delta_delay_algorithm place_delta_delay_matrix_calculation_method;
10841090

1091+
/// When the annealer is using the automatic schedule, this option scales the initial temperature selected.
10851092
float place_auto_init_t_scale;
10861093
};
10871094

@@ -1091,63 +1098,42 @@ struct t_placer_opts {
10911098

10921099
/**
10931100
* @brief Various options for the Analytical Placer.
1094-
*
1095-
* @param doAnalyticalPlacement
1096-
* True if analytical placement is supposed to be done in the CAD
1097-
* flow. False if otherwise.
1098-
* @param analytical_solver_type
1099-
* The type of analytical solver the Global Placer in the AP flow
1100-
* will use.
1101-
* @param partial_legalizer_type
1102-
* The type of partial legalizer the Global Placer in the AP flow
1103-
* will use.
1104-
* @param full_legalizer_type
1105-
* The type of full legalizer the AP flow will use.
1106-
* @param detailed_placer_type
1107-
* The type of detailed placter the AP flow will use.
1108-
* @param ap_timing_tradeoff
1109-
* A trade-off parameter used to decide how focused the AP flow
1110-
* should be on optimizing timing over wirelength.
1111-
* @param ap_high_fanout_threshold;
1112-
* The threshold to ignore nets with higher fanout than that
1113-
* value while constructing the solver.
1114-
* @param ap_partial_legalizer_target_density
1115-
* Vector of strings passed by the user to configure the target
1116-
* density of different physical tiles on the device.
1117-
* @param appack_max_dist_th
1118-
* Array of string passed by the user to configure the max candidate
1119-
* distance thresholds.
1120-
* @param num_threads
1121-
* The number of threads the AP flow can use.
1122-
* @param log_verbosity
1123-
* The verbosity level of log messages in the AP flow, with higher
1124-
* values leading to more verbose messages.
1125-
* @param generate_mass_report
1126-
* Whether to generate a mass report during global placement or not.
11271101
*/
11281102
struct t_ap_opts {
1103+
/// True if analytical placement is supposed to be done in the CAD flow. False if otherwise.
11291104
e_stage_action doAP;
11301105

1106+
/// The type of analytical solver the Global Placer in the AP flow will use.
11311107
e_ap_analytical_solver analytical_solver_type;
11321108

1109+
/// The type of partial legalizer the Global Placer in the AP flow will use.
11331110
e_ap_partial_legalizer partial_legalizer_type;
11341111

1112+
/// The type of full legalizer the AP flow will use.
11351113
e_ap_full_legalizer full_legalizer_type;
11361114

1115+
/// The type of detailed placer the AP flow will use.
11371116
e_ap_detailed_placer detailed_placer_type;
11381117

1118+
/// A trade-off parameter used to decide how focused the AP flow should be on optimizing timing over wirelength.
11391119
float ap_timing_tradeoff;
11401120

1121+
/// The threshold to ignore nets with higher fanout than that value while constructing the solver.
11411122
int ap_high_fanout_threshold;
11421123

1124+
/// Vector of strings passed by the user to configure the target density of different physical tiles on the device.
11431125
std::vector<std::string> ap_partial_legalizer_target_density;
11441126

1127+
/// Array of string passed by the user to configure the max candidate distance thresholds.
11451128
std::vector<std::string> appack_max_dist_th;
11461129

1130+
/// The number of threads the AP flow can use.
11471131
unsigned num_threads;
11481132

1133+
/// The verbosity level of log messages in the AP flow, with higher values leading to more verbose messages.
11491134
int log_verbosity;
11501135

1136+
/// Whether to generate a mass report during global placement or not.
11511137
bool generate_mass_report;
11521138
};
11531139

0 commit comments

Comments
 (0)