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,6 +596,7 @@ 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()));
if (!fluzzyInf(slew)) {
float table_energy = pwr->power(to_rf, pvt, slew, load_cap); float table_energy = pwr->power(to_rf, pvt, slew, load_cap);
float tr_energy = table_energy * duty; float tr_energy = table_energy * duty;
debugPrint4(debug_, "power", 3, " %s energy = %9.2e * %.2f = %9.2e\n", debugPrint4(debug_, "power", 3, " %s energy = %9.2e * %.2f = %9.2e\n",
@ -605,6 +606,7 @@ Power::findInternalPower(const Pin *to_pin,
tr_energy); tr_energy);
port_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",
from_port->name(), from_port->name(),