blob: ce859c1ecd6a956e47063366caa54bfd680984b6 [file] [log] [blame]
#ifndef VPR_PRE_CLUSTER_TIMING_GRAPH_RESOLVER_H_
#define VPR_PRE_CLUSTER_TIMING_GRAPH_RESOLVER_H_
#include "tatum/TimingGraphNameResolver.hpp"
#include "atom_netlist_fwd.h"
#include "atom_lookup.h"
#include "AnalysisDelayCalculator.h"
class PreClusterTimingGraphResolver : public tatum::TimingGraphNameResolver {
public:
PreClusterTimingGraphResolver(
const AtomNetlist& netlist,
const AtomLookup& netlist_lookup,
const tatum::TimingGraph& timing_graph,
const tatum::DelayCalculator& 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;
const AtomNetlist& netlist_;
const AtomLookup& netlist_lookup_;
const tatum::TimingGraph& timing_graph_;
const tatum::DelayCalculator& delay_calc_;
e_timing_report_detail detail_level_ = e_timing_report_detail::NETLIST;
};
#endif /* VPR_PRE_CLUSTER_TIMING_GRAPH_RESOLVER_H_ */