diff options
Diffstat (limited to 'ice40')
-rw-r--r-- | ice40/arch.cc | 6 | ||||
-rw-r--r-- | ice40/arch.h | 1 | ||||
-rw-r--r-- | ice40/main.cc | 7 |
3 files changed, 13 insertions, 1 deletions
diff --git a/ice40/arch.cc b/ice40/arch.cc index dedc59bc..daf0c78b 100644 --- a/ice40/arch.cc +++ b/ice40/arch.cc @@ -495,6 +495,12 @@ delay_t Arch::estimateDelay(WireId src, WireId dst) const return xscale * abs(xd) + yscale * abs(yd) + offset; } +delay_t Arch::getBudgetOverride(const PortRef& pr, delay_t v) const +{ + if (pr.port == id("COUT")) return 0; + return v; +} + // ----------------------------------------------------------------------- bool Arch::place() { return placer1(getCtx()); } diff --git a/ice40/arch.h b/ice40/arch.h index 123b408c..a9392f6d 100644 --- a/ice40/arch.h +++ b/ice40/arch.h @@ -684,6 +684,7 @@ struct Arch : BaseCtx delay_t getRipupDelayPenalty() const { return 200; } float getDelayNS(delay_t v) const { return v * 0.001; } uint32_t getDelayChecksum(delay_t v) const { return v; } + delay_t getBudgetOverride(const PortRef& pr, delay_t v) const; // ------------------------------------------------- diff --git a/ice40/main.cc b/ice40/main.cc index 6201831a..5b658288 100644 --- a/ice40/main.cc +++ b/ice40/main.cc @@ -363,8 +363,13 @@ int main(int argc, char *argv[]) } } - if (vm.count("freq")) + if (vm.count("freq")) { ctx->target_freq = vm["freq"].as<double>() * 1e6; + ctx->user_freq = true; + } + else { + log_warning("Target frequency not specified. Will optimise for max frequency.\n"); + } ctx->timing_driven = true; if (vm.count("no-tmdriv")) |