aboutsummaryrefslogtreecommitdiffstats
path: root/gowin/main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gowin/main.cc')
-rw-r--r--gowin/main.cc16
1 files changed, 15 insertions, 1 deletions
diff --git a/gowin/main.cc b/gowin/main.cc
index a45a49d4..36bd8656 100644
--- a/gowin/main.cc
+++ b/gowin/main.cc
@@ -51,6 +51,8 @@ po::options_description GowinCommandHandler::getArchOptions()
specific.add_options()("device", po::value<std::string>(), "device name");
specific.add_options()("family", po::value<std::string>(), "family name");
specific.add_options()("cst", po::value<std::string>(), "physical constraints file");
+ specific.add_options()("enable-globals", "separate routing of the clocks");
+ specific.add_options()("enable-auto-longwires", "automatic detection and routing of long wires");
return specific;
}
@@ -79,7 +81,19 @@ std::unique_ptr<Context> GowinCommandHandler::createContext(dict<std::string, Pr
chipArgs.family = buf;
}
chipArgs.partnumber = match[0];
- return std::unique_ptr<Context>(new Context(chipArgs));
+
+ auto ctx = std::unique_ptr<Context>(new Context(chipArgs));
+ // routing options
+ // the default values will change in the future
+ ctx->settings[ctx->id("arch.enable-globals")] = 0;
+ ctx->settings[ctx->id("arch.enable-auto-longwires")] = 0;
+ if (vm.count("enable-globals")) {
+ ctx->settings[ctx->id("arch.enable-globals")] = 1;
+ }
+ if (vm.count("enable-auto-longwires")) {
+ ctx->settings[ctx->id("arch.enable-auto-longwires")] = 1;
+ }
+ return ctx;
}
void GowinCommandHandler::customAfterLoad(Context *ctx)