aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/pack.cc
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-12-13 16:04:45 +0000
committergatecat <gatecat@ds0.me>2021-12-13 20:22:06 +0000
commitf36188f2e18783ea692f8b6132712a0d1da6b6b7 (patch)
treed63db5e03f36e4f8598d1bcff0b475660ea57d6b /ecp5/pack.cc
parent8720d79f21ac052138426b3268981ccd1926342a (diff)
downloadnextpnr-f36188f2e18783ea692f8b6132712a0d1da6b6b7.tar.gz
nextpnr-f36188f2e18783ea692f8b6132712a0d1da6b6b7.tar.bz2
nextpnr-f36188f2e18783ea692f8b6132712a0d1da6b6b7.zip
ecp5: LUT permutation support
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'ecp5/pack.cc')
-rw-r--r--ecp5/pack.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/ecp5/pack.cc b/ecp5/pack.cc
index cbf882a8..85d92336 100644
--- a/ecp5/pack.cc
+++ b/ecp5/pack.cc
@@ -3253,7 +3253,9 @@ 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.is_carry = str_or_default(ci->params, id("MODE"), "LOGIC") == "CCU2";
+ std::string mode = str_or_default(ci->params, id("MODE"), "LOGIC");
+ ci->sliceInfo.is_carry = (mode == "CCU2");
+ ci->sliceInfo.is_memory = (mode == "DPRAM" || mode == "RAMW");
ci->sliceInfo.sd0 = std::stoi(str_or_default(ci->params, id("REG0_SD"), "0"));
ci->sliceInfo.sd1 = std::stoi(str_or_default(ci->params, id("REG1_SD"), "0"));
ci->sliceInfo.has_l6mux = false;