Program Listing for File TimingMetricService.h¶
↰ Return to documentation for file (src/partition/refine/pipeline/TimingMetricService.h)
#ifndef PARTITION_REFINE_PIPELINE_TIMINGMETRICSERVICE_H_
#define PARTITION_REFINE_PIPELINE_TIMINGMETRICSERVICE_H_
#include "refine/core/RefineTypes.h"
class TimingMetricService {
public:
static vector<vector<float>> buildCutDelayMatrix(const fpga &fpgas,
int fpga_num,
float default_cut_delay);
static void initializeCoarsestLocalData(
const fpga &fpgas, const graph &coarsest_graph, const graph &origin_graph,
const vector<int> &map_to_origins,
const vector<vector<int>> &candidate_parts, int fpga_num,
vector<Metrics> &metrics, vector<vector<int>> &cut_weights,
HSFullTiming::HSPartitionFlow &pFlow, float default_cut_delay,
int thread);
static void refreshCutDelaysFromTdm(const fpga &fpgas, int fpga_num,
int candidate_count,
HSFullTiming::HSPartitionFlow &pFlow,
int thread);
static void fillMetricsFromPartitionFlow(HSFullTiming::HSPartitionFlow &pFlow,
vector<Metrics> &metrics);
static void zeroTimingMetrics(vector<Metrics> &metrics);
static vector<double> cutTimingCostAll(
const vector<vector<float>> &candidate_paths_costs,
const vector<vector<int>> &candidate_parts, const graph &g, int fpga_num,
const vector<Metrics> &metric);
static vector<float> getWorstSlacks(
bool has_timing_tdm, const fpga &fpgas, graph &hgraph,
const vector<vector<int>> &candidate_parts, const int &guardband_flag,
const int &has_timing_propogate,
const shared_ptr<curPartStatus> &mulClock_status,
HSFullTiming::HSPartitionFlow &pFlow,
const vector<float> &candidate_worst_slacks);
static int getMaxHop(flat_hash_map<pair<int, int>, pinSlack> &pin_minslack,
const vector<int> &parts);
};
#endif