aboutsummaryrefslogtreecommitdiffstats
path: root/ice40
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-07-11 18:15:08 +0200
committerClifford Wolf <clifford@clifford.at>2018-07-11 18:15:08 +0200
commit7daa8524c8ab8c9ff5400d5074b80573b0d39a14 (patch)
tree372ed9db3069f40e733a503472659155ea62f4dc /ice40
parent7df67c91b38433e8a1002f8e9f53926aafaa4d1b (diff)
downloadnextpnr-7daa8524c8ab8c9ff5400d5074b80573b0d39a14.tar.gz
nextpnr-7daa8524c8ab8c9ff5400d5074b80573b0d39a14.tar.bz2
nextpnr-7daa8524c8ab8c9ff5400d5074b80573b0d39a14.zip
Add ctx->place() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'ice40')
-rw-r--r--ice40/arch.cc6
-rw-r--r--ice40/arch.h1
-rw-r--r--ice40/main.cc3
3 files changed, 8 insertions, 2 deletions
diff --git a/ice40/arch.cc b/ice40/arch.cc
index 0bb27d38..1e6b4569 100644
--- a/ice40/arch.cc
+++ b/ice40/arch.cc
@@ -21,6 +21,7 @@
#include <cmath>
#include "log.h"
#include "nextpnr.h"
+#include "placer1.h"
#include "router1.h"
#include "util.h"
#include "gfx.h"
@@ -401,6 +402,11 @@ delay_t Arch::estimateDelay(WireId src, WireId dst) const
// -----------------------------------------------------------------------
+bool Arch::place()
+{
+ return placer1(getCtx());
+}
+
bool Arch::route()
{
return router1(getCtx());
diff --git a/ice40/arch.h b/ice40/arch.h
index 02c37fae..659139a6 100644
--- a/ice40/arch.h
+++ b/ice40/arch.h
@@ -643,6 +643,7 @@ struct Arch : BaseCtx
// -------------------------------------------------
+ bool place();
bool route();
// -------------------------------------------------
diff --git a/ice40/main.cc b/ice40/main.cc
index f586a079..2427ea6c 100644
--- a/ice40/main.cc
+++ b/ice40/main.cc
@@ -42,7 +42,6 @@
#include "pack.h"
#include "pcf.h"
#include "place_legaliser.h"
-#include "place_sa.h"
#include "timing.h"
#include "version.h"
@@ -372,7 +371,7 @@ int main(int argc, char *argv[])
if (vm.count("no-tmdriv"))
ctx.timing_driven = false;
if (!vm.count("pack-only")) {
- if (!place_design_sa(&ctx) && !ctx.force)
+ if (!ctx.place() && !ctx.force)
log_error("Placing design failed.\n");
ctx.check();
if (!ctx.route() && !ctx.force)