From 05ed9308d6ea1167b570af3f97a90ffb3aed1d59 Mon Sep 17 00:00:00 2001 From: gatecat Date: Tue, 20 Feb 2024 10:44:00 +0100 Subject: [PATCH] ecp5: Improve router performance on slower speed grades Signed-off-by: gatecat --- ecp5/arch.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ecp5/arch.cc b/ecp5/arch.cc index 54b070ea4d..3a8540274e 100644 --- a/ecp5/arch.cc +++ b/ecp5/arch.cc @@ -501,7 +501,7 @@ delay_t Arch::estimateDelay(WireId src, WireId dst) const int dx = abs(src_loc.first - dst_loc.first), dy = abs(src_loc.second - dst_loc.second); - return (120 - 22 * args.speed) * + return (80 - 9 * args.speed) * (6 + std::max(dx - 5, 0) + std::max(dy - 5, 0) + 2 * (std::min(dx, 5) + std::min(dy, 5))); } @@ -579,11 +579,11 @@ delay_t Arch::predictDelay(BelId src_bel, IdString src_pin, BelId dst_bel, IdStr int dx = abs(driver_loc.x - sink_loc.x), dy = abs(driver_loc.y - sink_loc.y); - return (120 - 22 * args.speed) * - (3 + std::max(dx - 5, 0) + std::max(dy - 5, 0) + 2 * (std::min(dx, 5) + std::min(dy, 5))); + return (80 - 9 * args.speed) * + (6 + std::max(dx - 5, 0) + std::max(dy - 5, 0) + 2 * (std::min(dx, 5) + std::min(dy, 5))); } -delay_t Arch::getRipupDelayPenalty() const { return 400; } +delay_t Arch::getRipupDelayPenalty() const { return 550 - 50 * args.speed; } // -----------------------------------------------------------------------