aboutsummaryrefslogtreecommitdiffstats
path: root/ice40/main.cc
diff options
context:
space:
mode:
authorDavid Shah <davey1576@gmail.com>2018-12-26 16:27:29 +0000
committerGitHub <noreply@github.com>2018-12-26 16:27:29 +0000
commiteb456ef476e8342b4709d71cbff6ef22a714d6ec (patch)
tree3c0c56e5755e51d9d136f5243b9148efeffc62b2 /ice40/main.cc
parent6c01f9b4ac5321a56d7deaf94bca28c5a2457caa (diff)
parent4444a39fd481cafebb527850e9c7fff38d846154 (diff)
downloadnextpnr-eb456ef476e8342b4709d71cbff6ef22a714d6ec.tar.gz
nextpnr-eb456ef476e8342b4709d71cbff6ef22a714d6ec.tar.bz2
nextpnr-eb456ef476e8342b4709d71cbff6ef22a714d6ec.zip
Merge pull request #196 from YosysHQ/pio_error
ice40: Improve handling of unconstrained IO
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;
}