aboutsummaryrefslogtreecommitdiffstats
path: root/nexus/arch.h
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-06-16 13:47:21 +0100
committergatecat <gatecat@ds0.me>2021-06-16 13:52:10 +0100
commit3d528adfdcf39b0a7fa2b319ce10f32343e4b795 (patch)
treed786085506cf724a9e8d1bc5d8ba74f39f756f3f /nexus/arch.h
parent84fc2877c63b05c38172d8e3dd071bca28fbaba3 (diff)
downloadnextpnr-3d528adfdcf39b0a7fa2b319ce10f32343e4b795.tar.gz
nextpnr-3d528adfdcf39b0a7fa2b319ce10f32343e4b795.tar.bz2
nextpnr-3d528adfdcf39b0a7fa2b319ce10f32343e4b795.zip
nexus: Disable center DCC-thrus on 17k device
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'nexus/arch.h')
-rw-r--r--nexus/arch.h16
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());