aboutsummaryrefslogtreecommitdiffstats
path: root/common/place_sa.cc
diff options
context:
space:
mode:
Diffstat (limited to 'common/place_sa.cc')
-rw-r--r--common/place_sa.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/common/place_sa.cc b/common/place_sa.cc
index 0a60adc8..2b8b960b 100644
--- a/common/place_sa.cc
+++ b/common/place_sa.cc
@@ -314,7 +314,12 @@ class SAPlacer
load_cell->bel, ctx->portPinFromId(load.port));
// wirelength += std::abs(load_x - driver_x) + std::abs(load_y -
// driver_y);
- wirelength += ctx->estimateDelay(drv_wire, user_wire);
+ delay_t raw_wl = ctx->estimateDelay(drv_wire, user_wire);
+ wirelength += pow(1.3, (ctx->getDelayNS(raw_wl) -
+ ctx->getDelayNS(load.budget)) /
+ 10) +
+ ctx->getDelayNS(raw_wl);
+ // wirelength += pow(ctx->estimateDelay(drv_wire, user_wire), 2.0);
}
return wirelength;
}
@@ -376,9 +381,8 @@ class SAPlacer
delta = new_wirelength - curr_wirelength;
n_move++;
// SA acceptance criterea
- if (delta < 0 ||
- (temp > 1e-6 &&
- (ctx->rng() / float(0x3fffffff)) <= std::exp(-delta / temp))) {
+ if (delta < 0 || (temp > 1e-6 && (ctx->rng() / float(0x3fffffff)) <=
+ std::exp(-delta / temp))) {
n_accept++;
if (delta < 0)
improved = true;