report_power seg fault on missing pin

This commit is contained in:
James Cherry 2020-06-11 20:48:48 -07:00
parent a258b31bb9
commit dd29fafe5d
1 changed files with 18 additions and 17 deletions

View File

@ -775,25 +775,26 @@ Power::findInputDuty(const Pin *to_pin,
const LibertyPort *from_port = pwr->relatedPort();
if (from_port) {
const Pin *from_pin = network_->findPin(inst, from_port);
FuncExpr *when = pwr->when();
Vertex *from_vertex = graph_->pinLoadVertex(from_pin);
if (func && func->hasPort(from_port)) {
PwrActivity from_activity = findActivity(from_pin);
PwrActivity to_activity = findActivity(to_pin);
float duty1 = evalActivityDifference(func, inst, from_port).duty();
if (to_activity.activity() == 0.0)
return 0.0;
else
return from_activity.activity() / to_activity.activity() * duty1;
if (from_pin) {
FuncExpr *when = pwr->when();
Vertex *from_vertex = graph_->pinLoadVertex(from_pin);
if (func && func->hasPort(from_port)) {
PwrActivity from_activity = findActivity(from_pin);
PwrActivity to_activity = findActivity(to_pin);
float duty1 = evalActivityDifference(func, inst, from_port).duty();
if (to_activity.activity() == 0.0)
return 0.0;
else
return from_activity.activity() / to_activity.activity() * duty1;
}
else if (when)
return evalActivity(when, inst).duty();
else if (search_->isClock(from_vertex))
return 1.0;
return 0.5;
}
else if (when)
return evalActivity(when, inst).duty();
else if (search_->isClock(from_vertex))
return 1.0;
return 0.5;
}
else
return 0.0;
return 0.0;
}
static bool