aboutsummaryrefslogtreecommitdiffstats
path: root/common/placer1.cc
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2019-01-08 10:36:30 +0000
committerDavid Shah <dave@ds0.me>2019-03-22 10:31:54 +0000
commit4cf8549f5c8b33c9c2363fc7f22c70e9d50357bf (patch)
treedd8411fe7886a75d392e2a7caab7a4e666538296 /common/placer1.cc
parent9cd5980d35ac7174ce577b89efac7f4d4a5f8ada (diff)
downloadnextpnr-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.cc10
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;
};