aboutsummaryrefslogtreecommitdiffstats
path: root/ice40/main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ice40/main.cc')
-rw-r--r--ice40/main.cc7
1 files changed, 7 insertions, 0 deletions
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<Context> 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;
}