aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/pack.cc
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2018-11-16 17:36:34 +0000
committerDavid Shah <dave@ds0.me>2018-11-16 17:36:34 +0000
commit458aa20161504c06dbfc282be3dd7717a575a31e (patch)
tree03ec70d5c31c4b46aacf8df8edf287e39f9d2150 /ecp5/pack.cc
parent3ae8b86003eb6b378c10ddd0f602c40abe28552b (diff)
downloadnextpnr-458aa20161504c06dbfc282be3dd7717a575a31e.tar.gz
nextpnr-458aa20161504c06dbfc282be3dd7717a575a31e.tar.bz2
nextpnr-458aa20161504c06dbfc282be3dd7717a575a31e.zip
ecp5: More optimal LUT6 placement
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'ecp5/pack.cc')
-rw-r--r--ecp5/pack.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/ecp5/pack.cc b/ecp5/pack.cc
index b3f19327..08969f87 100644
--- a/ecp5/pack.cc
+++ b/ecp5/pack.cc
@@ -435,7 +435,6 @@ class Ecp5Packer
replace_port(ci, ctx->id("SD"), slice1, id_M1);
replace_port(ci, ctx->id("Z"), slice1, id_OFX1);
slice0->constr_z = 1;
- slice0->constr_abs_z = true;
slice0->constr_x = 0;
slice0->constr_y = 0;
slice0->constr_parent = slice1;
@@ -1294,6 +1293,10 @@ void Arch::assignArchInfo()
ci->sliceInfo.clkmux = id(str_or_default(ci->params, id_CLKMUX, "CLK"));
ci->sliceInfo.lsrmux = id(str_or_default(ci->params, id_LSRMUX, "LSR"));
ci->sliceInfo.srmode = id(str_or_default(ci->params, id_SRMODE, "LSR_OVER_CE"));
+ ci->sliceInfo.has_l6mux = false;
+ if (ci->ports.count(id_FXA) && ci->ports[id_FXA].net != nullptr &&
+ ci->ports[id_FXA].net->driver.port == id_OFX0)
+ ci->sliceInfo.has_l6mux = true;
}
}
}