diff --git a/dcalc/DmpDelayCalc.cc b/dcalc/DmpDelayCalc.cc index 4d5d4b14..973b20d3 100644 --- a/dcalc/DmpDelayCalc.cc +++ b/dcalc/DmpDelayCalc.cc @@ -24,6 +24,7 @@ #include "DcalcAnalysisPt.hh" #include "GraphDelayCalc.hh" #include "DmpCeff.hh" +#include "Network.hh" namespace sta { @@ -302,7 +303,7 @@ DmpCeffTwoPoleDelayCalc::loadDelay(const Pin *load_pin, ArcDelay &wire_delay, Slew &load_slew) { - // NEED to handle PiElmore parasitic. + // Should handle PiElmore parasitic. ArcDelay wire_delay1 = 0.0; Slew load_slew1 = drvr_slew_; Parasitic *pole_residue = 0; diff --git a/dcalc/LumpedCapDelayCalc.hh b/dcalc/LumpedCapDelayCalc.hh index 0f502e33..ff92dea4 100644 --- a/dcalc/LumpedCapDelayCalc.hh +++ b/dcalc/LumpedCapDelayCalc.hh @@ -47,7 +47,7 @@ public: // Return values. ArcDelay &gate_delay, Slew &drvr_slew) override; - void setMultiDrvrSlewFactor(float) override; + void setMultiDrvrSlewFactor(float factor) override; float ceff(const LibertyCell *drvr_cell, const TimingArc *arc, const Slew &in_slew, diff --git a/dcalc/RCDelayCalc.cc b/dcalc/RCDelayCalc.cc index 3aec6224..5f852e14 100644 --- a/dcalc/RCDelayCalc.cc +++ b/dcalc/RCDelayCalc.cc @@ -62,16 +62,10 @@ RCDelayCalc::dspfWireDelaySlew(const Pin *, ArcDelay &wire_delay, Slew &load_slew) { - float vth = .5; - float vl = .2; - float vh = .8; - float slew_derate = 1.0; - if (drvr_library_) { - vth = drvr_library_->inputThreshold(drvr_rf_); - vl = drvr_library_->slewLowerThreshold(drvr_rf_); - vh = drvr_library_->slewUpperThreshold(drvr_rf_); - slew_derate = drvr_library_->slewDerateFromLibrary(); - } + float vth = drvr_library_->inputThreshold(drvr_rf_); + float vl = drvr_library_->slewLowerThreshold(drvr_rf_); + float vh = drvr_library_->slewUpperThreshold(drvr_rf_); + float slew_derate = drvr_library_->slewDerateFromLibrary(); wire_delay = static_cast(-elmore * log(1.0 - vth)); load_slew = (drvr_slew_ + elmore * log((1.0 - vl) / (1.0 - vh)) / slew_derate) * multi_drvr_slew_factor_; diff --git a/include/sta/ArcDelayCalc.hh b/include/sta/ArcDelayCalc.hh index 7eb117ef..045557bb 100644 --- a/include/sta/ArcDelayCalc.hh +++ b/include/sta/ArcDelayCalc.hh @@ -40,6 +40,7 @@ class DcalcAnalysisPt; // DmpCeffDelayCalc // DmpCeffElmoreDelayCalc // DmpCeffTwoPoleDelayCalc +// ArnoldiDelayCalc // Abstract class to interface to a delay calculator primitive. class ArcDelayCalc : public StaState diff --git a/liberty/TableModel.cc b/liberty/TableModel.cc index 605f9086..57c8c446 100644 --- a/liberty/TableModel.cc +++ b/liberty/TableModel.cc @@ -1717,13 +1717,11 @@ OutputWaveforms::voltageTimes(size_t wave_index, float prev_current = currents->value(0); float voltage = 0.0; volts.push_back(voltage); - bool always_rise = true; - bool invert = (always_rise && rf_ == RiseFall::fall()); for (size_t i = 1; i < time_axis->size(); i++) { float time = time_axis->axisValue(i); float current = currents->value(i); float dv = (current + prev_current) / 2.0 * (time - prev_time) / cap; - voltage += invert ? -dv : dv; + voltage += dv; volts.push_back(voltage); prev_time = time; prev_current = current;