aboutsummaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
Diffstat (limited to 'generic')
-rw-r--r--generic/arch.cc6
-rw-r--r--generic/arch.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/generic/arch.cc b/generic/arch.cc
index 1f9531c7..a683e34e 100644
--- a/generic/arch.cc
+++ b/generic/arch.cc
@@ -450,6 +450,12 @@ void Arch::unbindPip(PipId pip)
bool Arch::checkPipAvail(PipId pip) const { return pips.at(pip).bound_net == nullptr; }
+bool Arch::checkPipAvailForNet(PipId pip, NetInfo *net) const
+{
+ NetInfo *bound_net = pips.at(pip).bound_net;
+ return bound_net == nullptr || bound_net == net;
+}
+
NetInfo *Arch::getBoundPipNet(PipId pip) const { return pips.at(pip).bound_net; }
NetInfo *Arch::getConflictingPipNet(PipId pip) const { return pips.at(pip).bound_net; }
diff --git a/generic/arch.h b/generic/arch.h
index 1d37b2fd..92260ce0 100644
--- a/generic/arch.h
+++ b/generic/arch.h
@@ -279,6 +279,7 @@ struct Arch : ArchAPI<ArchRanges>
void bindPip(PipId pip, NetInfo *net, PlaceStrength strength) override;
void unbindPip(PipId pip) override;
bool checkPipAvail(PipId pip) const override;
+ bool checkPipAvailForNet(PipId pip, NetInfo *net) const override;
NetInfo *getBoundPipNet(PipId pip) const override;
WireId getConflictingPipWire(PipId pip) const override;
NetInfo *getConflictingPipNet(PipId pip) const override;