diff --git a/include/sta/Sta.hh b/include/sta/Sta.hh index bb0a5c9e..6293f808 100644 --- a/include/sta/Sta.hh +++ b/include/sta/Sta.hh @@ -1266,6 +1266,7 @@ public: const Corner *corner, // Return values. PowerResult &result); + PwrActivity findClkedActivity(const Pin *pin); void writeTimingModel(const char *cell_name, const char *filename, diff --git a/search/Power.cc b/search/Power.cc index f3283bc7..ee303c0e 100644 --- a/search/Power.cc +++ b/search/Power.cc @@ -204,7 +204,7 @@ Power::power(const Corner *corner, macro.clear(); pad.clear(); - preamble(); + ensureActivities(); LeafInstanceIterator *inst_iter = network_->leafInstanceIterator(); while (inst_iter->hasNext()) { Instance *inst = inst_iter->next(); @@ -235,7 +235,7 @@ Power::power(const Instance *inst, { LibertyCell *cell = network_->libertyCell(inst); if (cell) { - preamble(); + ensureActivities(); power(inst, cell, corner, result); } } @@ -470,12 +470,6 @@ Power::evalActivity(FuncExpr *expr, //////////////////////////////////////////////////////////////// -void -Power::preamble() -{ - ensureActivities(); -} - void Power::ensureActivities() { @@ -1018,6 +1012,7 @@ Power::findClkedActivity(const Pin *pin) { const Instance *inst = network_->instance(pin); const Clock *inst_clk = findInstClk(inst); + ensureActivities(); return findClkedActivity(pin, inst_clk); } diff --git a/search/Power.hh b/search/Power.hh index bb7bb661..2958cab7 100644 --- a/search/Power.hh +++ b/search/Power.hh @@ -85,7 +85,6 @@ public: PwrActivity findClkedActivity(const Pin *pin); protected: - void preamble(); void ensureActivities(); bool hasUserActivity(const Pin *pin); PwrActivity &userActivity(const Pin *pin); diff --git a/search/Property.cc b/search/Property.cc index 6f32f1a5..f2961f34 100644 --- a/search/Property.cc +++ b/search/Property.cc @@ -655,7 +655,7 @@ getProperty(const Port *port, else if (stringEqual(property, "activity")) { const Instance *top_inst = network->topInstance(); const Pin *pin = network->findPin(top_inst, port); - PwrActivity activity = sta->power()->findClkedActivity(pin); + PwrActivity activity = sta->findClkedActivity(pin); return PropertyValue(&activity); } @@ -821,7 +821,7 @@ getProperty(const Pin *pin, return PropertyValue(&clks); } else if (stringEqual(property, "activity")) { - PwrActivity activity = sta->power()->findClkedActivity(pin); + PwrActivity activity = sta->findClkedActivity(pin); return PropertyValue(&activity); } diff --git a/search/Sta.cc b/search/Sta.cc index d2847902..7743a695 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -5610,6 +5610,13 @@ Sta::power(const Instance *inst, power_->power(inst, corner, result); } +PwrActivity +Sta::findClkedActivity(const Pin *pin) +{ + powerPreamble(); + return power_->findClkedActivity(pin); +} + //////////////////////////////////////////////////////////////// void