diff options
Diffstat (limited to 'mistral')
-rw-r--r-- | mistral/arch.h | 2 | ||||
-rw-r--r-- | mistral/delay.cc | 12 |
2 files changed, 6 insertions, 8 deletions
diff --git a/mistral/arch.h b/mistral/arch.h index 34e55846..471b5251 100644 --- a/mistral/arch.h +++ b/mistral/arch.h @@ -418,7 +418,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 predictDelay(BelId src_bel, IdString src_pin, BelId dst_bel, IdString dst_pin) const override; delay_t getDelayEpsilon() const override { return 10; }; delay_t getRipupDelayPenalty() const override { return 100; }; float getDelayNS(delay_t v) const override { return float(v) / 1000.0f; }; diff --git a/mistral/delay.cc b/mistral/delay.cc index bfaeb065..98ef1be6 100644 --- a/mistral/delay.cc +++ b/mistral/delay.cc @@ -239,14 +239,12 @@ DelayQuad Arch::getPipDelay(PipId pip) const return DelayQuad{308}; } -delay_t Arch::predictDelay(const NetInfo *net_info, const PortRef &sink) const +delay_t Arch::predictDelay(BelId src_bel, IdString src_pin, BelId dst_bel, IdString dst_pin) const { - if (net_info->driver.cell == nullptr || net_info->driver.cell->bel == BelId()) - return 100; - if (sink.cell->bel == BelId()) - return 100; - Loc src_loc = getBelLocation(net_info->driver.cell->bel); - Loc dst_loc = getBelLocation(sink.cell->bel); + NPNR_UNUSED(src_pin); + NPNR_UNUSED(dst_pin); + Loc src_loc = getBelLocation(src_bel); + Loc dst_loc = getBelLocation(dst_bel); return std::abs(dst_loc.y - src_loc.y) * 100 + std::abs(dst_loc.x - src_loc.x) * 100 + 100; } |