aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorSerge Bazanski <serge@bazanski.pl>2018-07-17 19:16:26 +0100
committerSerge Bazanski <serge@bazanski.pl>2018-07-17 19:16:26 +0100
commit03508faabfc2f5b76039cfd13d02a341baa848a4 (patch)
treec896745d0e1555e224d5a7c67b52e7ccfb6e30dd /common
parent2f5b94fe309619c221c3e1ea5aa48a4523bd3156 (diff)
downloadnextpnr-03508faabfc2f5b76039cfd13d02a341baa848a4.tar.gz
nextpnr-03508faabfc2f5b76039cfd13d02a341baa848a4.tar.bz2
nextpnr-03508faabfc2f5b76039cfd13d02a341baa848a4.zip
WIP.
Diffstat (limited to 'common')
-rw-r--r--common/nextpnr.h2
-rw-r--r--common/placer1.cc9
-rw-r--r--common/router1.cc2
3 files changed, 12 insertions, 1 deletions
diff --git a/common/nextpnr.h b/common/nextpnr.h
index 7aa5b100..fb5e042b 100644
--- a/common/nextpnr.h
+++ b/common/nextpnr.h
@@ -369,7 +369,7 @@ class BaseCtx : public IdStringDB, public DeterministicRNG
// --------------------------------------------------------------
- bool allUiReload = false;
+ bool allUiReload = true;
bool frameUiReload = false;
std::unordered_set<BelId> belUiReload;
std::unordered_set<WireId> wireUiReload;
diff --git a/common/placer1.cc b/common/placer1.cc
index b229616c..b58893ce 100644
--- a/common/placer1.cc
+++ b/common/placer1.cc
@@ -29,6 +29,7 @@
#include <list>
#include <map>
#include <ostream>
+#include <pthread.h>
#include <queue>
#include <set>
#include <stdarg.h>
@@ -156,6 +157,14 @@ class SAPlacer
// Main simulated annealing loop
for (int iter = 1;; iter++) {
+ // TODO(q3k): unwat
+ pthread_yield();
+ pthread_yield();
+ pthread_yield();
+ pthread_yield();
+ pthread_yield();
+ pthread_yield();
+ pthread_yield();
ctx->lock();
n_move = n_accept = 0;
improved = false;
diff --git a/common/router1.cc b/common/router1.cc
index a85de7c6..bde3be31 100644
--- a/common/router1.cc
+++ b/common/router1.cc
@@ -637,7 +637,9 @@ bool router1(Context *ctx)
log_info("Checksum: 0x%08x\n", ctx->checksum());
#ifndef NDEBUG
+ ctx->lock();
ctx->check();
+ ctx->unlock();
#endif
return true;
} catch (log_execution_error_exception) {