aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-09-18 10:42:52 +0100
committergatecat <gatecat@ds0.me>2021-09-18 10:43:19 +0100
commit287a860283b8d8d6a5f0304d4561b422caa77b02 (patch)
tree88bf503cb5f2582f883165ebbf7c870942881820
parentd17b5faf76707dfeaeb4269822428daa77508cd4 (diff)
downloadnextpnr-287a860283b8d8d6a5f0304d4561b422caa77b02.tar.gz
nextpnr-287a860283b8d8d6a5f0304d4561b422caa77b02.tar.bz2
nextpnr-287a860283b8d8d6a5f0304d4561b422caa77b02.zip
timing: Fix slack for unconstrained clocks
Signed-off-by: gatecat <gatecat@ds0.me>
-rw-r--r--common/timing.cc13
1 files changed, 7 insertions, 6 deletions
diff --git a/common/timing.cc b/common/timing.cc
index 161769dc..85896f54 100644
--- a/common/timing.cc
+++ b/common/timing.cc
@@ -275,12 +275,13 @@ void TimingAnalyser::setup_port_domains()
if (launch_data.key.clock != capture_data.key.clock)
continue;
IdString clk = launch_data.key.clock;
- if (!ctx->nets.count(clk))
- continue;
- NetInfo *clk_net = ctx->nets.at(clk).get();
- if (!clk_net->clkconstr)
- continue;
- delay_t period = clk_net->clkconstr->period.minDelay();
+ delay_t period = ctx->getDelayFromNS(1.0e9 / ctx->setting<float>("target_freq"));
+ if (ctx->nets.count(clk)) {
+ NetInfo *clk_net = ctx->nets.at(clk).get();
+ if (clk_net->clkconstr) {
+ period = clk_net->clkconstr->period.minDelay();
+ }
+ }
if (launch_data.key.edge != capture_data.key.edge)
period /= 2;
dp.period = DelayPair(period);