aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/bitstream.cc
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-07-06 11:45:27 +0100
committergatecat <gatecat@ds0.me>2021-07-06 11:45:37 +0100
commit81c549549d88640ed77fc2b1f3da52a10b4f93ce (patch)
tree76a618926561d9cb1ae2e3b13cf588731514736d /ecp5/bitstream.cc
parent8a9fb810369aeb5eed128ef4e7d4de456ef1ec8f (diff)
downloadnextpnr-81c549549d88640ed77fc2b1f3da52a10b4f93ce.tar.gz
nextpnr-81c549549d88640ed77fc2b1f3da52a10b4f93ce.tar.bz2
nextpnr-81c549549d88640ed77fc2b1f3da52a10b4f93ce.zip
ecp5: Add DCSC support
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'ecp5/bitstream.cc')
-rw-r--r--ecp5/bitstream.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/ecp5/bitstream.cc b/ecp5/bitstream.cc
index c92de083..a544f2b7 100644
--- a/ecp5/bitstream.cc
+++ b/ecp5/bitstream.cc
@@ -1019,6 +1019,11 @@ void write_bitstream(Context *ctx, std::string base_config_file, std::string tex
tg.config.add_enum(std::string("DCC_") + belname[0] + belname.substr(4) + ".MODE", "DCCA");
cc.tilegroups.push_back(tg);
}
+ } else if (ci->type == ctx->id("DCSC")) {
+ std::set<std::string> dcs_tiles{"EBR_CMUX_LL", "EBR_CMUX_UL", "EBR_CMUX_LL_25K", "DSP_CMUX_UL"};
+ std::string tile = ctx->get_tile_by_type_loc(bel.location.y, bel.location.x, dcs_tiles);
+ std::string dcs = ctx->loc_info(bel)->bel_data[bel.index].name.get();
+ cc.tiles[tile].add_enum(dcs + ".DCSMODE", str_or_default(ci->attrs, ctx->id("DCSMODE"), "POS"));
} else if (ci->type == ctx->id("DP16KD")) {
TileGroup tg;
Loc loc = ctx->getBelLocation(ci->bel);