Skip to content

Commit 29bef29

Browse files
authored
Merge pull request #7924 from The-OpenROAD-Project-staging/rsz-ideal-clk-arrival
rsz: Fix ideal clock handling in driver delay modeling
2 parents ff90ff8 + af55d41 commit 29bef29

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

src/rsz/src/Rebuffer.cc

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ namespace rsz {
2121

2222
using odb::dbSigType;
2323
using sta::ArcDcalcResult;
24+
using sta::Arrival;
2425
using sta::Edge;
2526
using sta::fuzzyGreater;
2627
using sta::fuzzyGreaterEqual;
@@ -241,8 +242,12 @@ std::tuple<Delay, Delay, Slew> Rebuffer::drvrPinTiming(const BnetPtr& bnet)
241242
load_pin_index_map,
242243
dcalc_ap);
243244
rf_delay = dcalc_result.gateDelay();
244-
rf_correction = arrival_path->arrival()
245-
- (driver_path->arrival() + dcalc_result.gateDelay());
245+
246+
Arrival prev_arrival = driver_path->isClock(sta_)
247+
? search_->clkPathArrival(driver_path)
248+
: driver_path->arrival();
249+
rf_correction
250+
= arrival_path->arrival() - (prev_arrival + dcalc_result.gateDelay());
246251
rf_slew = dcalc_result.drvrSlew();
247252
} else {
248253
rf_delay = 0;

0 commit comments

Comments
 (0)