aboutsummaryrefslogtreecommitdiffstats
path: root/common/timing.h
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-07-28 11:20:28 +0100
committergatecat <gatecat@ds0.me>2021-07-28 11:20:28 +0100
commit14c676ab494e5a412fde9f6c303317df1d7e1b80 (patch)
treee6c18bd9613a43f65276cf809a9623f15d19a66b /common/timing.h
parenteb6817c259bf0a757eb923a7418a43d2dd32f732 (diff)
downloadnextpnr-14c676ab494e5a412fde9f6c303317df1d7e1b80.tar.gz
nextpnr-14c676ab494e5a412fde9f6c303317df1d7e1b80.tar.bz2
nextpnr-14c676ab494e5a412fde9f6c303317df1d7e1b80.zip
timing: Allow overriding of route delays
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'common/timing.h')
-rw-r--r--common/timing.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/common/timing.h b/common/timing.h
index c5799b41..6548757b 100644
--- a/common/timing.h
+++ b/common/timing.h
@@ -97,9 +97,13 @@ struct TimingAnalyser
public:
TimingAnalyser(Context *ctx) : ctx(ctx){};
void setup();
- void run();
+ void run(bool update_route_delays = true);
void print_report();
+ // This is used when routers etc are not actually binding detailed routing (due to congestion or an abstracted
+ // model), but want to re-run STA with their own calculated delays
+ void set_route_delay(CellPortKey port, DelayPair value);
+
float get_criticality(CellPortKey port) const { return ports.at(port).worst_crit; }
float get_setup_slack(CellPortKey port) const { return ports.at(port).worst_setup_slack; }
float get_domain_setup_slack(CellPortKey port) const