@@ -97,6 +97,7 @@ void SetupVPR(const t_options* Options,
9797 t_netlist_opts* NetlistOpts,
9898 t_packer_opts* PackerOpts,
9999 t_placer_opts* PlacerOpts,
100+ t_ap_opts* APOpts,
100101 t_annealing_sched* AnnealSched,
101102 t_router_opts* RouterOpts,
102103 t_analysis_opts* AnalysisOpts,
@@ -244,11 +245,13 @@ void SetupVPR(const t_options* Options,
244245 if (!Options->do_packing
245246 && !Options->do_legalize
246247 && !Options->do_placement
248+ && !Options->do_analytical_placement
247249 && !Options->do_routing
248250 && !Options->do_analysis ) {
249251 // run all stages if none specified
250252 PackerOpts->doPacking = STAGE_DO;
251253 PlacerOpts->doPlacement = STAGE_DO;
254+ APOpts->doAP = STAGE_SKIP; // AP not default.
252255 RouterOpts->doRouting = STAGE_DO;
253256 AnalysisOpts->doAnalysis = STAGE_AUTO; // Deferred until implementation status known
254257 } else {
@@ -276,6 +279,14 @@ void SetupVPR(const t_options* Options,
276279 PlacerOpts->doPlacement = STAGE_DO;
277280 }
278281
282+ if (Options->do_analytical_placement ) {
283+ // In the Analytical Placement flow, packing and placement are
284+ // integrated. Thus, these stages are skipped.
285+ PackerOpts->doPacking = STAGE_SKIP;
286+ PlacerOpts->doPlacement = STAGE_SKIP;
287+ APOpts->doAP = STAGE_DO;
288+ }
289+
279290 if (Options->do_packing ) {
280291 PackerOpts->doPacking = STAGE_DO;
281292 }
0 commit comments