aboutsummaryrefslogtreecommitdiffstats
path: root/generic/arch.cc
diff options
context:
space:
mode:
authorDavid Shah <davey1576@gmail.com>2019-03-25 16:24:02 +0000
committerGitHub <noreply@github.com>2019-03-25 16:24:02 +0000
commitc67b8259bb8b31ba3f6aa30c431fef222e5f2f65 (patch)
tree6f427acacd9545150ad82465dda0e6c3d130c1e2 /generic/arch.cc
parent0d064c05f91b548638530e6e159ca9f8aa0fa352 (diff)
parent25e3350675c091c2fb54e51c9fcb7e79bbe6e279 (diff)
downloadnextpnr-c67b8259bb8b31ba3f6aa30c431fef222e5f2f65.tar.gz
nextpnr-c67b8259bb8b31ba3f6aa30c431fef222e5f2f65.tar.bz2
nextpnr-c67b8259bb8b31ba3f6aa30c431fef222e5f2f65.zip
Merge pull request #219 from daveshah1/placer_heap
HeAP-based analytical placer
Diffstat (limited to 'generic/arch.cc')
-rw-r--r--generic/arch.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/generic/arch.cc b/generic/arch.cc
index 77417d27..aca81559 100644
--- a/generic/arch.cc
+++ b/generic/arch.cc
@@ -21,6 +21,7 @@
#include "nextpnr.h"
#include "placer1.h"
#include "router1.h"
+#include "util.h"
NEXTPNR_NAMESPACE_BEGIN
@@ -439,7 +440,16 @@ bool Arch::getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay
// ---------------------------------------------------------------
-bool Arch::place() { return placer1(getCtx(), Placer1Cfg(getCtx())); }
+bool Arch::place()
+{
+ std::string placer = str_or_default(settings, id("placer"), defaultPlacer);
+ // FIXME: No HeAP because it needs a list of IO buffers
+ if (placer == "sa") {
+ return placer1(getCtx(), Placer1Cfg(getCtx()));
+ } else {
+ log_error("Generic architecture does not support placer '%s'\n", placer.c_str());
+ }
+}
bool Arch::route() { return router1(getCtx(), Router1Cfg(getCtx())); }
@@ -476,4 +486,7 @@ TimingClockingInfo Arch::getPortClockingInfo(const CellInfo *cell, IdString port
bool Arch::isValidBelForCell(CellInfo *cell, BelId bel) const { return true; }
bool Arch::isBelLocationValid(BelId bel) const { return true; }
+const std::string Arch::defaultPlacer = "sa";
+const std::vector<std::string> Arch::availablePlacers = {"sa"};
+
NEXTPNR_NAMESPACE_END