Merge branch 'parallaxsw:master' into master

This commit is contained in:
Akash Levy 2024-08-09 09:28:31 -07:00 committed by GitHub
commit 908daabfc9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 36 additions and 28 deletions

View File

@ -388,6 +388,7 @@ public:
Crpr &crpr_diff,
Delay &max_borrow,
bool &borrow_limit_exists) const;
virtual bool ignoreClkLatency(const StaState *sta) const;
protected:
PathEndLatchCheck(Path *path,

View File

@ -156,6 +156,18 @@ public:
PathGroup *pathGroup(const PathEnd *path_end) const;
void deletePathGroups();
void makePathGroups(int group_count,
int endpoint_count,
bool unique_pins,
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,
const Path *path,
const Pin *pin,
@ -511,18 +523,6 @@ protected:
void tnsDecr(Vertex *vertex,
PathAPIndex path_ap_index);
void tnsNotifyBefore(Vertex *vertex);
PathGroups *makePathGroups(int group_count,
int endpoint_count,
bool unique_pins,
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);
bool matchesFilterTo(Path *path,
const ClockEdge *to_clk_edge) const;
PathRef pathClkPathArrival1(const Path *path) const;

View File

@ -4371,7 +4371,8 @@ Sdc::findMatchingExceptionsFirstThru(ExceptionPath *exception,
findMatchingExceptionsInsts(exception, thru->instances(),
first_thru_inst_exceptions_,
matches);
if (!first_thru_net_exceptions_.empty()) {
if (!first_thru_net_exceptions_.empty()
&& thru->nets()) {
for (const Net *net : *thru->nets()) {
// Potential matches includes exceptions that match net that are not
// the first exception point.

View File

@ -308,7 +308,7 @@ BfsIterator::remove(Vertex *vertex)
Level level = vertex->level();
if (vertex->bfsInQueue(bfs_index_)
&& static_cast<Level>(queue_.size()) > level) {
for (Vertex *v : queue_[level]) {
for (Vertex *&v : queue_[level]) {
if (v == vertex) {
v = nullptr;
vertex->setBfsInQueue(bfs_index_, false);

View File

@ -1269,6 +1269,12 @@ PathEndLatchCheck::exceptPathCmp(const PathEnd *path_end,
return cmp;
}
bool
PathEndLatchCheck::ignoreClkLatency(const StaState *sta) const
{
return PathEnd::ignoreClkLatency(path_, path_delay_, sta);
}
///////////////////////////////////////////////////////////////
PathEndOutputDelay::PathEndOutputDelay(OutputDelay *output_delay,

View File

@ -452,11 +452,11 @@ Search::findPathEnds(ExceptionFrom *from,
recovery = removal = false;
if (!sdc_->gatedClkChecksEnabled())
clk_gating_setup = clk_gating_hold = false;
path_groups_ = makePathGroups(group_count, endpoint_count, unique_pins,
slack_min, slack_max,
group_names, setup, hold,
recovery, removal,
clk_gating_setup, clk_gating_hold);
makePathGroups(group_count, endpoint_count, unique_pins,
slack_min, slack_max,
group_names, setup, hold,
recovery, removal,
clk_gating_setup, clk_gating_hold);
ensureDownstreamClkPins();
PathEndSeq path_ends = path_groups_->makePathEnds(to, unconstrained_paths_,
corner, min_max,
@ -3973,7 +3973,7 @@ Search::wnsSlack(Vertex *vertex,
////////////////////////////////////////////////////////////////
PathGroups *
void
Search::makePathGroups(int group_count,
int endpoint_count,
bool unique_pins,
@ -3987,14 +3987,14 @@ Search::makePathGroups(int group_count,
bool clk_gating_setup,
bool clk_gating_hold)
{
return new PathGroups(group_count, endpoint_count, unique_pins,
slack_min, slack_max,
group_names,
setup, hold,
recovery, removal,
clk_gating_setup, clk_gating_hold,
unconstrained_paths_,
this);
path_groups_ = new PathGroups(group_count, endpoint_count, unique_pins,
slack_min, slack_max,
group_names,
setup, hold,
recovery, removal,
clk_gating_setup, clk_gating_hold,
unconstrained_paths_,
this);
}
void