aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/pack.cc
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-08-02 20:58:45 +0100
committergatecat <gatecat@ds0.me>2021-08-02 20:58:45 +0100
commit5482b9a0c600ccefe53fcdde1237a68895cf2204 (patch)
tree4d12d5c2a83108e5556db14e942a5372f5f36fa9 /ecp5/pack.cc
parentef1fbfc651ea328dfb703c3b79d5b9ea123f2f0d (diff)
downloadnextpnr-5482b9a0c600ccefe53fcdde1237a68895cf2204.tar.gz
nextpnr-5482b9a0c600ccefe53fcdde1237a68895cf2204.tar.bz2
nextpnr-5482b9a0c600ccefe53fcdde1237a68895cf2204.zip
ecp5: Copy REGMODE in PDP mode to both A and B ports
Signed-off-by: gatecat <gatecat@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 1336c609..d0077375 100644
--- a/ecp5/pack.cc
+++ b/ecp5/pack.cc
@@ -1488,7 +1488,10 @@ class Ecp5Packer
rename_param(ci, "CLKRMUX", "CLKRMUX");
rename_param(ci, "CSDECODE_W", "CSDECODE_A");
rename_param(ci, "CSDECODE_R", "CSDECODE_B");
- rename_param(ci, "REGMODE", "REGMODE_B");
+ std::string outreg = str_or_default(ci->params, ctx->id("REGMODE"), "NOREG");
+ ci->params[ctx->id("REGMODE_A")] = outreg;
+ ci->params[ctx->id("REGMODE_B")] = outreg;
+ ci->params.erase(ctx->id("REGMODE"));
rename_param(ci, "DATA_WIDTH_R", "DATA_WIDTH_B");
if (ci->ports.count(id_RST)) {
autocreate_empty_port(ci, id_RSTA);