From 3d528adfdcf39b0a7fa2b319ce10f32343e4b795 Mon Sep 17 00:00:00 2001 From: gatecat Date: Wed, 16 Jun 2021 13:47:21 +0100 Subject: nexus: Disable center DCC-thrus on 17k device Signed-off-by: gatecat --- nexus/arch.cc | 13 +++++++++++++ nexus/arch.h | 16 ++++++++++++++++ nexus/fasm.cc | 1 - 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/nexus/arch.cc b/nexus/arch.cc index d309c902..f3430968 100644 --- a/nexus/arch.cc +++ b/nexus/arch.cc @@ -171,6 +171,19 @@ Arch::Arch(ArchArgs args) : args(args) BaseArch::init_cell_types(); BaseArch::init_bel_buckets(); + + if (device == "LIFCL-17") { + for (BelId bel : getBelsByTile(37, 10)) { + // These pips currently don't work, due to routing differences between the variants that the DB format needs + // some tweaks to accomodate properly + if (getBelType(bel) != id_DCC) + continue; + WireId w = getBelPinWire(bel, id_CLKI); + for (auto pip : getPipsUphill(w)) + disabled_pips.insert(pip); + } + NPNR_ASSERT(disabled_pips.size() == 4); + } } // ----------------------------------------------------------------------- diff --git a/nexus/arch.h b/nexus/arch.h index 51322f3e..8c330e47 100644 --- a/nexus/arch.h +++ b/nexus/arch.h @@ -918,6 +918,8 @@ struct Arch : BaseArch // inverse of the above for name->object mapping dict id_to_x, id_to_y; + pool disabled_pips; + // ------------------------------------------------- std::string getChipName() const override; @@ -976,6 +978,20 @@ struct Arch : BaseArch return tileStatus[bel.tile].boundcells[bel.index] == nullptr; } + bool checkPipAvail(PipId pip) const override + { + if (disabled_pips.count(pip)) + return false; + return BaseArch::checkPipAvail(pip); + } + + bool checkPipAvailForNet(PipId pip, NetInfo *net) const override + { + if (disabled_pips.count(pip)) + return false; + return BaseArch::checkPipAvailForNet(pip, net); + } + CellInfo *getBoundBelCell(BelId bel) const override { NPNR_ASSERT(bel != BelId()); diff --git a/nexus/fasm.cc b/nexus/fasm.cc index f39a30b0..6715af47 100644 --- a/nexus/fasm.cc +++ b/nexus/fasm.cc @@ -312,7 +312,6 @@ struct NexusFasmWriter } } NPNR_ASSERT(found); - } } -- cgit v1.2.3