do not check slew limits on ideal clk nets

This commit is contained in:
James Cherry 2020-03-01 13:10:00 -08:00
parent 9cacb0cfd9
commit 1dbae09fb7
3 changed files with 58 additions and 55 deletions

View File

@ -101,6 +101,7 @@ public:
virtual float ceff(Edge *edge, virtual float ceff(Edge *edge,
TimingArc *arc, TimingArc *arc,
const DcalcAnalysisPt *dcalc_ap); const DcalcAnalysisPt *dcalc_ap);
virtual bool isIdealClk(const Vertex *vertex) = 0;
// Precedence: // Precedence:
// SDF annotation // SDF annotation
// Liberty library // Liberty library

View File

@ -197,7 +197,7 @@ protected:
bool setIdealClks(const Vertex *vertex, bool setIdealClks(const Vertex *vertex,
ClockSet *clks); ClockSet *clks);
ClockSet *idealClks(const Vertex *vertex); ClockSet *idealClks(const Vertex *vertex);
bool isIdealClk(const Vertex *vertex); virtual bool isIdealClk(const Vertex *vertex);
Slew idealClkSlew(const Vertex *vertex, Slew idealClkSlew(const Vertex *vertex,
const RiseFall *rf, const RiseFall *rf,
const MinMax *min_max); const MinMax *min_max);

View File

@ -23,6 +23,7 @@
#include "StaState.hh" #include "StaState.hh"
#include "DcalcAnalysisPt.hh" #include "DcalcAnalysisPt.hh"
#include "Corner.hh" #include "Corner.hh"
#include "GraphDelayCalc.hh"
#include "PathVertex.hh" #include "PathVertex.hh"
#include "Search.hh" #include "Search.hh"
#include "CheckSlewLimits.hh" #include "CheckSlewLimits.hh"
@ -173,9 +174,9 @@ CheckSlewLimits::findLimit(const Pin *pin,
// Return values. // Return values.
float &limit, float &limit,
bool &exists) const bool &exists) const
{ {
exists = false; exists = false;
if (!sta_->graphDelayCalc()->isIdealClk(vertex)) {
const Network *network = sta_->network(); const Network *network = sta_->network();
Sdc *sdc = sta_->sdc(); Sdc *sdc = sta_->sdc();
bool is_clk = sta_->search()->isClock(vertex); bool is_clk = sta_->search()->isClock(vertex);
@ -243,6 +244,7 @@ CheckSlewLimits::findLimit(const Pin *pin,
} }
} }
} }
}
} }
void void