blob: 9cd4d6e26602f7872242043a38c479ae84bcb444 [file] [log] [blame] [edit]
#ifndef VRP_TIMING_GRAPH_NAME_RESOLVER_H
#define VRP_TIMING_GRAPH_NAME_RESOLVER_H
#include "tatum/TimingGraphNameResolver.hpp"
#include "atom_netlist_fwd.h"
#include "atom_lookup.h"
#include "AnalysisDelayCalculator.h"
class VprTimingGraphResolver : public tatum::TimingGraphNameResolver {
public:
VprTimingGraphResolver(const AtomNetlist& netlist, const AtomLookup& netlist_lookup, const tatum::TimingGraph& timing_graph, const AnalysisDelayCalculator& delay_calc);
std::string node_name(tatum::NodeId node) const override;
std::string node_type_name(tatum::NodeId node) const override;
tatum::EdgeDelayBreakdown edge_delay_breakdown(tatum::EdgeId edge, tatum::DelayType delay_type) const override;
void set_detail_level(e_timing_report_detail report_detail);
private:
e_timing_report_detail detail_level() const;
std::vector<tatum::DelayComponent> interconnect_delay_breakdown(tatum::EdgeId edge, DelayType) const;
const AtomNetlist& netlist_;
const AtomLookup& netlist_lookup_;
const tatum::TimingGraph& timing_graph_;
const AnalysisDelayCalculator& delay_calc_;
e_timing_report_detail detail_level_ = e_timing_report_detail::NETLIST;
};
#endif