diff options
-rw-r--r-- | nexus/arch.cc | 4 | ||||
-rw-r--r-- | nexus/arch.h | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/nexus/arch.cc b/nexus/arch.cc index f3430968..338d1bd8 100644 --- a/nexus/arch.cc +++ b/nexus/arch.cc @@ -587,13 +587,15 @@ TimingClockingInfo Arch::getPortClockingInfo(const CellInfo *cell, IdString port // ----------------------------------------------------------------------- +delay_t Arch::getRipupDelayPenalty() const { return 250; } + delay_t Arch::estimateDelay(WireId src, WireId dst) const { int src_x = src.tile % chip_info->width, src_y = src.tile / chip_info->width; int dst_x = dst.tile % chip_info->width, dst_y = dst.tile / chip_info->width; int dist_x = std::abs(src_x - dst_x); int dist_y = std::abs(src_y - dst_y); - return 75 * dist_x + 75 * dist_y + 200; + return 75 * dist_x + 75 * dist_y + 250; } delay_t Arch::predictDelay(const NetInfo *net_info, const PortRef &sink) const { diff --git a/nexus/arch.h b/nexus/arch.h index fcb864f6..e97c9bf0 100644 --- a/nexus/arch.h +++ b/nexus/arch.h @@ -1192,7 +1192,7 @@ struct Arch : BaseArch<ArchRanges> delay_t estimateDelay(WireId src, WireId dst) const override; delay_t predictDelay(const NetInfo *net_info, const PortRef &sink) const override; delay_t getDelayEpsilon() const override { return 20; } - delay_t getRipupDelayPenalty() const override { return 120; } + delay_t getRipupDelayPenalty() const override; delay_t getWireRipupDelayPenalty(WireId wire) const; float getDelayNS(delay_t v) const override { return v * 0.001; } delay_t getDelayFromNS(float ns) const override { return delay_t(ns * 1000); } |