diff options
author | Clifford Wolf <clifford@clifford.at> | 2018-06-23 16:14:39 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2018-06-23 16:14:39 +0200 |
commit | 0ccd9febebdb7f2de700d116a8498f23de093e88 (patch) | |
tree | 094f717951a81fd91d01e3d776695629f354d089 /gui/ice40/worker.cc | |
parent | a40d9dc514b680538d0ffa99873974a15bff9e97 (diff) | |
parent | 1e8840b0f9400a1dc17ba6c7496314f82f0db2e1 (diff) | |
download | nextpnr-0ccd9febebdb7f2de700d116a8498f23de093e88.tar.gz nextpnr-0ccd9febebdb7f2de700d116a8498f23de093e88.tar.bz2 nextpnr-0ccd9febebdb7f2de700d116a8498f23de093e88.zip |
Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr
Diffstat (limited to 'gui/ice40/worker.cc')
-rw-r--r-- | gui/ice40/worker.cc | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/gui/ice40/worker.cc b/gui/ice40/worker.cc index ecf473ce..1558bc0c 100644 --- a/gui/ice40/worker.cc +++ b/gui/ice40/worker.cc @@ -72,20 +72,30 @@ void Worker::pack() { Q_EMIT taskStarted(); try { - Q_EMIT pack_finished(pack_design(ctx)); + bool res = pack_design(ctx); + print_utilisation(ctx); + Q_EMIT pack_finished(res); } catch (WorkerInterruptionRequested) { Q_EMIT taskCanceled(); } } -void Worker::place() +void Worker::budget(double freq) { Q_EMIT taskStarted(); try { - double freq = 50e6; assign_budget(ctx, freq); - print_utilisation(ctx); - Q_EMIT place_finished(place_design_sa(ctx)); + Q_EMIT budget_finish(true); + } catch (WorkerInterruptionRequested) { + Q_EMIT taskCanceled(); + } +} + +void Worker::place(bool timing_driven) +{ + Q_EMIT taskStarted(); + try { + Q_EMIT place_finished(place_design_sa(ctx, timing_driven)); } catch (WorkerInterruptionRequested) { Q_EMIT taskCanceled(); } @@ -110,17 +120,16 @@ TaskManager::TaskManager(Context *ctx) : toTerminate(false), toPause(false) connect(this, &TaskManager::loadfile, worker, &Worker::loadfile); connect(this, &TaskManager::pack, worker, &Worker::pack); + connect(this, &TaskManager::budget, worker, &Worker::budget); connect(this, &TaskManager::place, worker, &Worker::place); connect(this, &TaskManager::route, worker, &Worker::route); connect(worker, &Worker::log, this, &TaskManager::info); - connect(worker, &Worker::loadfile_finished, this, - &TaskManager::loadfile_finished); + connect(worker, &Worker::loadfile_finished, this, &TaskManager::loadfile_finished); connect(worker, &Worker::pack_finished, this, &TaskManager::pack_finished); - connect(worker, &Worker::place_finished, this, - &TaskManager::place_finished); - connect(worker, &Worker::route_finished, this, - &TaskManager::route_finished); + connect(worker, &Worker::budget_finish, this, &TaskManager::budget_finish); + connect(worker, &Worker::place_finished, this, &TaskManager::place_finished); + connect(worker, &Worker::route_finished, this, &TaskManager::route_finished); connect(worker, &Worker::taskCanceled, this, &TaskManager::taskCanceled); connect(worker, &Worker::taskStarted, this, &TaskManager::taskStarted); |