diff options
author | Clifford Wolf <clifford@clifford.at> | 2018-07-11 18:15:08 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2018-07-11 18:15:08 +0200 |
commit | 7daa8524c8ab8c9ff5400d5074b80573b0d39a14 (patch) | |
tree | 372ed9db3069f40e733a503472659155ea62f4dc | |
parent | 7df67c91b38433e8a1002f8e9f53926aafaa4d1b (diff) | |
download | nextpnr-7daa8524c8ab8c9ff5400d5074b80573b0d39a14.tar.gz nextpnr-7daa8524c8ab8c9ff5400d5074b80573b0d39a14.tar.bz2 nextpnr-7daa8524c8ab8c9ff5400d5074b80573b0d39a14.zip |
Add ctx->place() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
-rw-r--r-- | common/placer1.cc (renamed from common/place_sa.cc) | 4 | ||||
-rw-r--r-- | common/placer1.h (renamed from common/place_sa.h) | 2 | ||||
-rw-r--r-- | ecp5/arch.cc | 6 | ||||
-rw-r--r-- | ecp5/arch.h | 1 | ||||
-rw-r--r-- | ecp5/main.cc | 3 | ||||
-rw-r--r-- | generic/arch.cc | 6 | ||||
-rw-r--r-- | generic/arch.h | 1 | ||||
-rw-r--r-- | gui/ice40/mainwindow.cc | 1 | ||||
-rw-r--r-- | gui/ice40/worker.cc | 3 | ||||
-rw-r--r-- | ice40/arch.cc | 6 | ||||
-rw-r--r-- | ice40/arch.h | 1 | ||||
-rw-r--r-- | ice40/main.cc | 3 |
12 files changed, 27 insertions, 10 deletions
diff --git a/common/place_sa.cc b/common/placer1.cc index ab161c57..53295a91 100644 --- a/common/place_sa.cc +++ b/common/placer1.cc @@ -21,7 +21,7 @@ * */ -#include "place_sa.h" +#include "placer1.h" #include <algorithm> #include <cmath> #include <iostream> @@ -429,7 +429,7 @@ class SAPlacer const float post_legalise_dia_scale = 2; }; -bool place_design_sa(Context *ctx) +bool placer1(Context *ctx) { try { SAPlacer placer(ctx); diff --git a/common/place_sa.h b/common/placer1.h index 1fd8c712..477fae56 100644 --- a/common/place_sa.h +++ b/common/placer1.h @@ -23,7 +23,7 @@ NEXTPNR_NAMESPACE_BEGIN -extern bool place_design_sa(Context *ctx); +extern bool placer1(Context *ctx); NEXTPNR_NAMESPACE_END diff --git a/ecp5/arch.cc b/ecp5/arch.cc index 74548391..7383e0e7 100644 --- a/ecp5/arch.cc +++ b/ecp5/arch.cc @@ -23,6 +23,7 @@ #include <cstring> #include "log.h" #include "nextpnr.h" +#include "placer1.h" #include "router1.h" #include "util.h" @@ -289,6 +290,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/ecp5/arch.h b/ecp5/arch.h index c9c5a6a1..5f01c8c8 100644 --- a/ecp5/arch.h +++ b/ecp5/arch.h @@ -720,6 +720,7 @@ struct Arch : BaseCtx // ------------------------------------------------- + bool place(); bool route(); // ------------------------------------------------- diff --git a/ecp5/main.cc b/ecp5/main.cc index a6128d0f..45774431 100644 --- a/ecp5/main.cc +++ b/ecp5/main.cc @@ -44,7 +44,6 @@ #include "design_utils.h" #include "jsonparse.h" #include "pack.h" -#include "place_sa.h" #include "timing.h" USING_NEXTPNR_NAMESPACE @@ -146,7 +145,7 @@ int main(int argc, char *argv[]) if (vm.count("no-tmdriv")) ctx.timing_driven = false; - 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) diff --git a/generic/arch.cc b/generic/arch.cc index b82d8ce6..2282b2b8 100644 --- a/generic/arch.cc +++ b/generic/arch.cc @@ -19,6 +19,7 @@ #include <math.h> #include "nextpnr.h" +#include "placer1.h" #include "router1.h" NEXTPNR_NAMESPACE_BEGIN @@ -316,6 +317,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/generic/arch.h b/generic/arch.h index 60ac9435..85f469f9 100644 --- a/generic/arch.h +++ b/generic/arch.h @@ -158,6 +158,7 @@ struct Arch : BaseCtx float getDelayNS(delay_t v) const { return v; } uint32_t getDelayChecksum(delay_t v) const { return 0; } + bool place(); bool route(); const std::vector<GraphicElement> &getDecalGraphics(DecalId decal) const; diff --git a/gui/ice40/mainwindow.cc b/gui/ice40/mainwindow.cc index ea7e0667..6f0a9b97 100644 --- a/gui/ice40/mainwindow.cc +++ b/gui/ice40/mainwindow.cc @@ -29,7 +29,6 @@ #include "log.h"
#include "pack.h"
#include "pcf.h"
-#include "place_sa.h"
static void initMainResource() { Q_INIT_RESOURCE(nextpnr); }
diff --git a/gui/ice40/worker.cc b/gui/ice40/worker.cc index fc21ed34..16f5fb89 100644 --- a/gui/ice40/worker.cc +++ b/gui/ice40/worker.cc @@ -25,7 +25,6 @@ #include "log.h" #include "pack.h" #include "pcf.h" -#include "place_sa.h" #include "timing.h" NEXTPNR_NAMESPACE_BEGIN @@ -123,7 +122,7 @@ void Worker::place(bool timing_driven) Q_EMIT taskStarted(); try { ctx->timing_driven = timing_driven; - Q_EMIT place_finished(place_design_sa(ctx)); + Q_EMIT place_finished(ctx->place()); } catch (WorkerInterruptionRequested) { Q_EMIT taskCanceled(); } 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) |