restore Search::makePathGroups
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
351b8287a7
commit
845729ad9f
|
|
@ -170,6 +170,19 @@ public:
|
||||||
|
|
||||||
PathGroupSeq pathGroups(const PathEnd *path_end) const;
|
PathGroupSeq pathGroups(const PathEnd *path_end) const;
|
||||||
void deletePathGroups();
|
void deletePathGroups();
|
||||||
|
void makePathGroups(int group_path_count,
|
||||||
|
int endpoint_path_count,
|
||||||
|
bool unique_pins,
|
||||||
|
bool unique_edges,
|
||||||
|
float min_slack,
|
||||||
|
float max_slack,
|
||||||
|
PathGroupNameSet *group_names,
|
||||||
|
bool setup,
|
||||||
|
bool hold,
|
||||||
|
bool recovery,
|
||||||
|
bool removal,
|
||||||
|
bool clk_gating_setup,
|
||||||
|
bool clk_gating_hold);
|
||||||
virtual ExceptionPath *exceptionTo(ExceptionPathType type,
|
virtual ExceptionPath *exceptionTo(ExceptionPathType type,
|
||||||
const Path *path,
|
const Path *path,
|
||||||
const Pin *pin,
|
const Pin *pin,
|
||||||
|
|
@ -281,6 +294,7 @@ public:
|
||||||
BfsFwdIterator *arrivalIterator() const { return arrival_iter_; }
|
BfsFwdIterator *arrivalIterator() const { return arrival_iter_; }
|
||||||
BfsBkwdIterator *requiredIterator() const { return required_iter_; }
|
BfsBkwdIterator *requiredIterator() const { return required_iter_; }
|
||||||
bool arrivalsAtEndpointsExist()const{return arrivals_at_endpoints_exist_;}
|
bool arrivalsAtEndpointsExist()const{return arrivals_at_endpoints_exist_;}
|
||||||
|
// Used by OpenROAD.
|
||||||
bool makeUnclkedPaths(Vertex *vertex,
|
bool makeUnclkedPaths(Vertex *vertex,
|
||||||
bool is_segment_start,
|
bool is_segment_start,
|
||||||
bool require_exception,
|
bool require_exception,
|
||||||
|
|
|
||||||
|
|
@ -467,15 +467,12 @@ Search::findPathEnds(ExceptionFrom *from,
|
||||||
recovery = removal = false;
|
recovery = removal = false;
|
||||||
if (!variables_->gatedClkChecksEnabled())
|
if (!variables_->gatedClkChecksEnabled())
|
||||||
clk_gating_setup = clk_gating_hold = false;
|
clk_gating_setup = clk_gating_hold = false;
|
||||||
path_groups_ = new PathGroups(group_path_count, endpoint_path_count,
|
makePathGroups(group_path_count, endpoint_path_count,
|
||||||
unique_pins, unique_edges,
|
unique_pins, unique_edges,
|
||||||
slack_min, slack_max,
|
slack_min, slack_max,
|
||||||
group_names,
|
group_names, setup, hold,
|
||||||
setup, hold,
|
|
||||||
recovery, removal,
|
recovery, removal,
|
||||||
clk_gating_setup, clk_gating_hold,
|
clk_gating_setup, clk_gating_hold);
|
||||||
unconstrained_paths_,
|
|
||||||
this);
|
|
||||||
ensureDownstreamClkPins();
|
ensureDownstreamClkPins();
|
||||||
PathEndSeq path_ends = path_groups_->makePathEnds(to, unconstrained_paths_,
|
PathEndSeq path_ends = path_groups_->makePathEnds(to, unconstrained_paths_,
|
||||||
corner, min_max,
|
corner, min_max,
|
||||||
|
|
@ -509,6 +506,32 @@ Search::findFilteredArrivals(ExceptionFrom *from,
|
||||||
findAllArrivals(thru_latches);
|
findAllArrivals(thru_latches);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Search::makePathGroups(int group_path_count,
|
||||||
|
int endpoint_path_count,
|
||||||
|
bool unique_pins,
|
||||||
|
bool unique_edges,
|
||||||
|
float slack_min,
|
||||||
|
float slack_max,
|
||||||
|
PathGroupNameSet *group_names,
|
||||||
|
bool setup,
|
||||||
|
bool hold,
|
||||||
|
bool recovery,
|
||||||
|
bool removal,
|
||||||
|
bool clk_gating_setup,
|
||||||
|
bool clk_gating_hold)
|
||||||
|
{
|
||||||
|
path_groups_ = new PathGroups(group_path_count, endpoint_path_count,
|
||||||
|
unique_pins, unique_edges,
|
||||||
|
slack_min, slack_max,
|
||||||
|
group_names,
|
||||||
|
setup, hold,
|
||||||
|
recovery, removal,
|
||||||
|
clk_gating_setup, clk_gating_hold,
|
||||||
|
unconstrained_paths_,
|
||||||
|
this);
|
||||||
|
}
|
||||||
|
|
||||||
// From/thrus/to are used to make a filter exception. If the last
|
// From/thrus/to are used to make a filter exception. If the last
|
||||||
// search used a filter arrival/required times were only found for a
|
// search used a filter arrival/required times were only found for a
|
||||||
// subset of the paths. Delete the paths that have a filter
|
// subset of the paths. Delete the paths that have a filter
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue