From e7d81913a48bffd970f7a92acc44eb36d9f996f7 Mon Sep 17 00:00:00 2001 From: Keith Rothman <537074+litghost@users.noreply.github.com> Date: Thu, 18 Mar 2021 16:31:40 -0700 Subject: Add "checkPipAvailForNet" to Arch API. This is important for distiguishing valid pseudo pips in the FPGA interchange arch. This also avoids a double or triple lookup of pip->net map. Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com> --- generic/arch.cc | 6 ++++++ generic/arch.h | 1 + 2 files changed, 7 insertions(+) (limited to 'generic') 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 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; -- cgit v1.2.3