diff options
author | David Shah <dave@ds0.me> | 2019-01-08 10:36:30 +0000 |
---|---|---|
committer | David Shah <dave@ds0.me> | 2019-03-22 10:31:54 +0000 |
commit | 4cf8549f5c8b33c9c2363fc7f22c70e9d50357bf (patch) | |
tree | dd8411fe7886a75d392e2a7caab7a4e666538296 /common/placer1.cc | |
parent | 9cd5980d35ac7174ce577b89efac7f4d4a5f8ada (diff) | |
download | nextpnr-4cf8549f5c8b33c9c2363fc7f22c70e9d50357bf.tar.gz nextpnr-4cf8549f5c8b33c9c2363fc7f22c70e9d50357bf.tar.bz2 nextpnr-4cf8549f5c8b33c9c2363fc7f22c70e9d50357bf.zip |
placer1: Legalise after reaching a diameter, not temperature
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'common/placer1.cc')
-rw-r--r-- | common/placer1.cc | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/common/placer1.cc b/common/placer1.cc index b180ebfb..767dbae6 100644 --- a/common/placer1.cc +++ b/common/placer1.cc @@ -317,7 +317,7 @@ class SAPlacer } // Once cooled below legalise threshold, run legalisation and start requiring // legal moves only - if (temp < legalise_temp && require_legal) { + if (diameter < legalise_dia && require_legal) { if (legalise_relative_constraints(ctx)) { // Only increase temperature if something was moved autoplaced.clear(); @@ -329,8 +329,8 @@ class SAPlacer else if (cell.second->belStrength < STRENGTH_STRONG) autoplaced.push_back(cell.second); } - temp = post_legalise_temp; - diameter = std::min<int>(M, diameter * post_legalise_dia_scale); + // temp = post_legalise_temp; + // diameter = std::min<int>(M, diameter * post_legalise_dia_scale); ctx->shuffle(autoplaced); // Legalisation is a big change so force a slack redistribution here @@ -901,9 +901,7 @@ class SAPlacer std::vector<NetInfo *> net_by_udata; std::vector<decltype(NetInfo::udata)> old_udata; bool require_legal = true; - const float legalise_temp = 0.001; - const float post_legalise_temp = 0.002; - const float post_legalise_dia_scale = 1.5; + const int legalise_dia = 4; Placer1Cfg cfg; }; |