From 4444a39fd481cafebb527850e9c7fff38d846154 Mon Sep 17 00:00:00 2001 From: David Shah Date: Wed, 26 Dec 2018 16:00:19 +0000 Subject: ice40: Improve handling of unconstrained IO Signed-off-by: David Shah --- ice40/main.cc | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'ice40/main.cc') diff --git a/ice40/main.cc b/ice40/main.cc index 543bd229..286f68db 100644 --- a/ice40/main.cc +++ b/ice40/main.cc @@ -70,6 +70,8 @@ po::options_description Ice40CommandHandler::getArchOptions() specific.add_options()("no-promote-globals", "disable all global promotion"); specific.add_options()("opt-timing", "run post-placement timing optimisation pass (experimental)"); specific.add_options()("tmfuzz", "run path delay estimate fuzzer"); + specific.add_options()("pcf-allow-unconstrained", "don't require PCF to constrain all IO"); + return specific; } void Ice40CommandHandler::validate() @@ -87,6 +89,8 @@ void Ice40CommandHandler::customAfterLoad(Context *ctx) std::ifstream pcf(filename); if (!apply_pcf(ctx, filename, pcf)) log_error("Loading PCF failed.\n"); + } else { + log_warning("No PCF file specified; IO pins will be placed automatically\n"); } } void Ice40CommandHandler::customBitstream(Context *ctx) @@ -164,6 +168,9 @@ std::unique_ptr Ice40CommandHandler::createContext() ctx->settings[ctx->id("no_promote_globals")] = "1"; if (vm.count("opt-timing")) ctx->settings[ctx->id("opt_timing")] = "1"; + if (vm.count("pcf-allow-unconstrained")) + ctx->settings[ctx->id("pcf_allow_unconstrained")] = "1"; + return ctx; } -- cgit v1.2.3