aboutsummaryrefslogtreecommitdiffstats
path: root/dummy/arch_place.h
diff options
context:
space:
mode:
authorDavid Shah <davey1576@gmail.com>2018-06-19 14:44:49 +0200
committerDavid Shah <davey1576@gmail.com>2018-06-19 14:44:49 +0200
commit90086698679d8a3c5f9e58d619bc18a284ab17e1 (patch)
treef2b88758860ff46a3d0502780c623cc645b5ec9c /dummy/arch_place.h
parent786bd6b25a2d7db691e70fd2bc9a60c796e0df35 (diff)
downloadnextpnr-90086698679d8a3c5f9e58d619bc18a284ab17e1.tar.gz
nextpnr-90086698679d8a3c5f9e58d619bc18a284ab17e1.tar.bz2
nextpnr-90086698679d8a3c5f9e58d619bc18a284ab17e1.zip
Major performance improvement to placement validity check
Signed-off-by: David Shah <davey1576@gmail.com>
Diffstat (limited to 'dummy/arch_place.h')
-rw-r--r--dummy/arch_place.h20
1 files changed, 13 insertions, 7 deletions
diff --git a/dummy/arch_place.h b/dummy/arch_place.h
index 3abd80c5..1111ac42 100644
--- a/dummy/arch_place.h
+++ b/dummy/arch_place.h
@@ -26,13 +26,19 @@ NEXTPNR_NAMESPACE_BEGIN
// Architecure-specific placement functions
-// Whether or not a given cell can be placed at a given Bel
-// This is not intended for Bel type checks, but finer-grained constraints
-// such as conflicting set/reset signals, etc
-bool isValidBelForCell(Context *ctx, CellInfo *cell, BelId bel);
-
-// Return true whether all Bels at a given location are valid
-bool isBelLocationValid(Context *ctx, BelId bel);
+class PlaceValidityChecker
+{
+ public:
+ PlaceValidityChecker(Context *ctx);
+
+ // Whether or not a given cell can be placed at a given Bel
+ // This is not intended for Bel type checks, but finer-grained constraints
+ // such as conflicting set/reset signals, etc
+ bool isValidBelForCell(CellInfo *cell, BelId bel);
+
+ // Return true whether all Bels at a given location are valid
+ bool isBelLocationValid(BelId bel);
+};
NEXTPNR_NAMESPACE_END