aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-07-11 18:04:09 +0200
committerClifford Wolf <clifford@clifford.at>2018-07-11 18:04:09 +0200
commit7df67c91b38433e8a1002f8e9f53926aafaa4d1b (patch)
tree1a1f459ef291f7e8d026125206f3fe934e97086d /common
parente9b27860daa97eb66c3268be247c28d15d33db1e (diff)
downloadnextpnr-7df67c91b38433e8a1002f8e9f53926aafaa4d1b.tar.gz
nextpnr-7df67c91b38433e8a1002f8e9f53926aafaa4d1b.tar.bz2
nextpnr-7df67c91b38433e8a1002f8e9f53926aafaa4d1b.zip
Add ctx->route() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'common')
-rw-r--r--common/nextpnr.h9
-rw-r--r--common/router1.cc (renamed from common/route.cc)8
-rw-r--r--common/router1.h (renamed from common/route.h)9
3 files changed, 17 insertions, 9 deletions
diff --git a/common/nextpnr.h b/common/nextpnr.h
index 856d8993..09bd1554 100644
--- a/common/nextpnr.h
+++ b/common/nextpnr.h
@@ -260,6 +260,10 @@ struct BaseCtx
delete idstring_idx_to_str;
}
+ Context *getCtx() { return reinterpret_cast<Context*>(this); }
+
+ const Context *getCtx() const { return reinterpret_cast<const Context*>(this); }
+
// --------------------------------------------------------------
bool allUiReload = false;
@@ -366,6 +370,11 @@ struct Context : Arch
// --------------------------------------------------------------
+ // provided by router1.cc
+ bool getActualRouteDelay(WireId src_wire, WireId dst_wire, delay_t &delay);
+
+ // --------------------------------------------------------------
+
uint64_t rngstate = 0x3141592653589793;
uint64_t rng64()
diff --git a/common/route.cc b/common/router1.cc
index 82525fcc..94c7070e 100644
--- a/common/route.cc
+++ b/common/router1.cc
@@ -21,7 +21,7 @@
#include <queue>
#include "log.h"
-#include "route.h"
+#include "router1.h"
namespace {
@@ -402,7 +402,7 @@ struct Router
NEXTPNR_NAMESPACE_BEGIN
-bool route_design(Context *ctx)
+bool router1(Context *ctx)
{
try {
int totalVisitCnt = 0, totalRevisitCnt = 0, totalOvertimeRevisitCnt = 0;
@@ -643,10 +643,10 @@ bool route_design(Context *ctx)
}
}
-bool get_actual_route_delay(Context *ctx, WireId src_wire, WireId dst_wire, delay_t &delay)
+bool Context::getActualRouteDelay(WireId src_wire, WireId dst_wire, delay_t &delay)
{
RipupScoreboard scores;
- Router router(ctx, scores, src_wire, dst_wire);
+ Router router(this, scores, src_wire, dst_wire);
if (router.routedOkay)
delay = router.visited.at(dst_wire).delay;
return router.routedOkay;
diff --git a/common/route.h b/common/router1.h
index 1da9edc2..38552c58 100644
--- a/common/route.h
+++ b/common/router1.h
@@ -17,16 +17,15 @@
*
*/
-#ifndef ROUTE_H
-#define ROUTE_H
+#ifndef ROUTER1_H
+#define ROUTER1_H
#include "nextpnr.h"
NEXTPNR_NAMESPACE_BEGIN
-extern bool route_design(Context *ctx);
-extern bool get_actual_route_delay(Context *ctx, WireId src_wire, WireId dst_wire, delay_t &delay);
+extern bool router1(Context *ctx);
NEXTPNR_NAMESPACE_END
-#endif // ROUTE_H
+#endif // ROUTER1_H