From 80f7ef4b4b5a632e73c077da5810b218969132bc Mon Sep 17 00:00:00 2001 From: David Shah Date: Tue, 27 Nov 2018 19:06:55 +0000 Subject: ice40: Finer-grained control of global promotion Signed-off-by: David Shah --- ice40/main.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'ice40/main.cc') diff --git a/ice40/main.cc b/ice40/main.cc index fcc56d04..4b6a9e42 100644 --- a/ice40/main.cc +++ b/ice40/main.cc @@ -65,6 +65,9 @@ po::options_description Ice40CommandHandler::getArchOptions() specific.add_options()("pcf", po::value(), "PCF constraints file to ingest"); specific.add_options()("asc", po::value(), "asc bitstream file to write"); specific.add_options()("read", po::value(), "asc bitstream file to read"); + specific.add_options()("promote-logic", + "enable promotion of 'logic' globals (in addition to clk/ce/sr by default)"); + specific.add_options()("no-promote-globals", "disable all global promotion"); specific.add_options()("tmfuzz", "run path delay estimate fuzzer"); return specific; } @@ -152,7 +155,13 @@ std::unique_ptr Ice40CommandHandler::createContext() if (vm.count("package")) chipArgs.package = vm["package"].as(); - return std::unique_ptr(new Context(chipArgs)); + auto ctx = std::unique_ptr(new Context(chipArgs)); + + if (vm.count("promote-logic")) + ctx->settings[ctx->id("promote_logic")] = "1"; + if (vm.count("no-promote-globals")) + ctx->settings[ctx->id("no_promote_globals")] = "1"; + return ctx; } int main(int argc, char *argv[]) -- cgit v1.2.3