Class HSPartitionFlow

Inheritance Relationships

Base Type

Derived Types

Class Documentation

class HSPartitionFlow : public HSFullTiming::HSStaBase

Subclassed by HSFullTiming::HSCutNetFlow, HSFullTiming::HSCutOnlyFlow

Public Functions

HSPartitionFlow()
virtual ~HSPartitionFlow()
void cleanPartition()
void cleanOurPartition()
void deleteOurLocalData(int index)
int parseInput(const string &dInputs)
virtual int buildLocalData()
string trim(const string &str)
HSTimingLocalData *buildLocalData(const vector<int> &partInfo)
HSTimingLocalData *cloneOurLocalData(int index)
void mergeEdgePaths(vector<timingpath> &mergePaths, const string &folder, int k, float mergeRatio)
int printEdgePathReport(const std::string &timing_aware_dOutDir, const string &dOutDir, int printNum)
int expandPaths(const string &time, vector<timingpath> &pathDataAll)
void getEdgePaths(vector<timingpath> &edgePaths) const
int getEdgePathReport(const vector<int> &edgeIds, vector<timingpath> &path)
int getHyperNodeNum() const
json getTimingPaths(vector<timingpath> pathDataAll) const
inline int getSlackRange()
int setEdgeInfos()
int setPin2Edge()
inline bool hasLocalDatas() const
inline vector<HSOuterEdge*> get_m_outerEdgeAll() const
inline vector<HSPartitionNet*> get_m_netAll() const
inline const vector<HSPartitionNet*> &getNetAll() const
inline const vector<int> &getEdge2NetId() const
inline vector<HSGraphClock*> get_m_clkAll() const
inline const vector<std::shared_ptr<edge_info>> &get_edgeInfos() const
inline const flat_hash_map<pair<int, int>, int> &get_pin2Edge() const
void setEdgePortNames(int edgeId, const string &fromPort, const string &toPort)
inline vector<HSTimingLocalData*> get_m_localDatas() const
inline vector<HSTimingLocalData*> get_m_ourLocalDatas() const
inline vector<set<int>> get_ins_paths() const
inline flat_hash_map<string, int> get_m_insPin_net() const
inline HSTimingLocalData *getOurLocalData(int index) const
HSTimingLocalData *addOneLocalData()
int paramCal(flat_hash_map<int, set<pair<int, int>>> &net_insPin_set, flat_hash_map<pair<int, int>, pinSlack> &pin_minslack, const bool &has_mul_clock_domains, const shared_ptr<mulClockAttr> &clockAttr, const float &maximum_clock_period)
void storeClockAttr(shared_ptr<mulClockAttr> &clockAttr, bool &has_mul_clock_domains)
void printTopkMinSlack(HSTimingLocalData *oneLocal, int k)
void getTopkCutPaths(vector<HSStaBase::timingpath> &cutPaths, HSTimingLocalData *oneLocal, int k)
void dumpTopkCutPaths(HSTimingLocalData *oneLocal, int k, const std::string &filepath)

Public Static Functions

static inline bool initSlackRange(int slack_range)
static inline bool setSlackRange(int slack_range)

Private Functions

void buildEdge2NetId()

Private Members

int m_hyperNodeNum = 0
vector<HSPartitionNet*> m_netAll
vector<int> m_edge2NetId
vector<HSTimingLocalData*> m_localDatas
vector<HSTimingLocalData*> m_ourLocalDatas
vector<std::shared_ptr<edge_info>> edgeInfos
flat_hash_map<pair<int, int>, int> pin2Edge
vector<set<int>> ins_paths
flat_hash_map<string, int> m_insPin_net

Friends

friend class HSCutOnlyFlow
friend class HSCutNetFlow