delay calc input port spef delay
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
8dbe2b7ef5
commit
6708246ba5
|
|
@ -99,17 +99,8 @@ DmpCeffElmoreDelayCalc::loadDelay(const Pin *load_pin,
|
|||
if (drvr_parasitic_)
|
||||
parasitics_->findElmore(drvr_parasitic_, load_pin, elmore, elmore_exists);
|
||||
if (elmore_exists) {
|
||||
if (input_port_) {
|
||||
// Input port with no external driver.
|
||||
if (parasitics_->isReducedParasiticNetwork(drvr_parasitic_))
|
||||
dspfWireDelaySlew(load_pin, elmore, wire_delay1, load_slew1);
|
||||
else {
|
||||
// The elmore delay on an input port is used for the wire
|
||||
// delay and the load slew is the same as the driver slew.
|
||||
wire_delay1 = elmore;
|
||||
load_slew1 = drvr_slew_;
|
||||
}
|
||||
}
|
||||
if (input_port_)
|
||||
dspfWireDelaySlew(load_pin, elmore, wire_delay1, load_slew1);
|
||||
else
|
||||
loadDelaySlew(load_pin, elmore, wire_delay1, load_slew1);
|
||||
}
|
||||
|
|
@ -322,14 +313,7 @@ DmpCeffTwoPoleDelayCalc::loadDelay(const Pin *load_pin,
|
|||
if (input_port_) {
|
||||
float elmore = 1.0F / p1;
|
||||
// Input port with no external driver.
|
||||
if (parasitics_->isReducedParasiticNetwork(drvr_parasitic_))
|
||||
dspfWireDelaySlew(load_pin, elmore, wire_delay1, load_slew1);
|
||||
else {
|
||||
// For RSPF on an input port the elmore delay is used for the
|
||||
// wire delay and the load slew is the same as the driver slew.
|
||||
wire_delay1 = elmore;
|
||||
load_slew1 = drvr_slew_;
|
||||
}
|
||||
dspfWireDelaySlew(load_pin, elmore, wire_delay1, load_slew1);
|
||||
}
|
||||
else {
|
||||
if (pole_count >= 2)
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ LumpedCapDelayCalc::findParasitic(const Pin *drvr_pin,
|
|||
const DcalcAnalysisPt *dcalc_ap)
|
||||
{
|
||||
const Corner *corner = dcalc_ap->corner();
|
||||
// set_load has precidence over parasitics.
|
||||
// set_load net has precidence over parasitics.
|
||||
if (!sdc_->drvrPinHasWireCap(drvr_pin, corner)) {
|
||||
Parasitic *parasitic = nullptr;
|
||||
const ParasiticAnalysisPt *parasitic_ap = dcalc_ap->parasiticAnalysisPt();
|
||||
|
|
|
|||
|
|
@ -134,14 +134,7 @@ SlewDegradeDelayCalc::loadDelay(const Pin *load_pin,
|
|||
delayAsFloat(drvr_slew_),
|
||||
delayAsFloat(wire_delay1));
|
||||
}
|
||||
else if (parasitics_->isReducedParasiticNetwork(drvr_parasitic_))
|
||||
dspfWireDelaySlew(load_pin, elmore, wire_delay1, load_slew1);
|
||||
else {
|
||||
// For RSPF on an input port the elmore delay is used for the
|
||||
// wire delay and the slew is copied from the driver.
|
||||
wire_delay1 = elmore;
|
||||
load_slew1 = drvr_slew_;
|
||||
}
|
||||
dspfWireDelaySlew(load_pin, elmore, wire_delay1, load_slew1);
|
||||
}
|
||||
thresholdAdjust(load_pin, wire_delay1, load_slew1);
|
||||
wire_delay = wire_delay1;
|
||||
|
|
|
|||
Loading…
Reference in New Issue