ArcDelayCalc::reduceSupported()
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
d408599b2d
commit
828616fc12
|
|
@ -36,7 +36,7 @@ public:
|
||||||
virtual ~CcsCeffDelayCalc();
|
virtual ~CcsCeffDelayCalc();
|
||||||
ArcDelayCalc *copy() override;
|
ArcDelayCalc *copy() override;
|
||||||
const char *name() const override { return "ccs_ceff"; }
|
const char *name() const override { return "ccs_ceff"; }
|
||||||
|
bool reduceSupported() const override { return true; }
|
||||||
ArcDcalcResult gateDelay(const Pin *drvr_pin,
|
ArcDcalcResult gateDelay(const Pin *drvr_pin,
|
||||||
const TimingArc *arc,
|
const TimingArc *arc,
|
||||||
const Slew &in_slew,
|
const Slew &in_slew,
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,7 @@ public:
|
||||||
Parasitic *findParasitic(const Pin *drvr_pin,
|
Parasitic *findParasitic(const Pin *drvr_pin,
|
||||||
const RiseFall *rf,
|
const RiseFall *rf,
|
||||||
const DcalcAnalysisPt *dcalc_ap) override;
|
const DcalcAnalysisPt *dcalc_ap) override;
|
||||||
|
bool reduceSupported() const override { return false; }
|
||||||
Parasitic *reduceParasitic(const Parasitic *parasitic_network,
|
Parasitic *reduceParasitic(const Parasitic *parasitic_network,
|
||||||
const Pin *drvr_pin,
|
const Pin *drvr_pin,
|
||||||
const RiseFall *rf,
|
const RiseFall *rf,
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ class DmpCeffDelayCalc : public LumpedCapDelayCalc
|
||||||
public:
|
public:
|
||||||
DmpCeffDelayCalc(StaState *sta);
|
DmpCeffDelayCalc(StaState *sta);
|
||||||
virtual ~DmpCeffDelayCalc();
|
virtual ~DmpCeffDelayCalc();
|
||||||
|
bool reduceSupported() const override { return true; }
|
||||||
ArcDcalcResult gateDelay(const Pin *drvr_pin,
|
ArcDcalcResult gateDelay(const Pin *drvr_pin,
|
||||||
const TimingArc *arc,
|
const TimingArc *arc,
|
||||||
const Slew &in_slew,
|
const Slew &in_slew,
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ public:
|
||||||
Parasitic *findParasitic(const Pin *drvr_pin,
|
Parasitic *findParasitic(const Pin *drvr_pin,
|
||||||
const RiseFall *rf,
|
const RiseFall *rf,
|
||||||
const DcalcAnalysisPt *dcalc_ap) override;
|
const DcalcAnalysisPt *dcalc_ap) override;
|
||||||
|
bool reduceSupported() const override { return true; }
|
||||||
Parasitic *reduceParasitic(const Parasitic *parasitic_network,
|
Parasitic *reduceParasitic(const Parasitic *parasitic_network,
|
||||||
const Pin *drvr_pin,
|
const Pin *drvr_pin,
|
||||||
const RiseFall *rf,
|
const RiseFall *rf,
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ public:
|
||||||
Parasitic *findParasitic(const Pin *drvr_pin,
|
Parasitic *findParasitic(const Pin *drvr_pin,
|
||||||
const RiseFall *rf,
|
const RiseFall *rf,
|
||||||
const DcalcAnalysisPt *dcalc_ap) override;
|
const DcalcAnalysisPt *dcalc_ap) override;
|
||||||
|
bool reduceSupported() const override { return false; }
|
||||||
Parasitic *reduceParasitic(const Parasitic *parasitic_network,
|
Parasitic *reduceParasitic(const Parasitic *parasitic_network,
|
||||||
const Pin *drvr_pin,
|
const Pin *drvr_pin,
|
||||||
const RiseFall *rf,
|
const RiseFall *rf,
|
||||||
|
|
|
||||||
|
|
@ -166,6 +166,7 @@ public:
|
||||||
virtual Parasitic *findParasitic(const Pin *drvr_pin,
|
virtual Parasitic *findParasitic(const Pin *drvr_pin,
|
||||||
const RiseFall *rf,
|
const RiseFall *rf,
|
||||||
const DcalcAnalysisPt *dcalc_ap) = 0;
|
const DcalcAnalysisPt *dcalc_ap) = 0;
|
||||||
|
virtual bool reduceSupported() const = 0;
|
||||||
// Reduce parasitic_network to a representation acceptable to the delay calculator.
|
// Reduce parasitic_network to a representation acceptable to the delay calculator.
|
||||||
virtual Parasitic *reduceParasitic(const Parasitic *parasitic_network,
|
virtual Parasitic *reduceParasitic(const Parasitic *parasitic_network,
|
||||||
const Pin *drvr_pin,
|
const Pin *drvr_pin,
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,12 @@ readSpefFile(const char *filename,
|
||||||
StaState *sta)
|
StaState *sta)
|
||||||
{
|
{
|
||||||
bool success = false;
|
bool success = false;
|
||||||
|
const ArcDelayCalc *arc_delay_calc = sta->arcDelayCalc();
|
||||||
|
if (reduce && !arc_delay_calc->reduceSupported()) {
|
||||||
|
sta->report()->warn(1658, "Delay calculator %s does not support reduction.",
|
||||||
|
arc_delay_calc->name());
|
||||||
|
reduce = false;
|
||||||
|
}
|
||||||
// Use zlib to uncompress gzip'd files automagically.
|
// Use zlib to uncompress gzip'd files automagically.
|
||||||
gzFile stream = gzopen(filename, "rb");
|
gzFile stream = gzopen(filename, "rb");
|
||||||
if (stream) {
|
if (stream) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue