diff options
author | David Shah <davey1576@gmail.com> | 2018-12-07 21:19:41 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-07 21:19:41 +0000 |
commit | d790d0bb91261939a784fe0f86ce6fa2f6245e55 (patch) | |
tree | 5634ef0c91bda07c15a25e42f06194e9ecbfbb51 /common/timing.h | |
parent | a9e1fab9fcdb0493343a8ba23b471255544f10ea (diff) | |
parent | b732e42fa312b83bee6c122d69e0a171afca779c (diff) | |
download | nextpnr-d790d0bb91261939a784fe0f86ce6fa2f6245e55.tar.gz nextpnr-d790d0bb91261939a784fe0f86ce6fa2f6245e55.tar.bz2 nextpnr-d790d0bb91261939a784fe0f86ce6fa2f6245e55.zip |
Merge pull request #163 from daveshah1/timing_opt
Adding criticality calculation and experimental timing optimisation pass
Diffstat (limited to 'common/timing.h')
-rw-r--r-- | common/timing.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/common/timing.h b/common/timing.h index 42f928dc..f1d18e8a 100644 --- a/common/timing.h +++ b/common/timing.h @@ -32,6 +32,19 @@ void assign_budget(Context *ctx, bool quiet = false); void timing_analysis(Context *ctx, bool slack_histogram = true, bool print_fmax = true, bool print_path = false, bool warn_on_failure = false); +// Data for the timing optimisation algorithm +struct NetCriticalityInfo +{ + // One each per user + std::vector<delay_t> slack; + std::vector<float> criticality; + unsigned max_path_length = 0; + delay_t cd_worst_slack = std::numeric_limits<delay_t>::max(); +}; + +typedef std::unordered_map<IdString, NetCriticalityInfo> NetCriticalityMap; +void get_criticalities(Context *ctx, NetCriticalityMap *net_crit); + NEXTPNR_NAMESPACE_END #endif |