aboutsummaryrefslogtreecommitdiffstats
path: root/common/command.cc
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2019-06-02 10:01:20 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2019-06-02 10:01:20 +0200
commitd0273f7faa9f7d75350f421966a7d5cbb4ccc9ba (patch)
treed69c63e644a61ea40c379978b4e89bf9b78bed0a /common/command.cc
parent5c47b6034efd3898b666a18dd81cf4ae633a18c1 (diff)
downloadnextpnr-d0273f7faa9f7d75350f421966a7d5cbb4ccc9ba.tar.gz
nextpnr-d0273f7faa9f7d75350f421966a7d5cbb4ccc9ba.tar.bz2
nextpnr-d0273f7faa9f7d75350f421966a7d5cbb4ccc9ba.zip
option to disable packing
Diffstat (limited to 'common/command.cc')
-rw-r--r--common/command.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/common/command.cc b/common/command.cc
index dc83f84d..e81967b4 100644
--- a/common/command.cc
+++ b/common/command.cc
@@ -139,6 +139,7 @@ po::options_description CommandHandler::getGeneralOptions()
general.add_options()("pack-only", "pack design only without placement or routing");
general.add_options()("no-route", "process design without routing");
general.add_options()("no-place", "process design without placement");
+ general.add_options()("no-pack", "process design without packing");
general.add_options()("ignore-loops", "ignore combinational loops in timing analysis");
@@ -285,7 +286,7 @@ int CommandHandler::executeMain(std::unique_ptr<Context> ctx)
} else
#endif
if (vm.count("json") || vm.count("load")) {
- bool do_pack = true;
+ bool do_pack = vm.count("pack-only")!=0 || vm.count("no-pack")==0;
bool do_place = vm.count("pack-only")==0 && vm.count("no-place")==0;
bool do_route = vm.count("pack-only")==0 && vm.count("no-route")==0;
@@ -293,11 +294,14 @@ int CommandHandler::executeMain(std::unique_ptr<Context> ctx)
run_script_hook("pre-pack");
if (!ctx->pack() && !ctx->force)
log_error("Packing design failed.\n");
- assign_budget(ctx.get());
- ctx->check();
- print_utilisation(ctx.get());
+ } else {
+ ctx->assignArchInfo();
}
+ assign_budget(ctx.get());
+ ctx->check();
+ print_utilisation(ctx.get());
+
if (do_place) {
run_script_hook("pre-place");
if (!ctx->place() && !ctx->force)