diff options
Diffstat (limited to 'mistral')
-rw-r--r-- | mistral/arch.h | 2 | ||||
-rw-r--r-- | mistral/bitstream.cc | 2 | ||||
-rw-r--r-- | mistral/delay.cc | 12 |
3 files changed, 7 insertions, 9 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/bitstream.cc b/mistral/bitstream.cc index e8c4dba7..eed508b3 100644 --- a/mistral/bitstream.cc +++ b/mistral/bitstream.cc @@ -123,7 +123,7 @@ struct MistralBitgen break; }; case CycloneV::FPLL: { - if (pt == CycloneV::EXTSWITCH || (pt == CycloneV::CLKEN && pi < 2)) + if (pt == CycloneV::EXTSWITCH0 || (pt == CycloneV::CLKEN && pi < 2)) cv->inv_set(pn2r.second, true); break; }; 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; } |