aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/arch_place.cc
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2019-06-22 16:57:00 +0100
committerDavid Shah <dave@ds0.me>2019-08-07 14:22:47 +0100
commit661237eb64a694a11900f736b07132ef8da4b0dd (patch)
tree68f7e853f8182adf931100da3c69d1ab9379a568 /ecp5/arch_place.cc
parent90364fc3fad72f8c23b7200160f1acc0343c94d9 (diff)
downloadnextpnr-661237eb64a694a11900f736b07132ef8da4b0dd.tar.gz
nextpnr-661237eb64a694a11900f736b07132ef8da4b0dd.tar.bz2
nextpnr-661237eb64a694a11900f736b07132ef8da4b0dd.zip
ecp5: Add --out-of-context for building hard macros
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'ecp5/arch_place.cc')
-rw-r--r--ecp5/arch_place.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/ecp5/arch_place.cc b/ecp5/arch_place.cc
index b5c11851..18374c07 100644
--- a/ecp5/arch_place.cc
+++ b/ecp5/arch_place.cc
@@ -152,7 +152,10 @@ void Arch::permute_luts()
inputs.emplace_back(crit, i);
}
// Least critical first (A input is slowest)
- std::sort(inputs.begin(), inputs.end());
+
+ // Avoid permuting locked LUTs (e.g. from an OOC submodule)
+ if (ci->belStrength <= STRENGTH_STRONG)
+ std::sort(inputs.begin(), inputs.end());
for (int i = 0; i < 4; i++) {
IdString p = port_names.at(i);
// log_info("%s %s %f\n", p.c_str(ctx), port_names.at(inputs.at(i).second).c_str(ctx), inputs.at(i).first);