aboutsummaryrefslogtreecommitdiffstats
path: root/ice40/arch.h
diff options
context:
space:
mode:
authorSergiusz Bazanski <q3k@q3k.org>2018-07-14 18:50:15 +0100
committerSergiusz Bazanski <q3k@q3k.org>2018-07-14 18:50:15 +0100
commit22330402018a212efd4ef2e337e34af2e79eb875 (patch)
treec9602093138de0424dfe9ffbe37e645ee4a56c48 /ice40/arch.h
parent339198b394b7f2cdd3bafb2c8c819c1561813f65 (diff)
downloadnextpnr-22330402018a212efd4ef2e337e34af2e79eb875.tar.gz
nextpnr-22330402018a212efd4ef2e337e34af2e79eb875.tar.bz2
nextpnr-22330402018a212efd4ef2e337e34af2e79eb875.zip
Revert "Remove legacy access to state via Arch"
This reverts commit 18b4b316782035daa259d65d26ea733ca4d16bea.
Diffstat (limited to 'ice40/arch.h')
-rw-r--r--ice40/arch.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/ice40/arch.h b/ice40/arch.h
index 25ed8ebf..ec1e456f 100644
--- a/ice40/arch.h
+++ b/ice40/arch.h
@@ -373,6 +373,34 @@ class Arch : public BaseCtx
// -------------------------------------------------
+ /// Wrappers around getting a r(w)proxy and calling a single method.
+ // Deprecated: please acquire a proxy yourself and call the methods
+ // you want on it.
+ // Warning: these will content with locks taken by the r(w)proxies, and
+ // thus can cause difficult to debug deadlocks - we'll be getting rid of
+ // them because of that.
+ void unbindWire(WireId wire);
+ void unbindPip(PipId pip);
+ void unbindBel(BelId bel);
+ void bindWire(WireId wire, IdString net, PlaceStrength strength);
+ void bindPip(PipId pip, IdString net, PlaceStrength strength);
+ void bindBel(BelId bel, IdString cell, PlaceStrength strength);
+ bool checkWireAvail(WireId wire) const;
+ bool checkPipAvail(PipId pip) const;
+ bool checkBelAvail(BelId bel) const;
+ WireId getWireByName(IdString name) const;
+ WireId getWireBelPin(BelId bel, PortPin pin) const;
+ PipId getPipByName(IdString name) const;
+ IdString getConflictingWireNet(WireId wire) const;
+ IdString getConflictingPipNet(PipId pip) const;
+ IdString getConflictingBelCell(BelId bel) const;
+ IdString getBoundWireNet(WireId wire) const;
+ IdString getBoundPipNet(PipId pip) const;
+ IdString getBoundBelCell(BelId bel) const;
+ BelId getBelByName(IdString name) const;
+
+ // -------------------------------------------------
+
/// Methods to get chip info - don't need to use a wrapper, as these are
/// static per lifetime of object.