diff options
Diffstat (limited to 'nexus/arch.h')
-rw-r--r-- | nexus/arch.h | 16 |
1 files changed, 16 insertions, 0 deletions
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<ArchRanges> // inverse of the above for name->object mapping dict<IdString, int> id_to_x, id_to_y; + pool<PipId> disabled_pips; + // ------------------------------------------------- std::string getChipName() const override; @@ -976,6 +978,20 @@ struct Arch : BaseArch<ArchRanges> 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()); |