internal power NaN when slew is +-INF

This commit is contained in:
James Cherry 2020-02-03 11:53:16 -07:00
parent 7fdeb0d3b7
commit d137446774
1 changed files with 10 additions and 8 deletions

View File

@ -596,14 +596,16 @@ Power::findInternalPower(const Pin *to_pin,
float slew = delayAsFloat(graph_->slew(from_vertex, float slew = delayAsFloat(graph_->slew(from_vertex,
from_rf, from_rf,
dcalc_ap->index())); dcalc_ap->index()));
float table_energy = pwr->power(to_rf, pvt, slew, load_cap); if (!fluzzyInf(slew)) {
float tr_energy = table_energy * duty; float table_energy = pwr->power(to_rf, pvt, slew, load_cap);
debugPrint4(debug_, "power", 3, " %s energy = %9.2e * %.2f = %9.2e\n", float tr_energy = table_energy * duty;
to_rf->shortName(), debugPrint4(debug_, "power", 3, " %s energy = %9.2e * %.2f = %9.2e\n",
table_energy, to_rf->shortName(),
duty, table_energy,
tr_energy); duty,
port_energy += tr_energy; tr_energy);
port_energy += tr_energy;
}
} }
float port_internal = port_energy * to_activity.activity(); float port_internal = port_energy * to_activity.activity();
debugPrint8(debug_, "power", 2, " %s -> %s %s %.2f %.2f %9.2e %9.2e %s\n", debugPrint8(debug_, "power", 2, " %s -> %s %s %.2f %.2f %9.2e %9.2e %s\n",