aboutsummaryrefslogtreecommitdiffstats
path: root/common/arch_api.h
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-05-06 13:58:08 +0100
committerGitHub <noreply@github.com>2021-05-06 13:58:08 +0100
commitc322cda3f875a5e5dd2575d3a390cbe1cee073e0 (patch)
treefcd843131002f8986decf8dcd9352cf3ebd54290 /common/arch_api.h
parented17091e6ada98a55396186a22c748abf3fca310 (diff)
parent0d6be6f4749174f4a6938a675456cb663edc47cb (diff)
downloadnextpnr-c322cda3f875a5e5dd2575d3a390cbe1cee073e0.tar.gz
nextpnr-c322cda3f875a5e5dd2575d3a390cbe1cee073e0.tar.bz2
nextpnr-c322cda3f875a5e5dd2575d3a390cbe1cee073e0.zip
Merge pull request #688 from YosysHQ/gatecat/new-cluster-api
New cluster API
Diffstat (limited to 'common/arch_api.h')
-rw-r--r--common/arch_api.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/common/arch_api.h b/common/arch_api.h
index 7ed81434..01c29a84 100644
--- a/common/arch_api.h
+++ b/common/arch_api.h
@@ -139,6 +139,13 @@ template <typename R> struct ArchAPI : BaseCtx
virtual typename R::CellTypeRangeT getCellTypes() const = 0;
virtual typename R::BelBucketRangeT getBelBuckets() const = 0;
virtual typename R::BucketBelRangeT getBelsInBucket(BelBucketId bucket) const = 0;
+ // Cluster methods
+ virtual CellInfo *getClusterRootCell(ClusterId cluster) const = 0;
+ virtual ArcBounds getClusterBounds(ClusterId cluster) const = 0;
+ virtual Loc getClusterOffset(const CellInfo *cell) const = 0;
+ virtual bool isClusterStrict(const CellInfo *cell) const = 0;
+ virtual bool getClusterPlacement(ClusterId cluster, BelId root_bel,
+ std::vector<std::pair<CellInfo *, BelId>> &placement) const = 0;
// Flow methods
virtual bool pack() = 0;
virtual bool place() = 0;