Program Listing for File HSTimingSlackRange.h¶
↰ Return to documentation for file (src/sta/HSTimingSlackRange.h)
#pragma once
namespace HSFullTiming {
inline constexpr int kDefaultSlackRange = 50;
inline int g_slack_range = kDefaultSlackRange;
inline bool setSlackRange(int slack_range)
{
if (slack_range <= 0) {
return false;
}
g_slack_range = slack_range;
return true;
}
inline bool initSlackRange(int slack_range)
{
return setSlackRange(slack_range);
}
inline int getSlackRange()
{
return g_slack_range;
}
inline int slackToBucketIndex(float slack)
{
const int slack_range = getSlackRange();
if (slack < 0) {
return static_cast<int>(slack / slack_range) - 1;
}
return static_cast<int>(slack / slack_range);
}
inline int maxHopToSlackRangeStart(int max_hop)
{
return -max_hop * getSlackRange();
}
inline int maxHopToSlackRangeEnd(int max_hop)
{
return maxHopToSlackRangeStart(max_hop) + getSlackRange();
}
} // namespace HSFullTiming