diff options
author | Arjen Roodselaar <arjen@oxide.computer> | 2022-12-19 14:00:19 -0800 |
---|---|---|
committer | Arjen Roodselaar <arjen@oxide.computer> | 2022-12-19 14:00:19 -0800 |
commit | 2712cbf6e4289eb9c1830e367d68072e3d1f7564 (patch) | |
tree | 50b881c17aeca7cee61772a8d0b3b5a54bfee901 /common/place/placer_heap.cc | |
parent | 6e0311efcaea8020d3e137e2708ec188eef8a74c (diff) | |
download | nextpnr-2712cbf6e4289eb9c1830e367d68072e3d1f7564.tar.gz nextpnr-2712cbf6e4289eb9c1830e367d68072e3d1f7564.tar.bz2 nextpnr-2712cbf6e4289eb9c1830e367d68072e3d1f7564.zip |
Increase timeout
Diffstat (limited to 'common/place/placer_heap.cc')
-rw-r--r-- | common/place/placer_heap.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/common/place/placer_heap.cc b/common/place/placer_heap.cc index 22b97a6c..4ee9b909 100644 --- a/common/place/placer_heap.cc +++ b/common/place/placer_heap.cc @@ -879,9 +879,11 @@ class HeAPPlacer } while (!placed) { + // Set a conservative timeout. This is a rather large number and could probably be + // shaved down, but for now it will keep the process from running indefinite. + int timeout_limit = (int(ctx->cells.size()) * int(ctx->cells.size()) / 8) + 1; - // Set a conservative timeout - if (total_iters_for_cell > std::max(10000, 3 * int(ctx->cells.size()))) + if (total_iters_for_cell > std::max(10000, timeout_limit)) log_error("Unable to find legal placement for cell '%s' after %d attempts, check constraints and utilisation.\n", ctx->nameOf(ci), total_iters_for_cell); |