aboutsummaryrefslogtreecommitdiffstats
path: root/common/place
diff options
context:
space:
mode:
authormyrtle <gatecat@ds0.me>2022-12-22 21:19:21 +0100
committerGitHub <noreply@github.com>2022-12-22 21:19:21 +0100
commit76fea8268ca7c3f9a9f4f610951f9ea84993e974 (patch)
tree65d9723eb70a6ba44ade5eda186a0993bf3fb664 /common/place
parenta80d63b26810e2e5dab8d3d626f9b3052f734c95 (diff)
parent64f7306b24ac26bf05a3009b2f4b54489739ab28 (diff)
downloadnextpnr-76fea8268ca7c3f9a9f4f610951f9ea84993e974.tar.gz
nextpnr-76fea8268ca7c3f9a9f4f610951f9ea84993e974.tar.bz2
nextpnr-76fea8268ca7c3f9a9f4f610951f9ea84993e974.zip
Merge pull request #1068 from YosysHQ/cleanup_and_sync
Cleanup and sync
Diffstat (limited to 'common/place')
-rw-r--r--common/place/placer_heap.cc7
-rw-r--r--common/place/placer_heap.h1
2 files changed, 7 insertions, 1 deletions
diff --git a/common/place/placer_heap.cc b/common/place/placer_heap.cc
index 7fa27206..efc04df5 100644
--- a/common/place/placer_heap.cc
+++ b/common/place/placer_heap.cc
@@ -362,7 +362,11 @@ class HeAPPlacer
} else
#endif
{
- if (!placer1_refine(ctx, Placer1Cfg(ctx))) {
+ auto placer1_cfg = Placer1Cfg(ctx);
+ placer1_cfg.hpwl_scale_x = cfg.hpwl_scale_x;
+ placer1_cfg.hpwl_scale_y = cfg.hpwl_scale_y;
+ placer1_cfg.netShareWeight = cfg.netShareWeight;
+ if (!placer1_refine(ctx, placer1_cfg)) {
return false;
}
}
@@ -1813,6 +1817,7 @@ PlacerHeapCfg::PlacerHeapCfg(Context *ctx)
criticalityExponent = ctx->setting<int>("placerHeap/criticalityExponent");
timingWeight = ctx->setting<int>("placerHeap/timingWeight");
parallelRefine = ctx->setting<bool>("placerHeap/parallelRefine", false);
+ netShareWeight = ctx->setting<float>("placerHeap/netShareWeight", 0);
timing_driven = ctx->setting<bool>("timing_driven");
solverTolerance = 1e-5;
diff --git a/common/place/placer_heap.h b/common/place/placer_heap.h
index e554a8e0..c79e3dfc 100644
--- a/common/place/placer_heap.h
+++ b/common/place/placer_heap.h
@@ -41,6 +41,7 @@ struct PlacerHeapCfg
bool timing_driven;
float solverTolerance;
bool placeAllAtOnce;
+ float netShareWeight;
bool parallelRefine;
int cell_placement_timeout;