From 8445cef834b108772744d20294b26625eb8c090e Mon Sep 17 00:00:00 2001 From: James Cherry Date: Sun, 18 Sep 2022 19:51:10 -0700 Subject: [PATCH] power enqueue regs in fanout of from user activities Signed-off-by: James Cherry --- search/Power.cc | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/search/Power.cc b/search/Power.cc index eecb4086..cbec0663 100644 --- a/search/Power.cc +++ b/search/Power.cc @@ -337,6 +337,8 @@ PropActivityVisitor::visit(Vertex *vertex) vertex->name(network_), activity.activity(), activity.duty()); + if (!power_->hasActivity(pin)) + input_without_activity = true; power_->setActivity(pin, activity); } else { @@ -567,12 +569,15 @@ Power::seedRegOutputActivities(const Instance *reg, LibertyPort *output, bool invert) { - PwrActivity activity = evalActivity(seq->data(), reg); - if (invert) - activity.set(activity.activity(), - 1.0 - activity.duty(), - activity.origin()); - setSeqActivity(reg, output, activity); + const Pin *out_pin = network_->findPin(reg, output); + if (!hasUserActivity(out_pin)) { + PwrActivity activity = evalActivity(seq->data(), reg); + if (invert) + activity.set(activity.activity(), + 1.0 - activity.duty(), + activity.origin()); + setSeqActivity(reg, output, activity); + } } ////////////////////////////////////////////////////////////////