From 882775acef73e63db3a9a6f9c1f4df192071ff44 Mon Sep 17 00:00:00 2001 From: David Shah Date: Fri, 8 Feb 2019 13:37:46 +0000 Subject: ecp5: Embed baseconfig Signed-off-by: David Shah --- ecp5/bitstream.cc | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) (limited to 'ecp5/bitstream.cc') diff --git a/ecp5/bitstream.cc b/ecp5/bitstream.cc index bec33f67..cc2b2894 100644 --- a/ecp5/bitstream.cc +++ b/ecp5/bitstream.cc @@ -34,6 +34,18 @@ NEXTPNR_NAMESPACE_BEGIN +namespace BaseConfigs { +void config_empty_lfe5u_25f(ChipConfig &cc); +void config_empty_lfe5u_45f(ChipConfig &cc); +void config_empty_lfe5u_85f(ChipConfig &cc); +void config_empty_lfe5um_25f(ChipConfig &cc); +void config_empty_lfe5um_45f(ChipConfig &cc); +void config_empty_lfe5um_85f(ChipConfig &cc); +void config_empty_lfe5um5g_25f(ChipConfig &cc); +void config_empty_lfe5um5g_45f(ChipConfig &cc); +void config_empty_lfe5um5g_85f(ChipConfig &cc); +} // namespace BaseConfigs + // Convert an absolute wire name to a relative Trellis one static std::string get_trellis_wirename(Context *ctx, Location loc, WireId wire) { @@ -538,8 +550,36 @@ void write_bitstream(Context *ctx, std::string base_config_file, std::string tex } config_file >> cc; } else { - cc.chip_name = ctx->getChipName(); - // TODO: .bit metadata + switch (ctx->args.type) { + case ArchArgs::LFE5U_25F: + BaseConfigs::config_empty_lfe5u_25f(cc); + break; + case ArchArgs::LFE5U_45F: + BaseConfigs::config_empty_lfe5u_45f(cc); + break; + case ArchArgs::LFE5U_85F: + BaseConfigs::config_empty_lfe5u_85f(cc); + break; + case ArchArgs::LFE5UM_25F: + BaseConfigs::config_empty_lfe5um_25f(cc); + break; + case ArchArgs::LFE5UM_45F: + BaseConfigs::config_empty_lfe5um_45f(cc); + break; + case ArchArgs::LFE5UM_85F: + BaseConfigs::config_empty_lfe5um_85f(cc); + break; + case ArchArgs::LFE5UM5G_25F: + BaseConfigs::config_empty_lfe5um5g_25f(cc); + break; + case ArchArgs::LFE5UM5G_45F: + BaseConfigs::config_empty_lfe5um5g_45f(cc); + break; + case ArchArgs::LFE5UM5G_85F: + BaseConfigs::config_empty_lfe5um5g_85f(cc); + default: + NPNR_ASSERT_FALSE("Unsupported device type"); + } } // Clear out DCU tieoffs in base config if DCU used -- cgit v1.2.3