23 vpr_printf(TIO_MESSAGE_INFO,
"Timing analysis: %s\n", (vpr_setup.TimingEnabled?
"ON" :
"OFF"));
25 vpr_printf(TIO_MESSAGE_INFO,
"Circuit netlist file: %s\n", vpr_setup.FileNameOpts.NetFile);
26 vpr_printf(TIO_MESSAGE_INFO,
"Circuit placement file: %s\n", vpr_setup.FileNameOpts.PlaceFile);
27 vpr_printf(TIO_MESSAGE_INFO,
"Circuit routing file: %s\n", vpr_setup.FileNameOpts.RouteFile);
28 vpr_printf(TIO_MESSAGE_INFO,
"Circuit SDC file: %s\n", vpr_setup.Timing.SDCFile);
31 vpr_printf(TIO_MESSAGE_INFO,
"Packer: %s\n", (vpr_setup.PackerOpts.doPacking ?
"ENABLED" :
"DISABLED"));
32 vpr_printf(TIO_MESSAGE_INFO,
"Placer: %s\n", (vpr_setup.PlacerOpts.doPlacement ?
"ENABLED" :
"DISABLED"));
33 vpr_printf(TIO_MESSAGE_INFO,
"Router: %s\n", (vpr_setup.RouterOpts.doRouting ?
"ENABLED" :
"DISABLED"));
35 if (vpr_setup.PackerOpts.doPacking) {
38 if (vpr_setup.PlacerOpts.doPlacement) {
39 ShowPlacerOpts(options, vpr_setup.PlacerOpts, vpr_setup.AnnealSched);
41 if (vpr_setup.RouterOpts.doRouting) {
45 if (
DETAILED == vpr_setup.RouterOpts.route_type)
51 int i, j, L_num_p_inputs, L_num_p_outputs;
60 num_blocks_type[i] = 0;
70 if (block[i].nets[j] !=
OPEN) {
91 vpr_printf(TIO_MESSAGE_INFO,
"Netlist inputs pins: %d\n", L_num_p_inputs);
92 vpr_printf(TIO_MESSAGE_INFO,
"Netlist output pins: %d\n", L_num_p_outputs);
94 free(num_blocks_type);
99 vpr_printf(TIO_MESSAGE_INFO,
"RoutingArch.directionality: ");
100 switch (RoutingArch.directionality) {
102 vpr_printf(TIO_MESSAGE_INFO,
"BI_DIRECTIONAL\n");
105 vpr_printf(TIO_MESSAGE_INFO,
"UNI_DIRECTIONAL\n");
112 vpr_printf(TIO_MESSAGE_INFO,
"RoutingArch.switch_block_type: ");
113 switch (RoutingArch.switch_block_type) {
127 vpr_printf(TIO_MESSAGE_ERROR,
"switch block type\n");
130 vpr_printf(TIO_MESSAGE_INFO,
"RoutingArch.Fs: %d\n", RoutingArch.Fs);
137 vpr_printf(TIO_MESSAGE_INFO,
"AnnealSched.type: ");
138 switch (AnnealSched.type) {
146 vpr_printf(TIO_MESSAGE_ERROR,
"Unknown annealing schedule\n");
149 vpr_printf(TIO_MESSAGE_INFO,
"AnnealSched.inner_num: %f\n", AnnealSched.inner_num);
152 vpr_printf(TIO_MESSAGE_INFO,
"AnnealSched.init_t: %f\n", AnnealSched.init_t);
153 vpr_printf(TIO_MESSAGE_INFO,
"AnnealSched.alpha_t: %f\n", AnnealSched.alpha_t);
154 vpr_printf(TIO_MESSAGE_INFO,
"AnnealSched.exit_t: %f\n", AnnealSched.exit_t);
160 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.route_type: ");
161 switch (RouterOpts.route_type) {
169 vpr_printf(TIO_MESSAGE_ERROR,
"Unknown router opt\n");
172 if (
DETAILED == RouterOpts.route_type) {
173 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.router_algorithm: ");
174 switch (RouterOpts.router_algorithm) {
176 vpr_printf(TIO_MESSAGE_INFO,
"BREADTH_FIRST\n");
179 vpr_printf(TIO_MESSAGE_INFO,
"TIMING_DRIVEN\n");
189 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.base_cost_type: ");
190 switch (RouterOpts.base_cost_type) {
192 vpr_printf(TIO_MESSAGE_INFO,
"INTRINSIC_DELAY\n");
195 vpr_printf(TIO_MESSAGE_INFO,
"DELAY_NORMALIZED\n");
198 vpr_printf(TIO_MESSAGE_INFO,
"DEMAND_ONLY\n");
201 vpr_printf(TIO_MESSAGE_ERROR,
"Unknown base_cost_type\n");
204 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.fixed_channel_width: ");
206 vpr_printf(TIO_MESSAGE_INFO,
"NO_FIXED_CHANNEL_WIDTH\n");
208 vpr_printf(TIO_MESSAGE_INFO,
"%d\n", RouterOpts.fixed_channel_width);
211 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.acc_fac: %f\n", RouterOpts.acc_fac);
212 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.bb_factor: %d\n", RouterOpts.bb_factor);
213 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.bend_cost: %f\n", RouterOpts.bend_cost);
214 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.first_iter_pres_fac: %f\n", RouterOpts.first_iter_pres_fac);
215 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.initial_pres_fac: %f\n", RouterOpts.initial_pres_fac);
216 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.pres_fac_mult: %f\n", RouterOpts.pres_fac_mult);
217 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.max_router_iterations: %d\n", RouterOpts.max_router_iterations);
220 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.astar_fac: %f\n", RouterOpts.astar_fac);
221 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.criticality_exp: %f\n", RouterOpts.criticality_exp);
222 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.max_criticality: %f\n", RouterOpts.max_criticality);
225 assert(
GLOBAL == RouterOpts.route_type);
227 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.router_algorithm: ");
228 switch (RouterOpts.router_algorithm) {
230 vpr_printf(TIO_MESSAGE_INFO,
"BREADTH_FIRST\n");
233 vpr_printf(TIO_MESSAGE_INFO,
"TIMING_DRIVEN\n");
239 vpr_printf(TIO_MESSAGE_ERROR,
"Unknown router algorithm\n");
242 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.base_cost_type: ");
243 switch (RouterOpts.base_cost_type) {
245 vpr_printf(TIO_MESSAGE_INFO,
"INTRINSIC_DELAY\n");
248 vpr_printf(TIO_MESSAGE_INFO,
"DELAY_NORMALIZED\n");
251 vpr_printf(TIO_MESSAGE_INFO,
"DEMAND_ONLY\n");
254 vpr_printf(TIO_MESSAGE_ERROR,
"Unknown router base cost type\n");
257 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.fixed_channel_width: ");
259 vpr_printf(TIO_MESSAGE_INFO,
"NO_FIXED_CHANNEL_WIDTH\n");
261 vpr_printf(TIO_MESSAGE_INFO,
"%d\n", RouterOpts.fixed_channel_width);
264 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.acc_fac: %f\n", RouterOpts.acc_fac);
265 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.bb_factor: %d\n", RouterOpts.bb_factor);
266 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.bend_cost: %f\n", RouterOpts.bend_cost);
267 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.first_iter_pres_fac: %f\n", RouterOpts.first_iter_pres_fac);
268 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.initial_pres_fac: %f\n", RouterOpts.initial_pres_fac);
269 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.pres_fac_mult: %f\n", RouterOpts.pres_fac_mult);
270 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.max_router_iterations: %d\n", RouterOpts.max_router_iterations);
272 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.astar_fac: %f\n", RouterOpts.astar_fac);
273 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.criticality_exp: %f\n", RouterOpts.criticality_exp);
274 vpr_printf(TIO_MESSAGE_INFO,
"RouterOpts.max_criticality: %f\n", RouterOpts.max_criticality);
287 vpr_printf(TIO_MESSAGE_INFO,
"TIMING_ANALYSIS_ONLY\n");
290 vpr_printf(TIO_MESSAGE_ERROR,
"Unknown VPR operation\n");
299 vpr_printf(TIO_MESSAGE_INFO,
"PlacerOpts.place_freq: ");
300 switch (PlacerOpts.place_freq) {
305 vpr_printf(TIO_MESSAGE_INFO,
"PLACE_ALWAYS\n");
308 vpr_printf(TIO_MESSAGE_INFO,
"PLACE_NEVER\n");
311 vpr_printf(TIO_MESSAGE_ERROR,
"Unknown Place Freq\n");
316 vpr_printf(TIO_MESSAGE_INFO,
"PlacerOpts.place_algorithm: ");
317 switch (PlacerOpts.place_algorithm) {
319 vpr_printf(TIO_MESSAGE_INFO,
"BOUNDING_BOX_PLACE\n");
322 vpr_printf(TIO_MESSAGE_INFO,
"NET_TIMING_DRIVEN_PLACE\n");
325 vpr_printf(TIO_MESSAGE_INFO,
"PATH_TIMING_DRIVEN_PLACE\n");
328 vpr_printf(TIO_MESSAGE_ERROR,
"Unknown placement algorithm\n");
331 vpr_printf(TIO_MESSAGE_INFO,
"PlacerOpts.pad_loc_type: ");
332 switch (PlacerOpts.pad_loc_type) {
340 vpr_printf(TIO_MESSAGE_INFO,
"USER '%s'\n", PlacerOpts.pad_loc_file);
343 vpr_printf(TIO_MESSAGE_INFO,
"Unknown I/O pad location type\n");
347 vpr_printf(TIO_MESSAGE_INFO,
"PlacerOpts.place_cost_exp: %f\n", PlacerOpts.place_cost_exp);
350 vpr_printf(TIO_MESSAGE_INFO,
"PlacerOpts.place_chan_width: %d\n", PlacerOpts.place_chan_width);
355 vpr_printf(TIO_MESSAGE_INFO,
"PlacerOpts.inner_loop_recompute_divider: %d\n", PlacerOpts.inner_loop_recompute_divider);
356 vpr_printf(TIO_MESSAGE_INFO,
"PlacerOpts.recompute_crit_iter: %d\n", PlacerOpts.recompute_crit_iter);
357 vpr_printf(TIO_MESSAGE_INFO,
"PlacerOpts.timing_tradeoff: %f\n", PlacerOpts.timing_tradeoff);
358 vpr_printf(TIO_MESSAGE_INFO,
"PlacerOpts.td_place_exp_first: %f\n", PlacerOpts.td_place_exp_first);
359 vpr_printf(TIO_MESSAGE_INFO,
"PlacerOpts.td_place_exp_last: %f\n", PlacerOpts.td_place_exp_last);
362 vpr_printf(TIO_MESSAGE_INFO,
"PlaceOpts.seed: %d\n", PlacerOpts.seed);
373 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.allow_early_exit: %s", (PackerOpts.allow_early_exit ?
"TRUE\n" :
"FALSE\n"));
374 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.allow_unrelated_clustering: %s", (PackerOpts.allow_unrelated_clustering ?
"TRUE\n" :
"FALSE\n"));
375 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.alpha_clustering: %f\n", PackerOpts.alpha);
376 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.aspect: %f\n", PackerOpts.aspect);
377 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.beta_clustering: %f\n", PackerOpts.beta);
378 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.block_delay: %f\n", PackerOpts.block_delay);
379 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.cluster_seed_type: ");
380 switch (PackerOpts.cluster_seed_type) {
388 vpr_printf(TIO_MESSAGE_INFO,
"Unknown packer cluster_seed_type\n");
391 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.connection_driven: %s", (PackerOpts.connection_driven ?
"TRUE\n" :
"FALSE\n"));
392 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.global_clocks: %s", (PackerOpts.global_clocks ?
"TRUE\n" :
"FALSE\n"));
393 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.hill_climbing_flag: %s", (PackerOpts.hill_climbing_flag ?
"TRUE\n" :
"FALSE\n"));
394 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.inter_cluster_net_delay: %f\n", PackerOpts.inter_cluster_net_delay);
395 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.intra_cluster_net_delay: %f\n", PackerOpts.intra_cluster_net_delay);
396 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.recompute_timing_after: %d\n", PackerOpts.recompute_timing_after);
397 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.sweep_hanging_nets_and_inputs: %s", (PackerOpts.sweep_hanging_nets_and_inputs ?
"TRUE\n" :
"FALSE\n"));
398 vpr_printf(TIO_MESSAGE_INFO,
"PackerOpts.timing_driven: %s", (PackerOpts.timing_driven ?
"TRUE\n" :
"FALSE\n"));
void printClusteredNetlistStats()
struct s_class * class_inf
void * my_calloc(size_t nelem, size_t size)
static void ShowRouterOpts(INP struct s_router_opts RouterOpts)
static void ShowPlacerOpts(INP t_options Options, INP struct s_placer_opts PlacerOpts, INP struct s_annealing_sched AnnealSched)
#define NO_FIXED_CHANNEL_WIDTH
static void ShowRoutingArch(INP struct s_det_routing_arch RoutingArch)
struct s_type_descriptor * type_descriptors
void ShowSetup(INP t_options options, INP t_vpr_setup vpr_setup)
static void ShowAnnealSched(INP struct s_annealing_sched AnnealSched)
static void ShowPackerOpts(INP struct s_packer_opts PackerOpts)
static void ShowOperation(INP enum e_operation Operation)