blob: 7bab4e2edf1f23e9aac30578971c6e7255af04bd [file] [log] [blame]
#ifndef ROUTER_DELAY_PROFILING_H_
#define ROUTER_DELAY_PROFILING_H_
#include "vpr_types.h"
#include "router_lookahead.h"
#include <vector>
class RouterDelayProfiler {
public:
RouterDelayProfiler(const RouterLookahead* lookahead);
bool calculate_delay(int source_node, int sink_node, const t_router_opts& router_opts, float* net_delay) const;
private:
const RouterLookahead* router_lookahead_;
};
std::vector<float> calculate_all_path_delays_from_rr_node(int src_rr_node, const t_router_opts& router_opts);
void alloc_routing_structs(t_chan_width chan_width,
const t_router_opts& router_opts,
t_det_routing_arch* det_routing_arch,
std::vector<t_segment_inf>& segment_inf,
const t_direct_inf* directs,
const int num_directs);
void free_routing_structs();
#endif /* ROUTER_DELAY_PROFILING_H_ */