The-OpenROAD-Project / OpenSTA

OpenSTA engine
GNU General Public License v3.0
389 stars 170 forks source link

Why load_slew in LumpedCapDelayCalc::loadDelay is scaled by multi_drvr_slew_factor_ twice? #71

Closed bravo-t closed 3 years ago

bravo-t commented 3 years ago

Hi James,

I'm a fan of the OpenSTA project. Recently I have been studying the code and I found something I cannot understand. As mentioned in the title, the value of load_slew multiplied by multi_drvr_slewfactor twice, one before thresholdAdjust, one after:

https://github.com/The-OpenROAD-Project/OpenSTA/blob/045b7a7c198fdb88941a2f554ff7649e34d8f5d0/dcalc/LumpedCapDelayCalc.cc#L188 https://github.com/The-OpenROAD-Project/OpenSTA/blob/045b7a7c198fdb88941a2f554ff7649e34d8f5d0/dcalc/LumpedCapDelayCalc.cc#L191

I think scale the slew value once is enough, is this code a duplicate multiplication, or am I missing anything? Thanks for the answer.

Regards, Bin

jjcherry56 commented 3 years ago

You are correct, it is wrong. Fixed by 72d1df9e LumpedCapDelayCalc::loadDelay multi_driver derate once