diff options
author | David Shah <dave@ds0.me> | 2019-02-08 13:37:46 +0000 |
---|---|---|
committer | David Shah <dave@ds0.me> | 2019-02-08 13:44:15 +0000 |
commit | 882775acef73e63db3a9a6f9c1f4df192071ff44 (patch) | |
tree | ceb5528da3123d2492a45b007da67746c5ef0d7f /ecp5/bitstream.cc | |
parent | db990d21752ad6eaecc0ca809d8eef4a910cfb03 (diff) | |
download | nextpnr-882775acef73e63db3a9a6f9c1f4df192071ff44.tar.gz nextpnr-882775acef73e63db3a9a6f9c1f4df192071ff44.tar.bz2 nextpnr-882775acef73e63db3a9a6f9c1f4df192071ff44.zip |
ecp5: Embed baseconfig
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'ecp5/bitstream.cc')
-rw-r--r-- | ecp5/bitstream.cc | 44 |
1 files changed, 42 insertions, 2 deletions
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 |