rsz: choose data buffers for automatic port buffering#10920
rsz: choose data buffers for automatic port buffering#10920naveenvenk17 wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates the buffer selection logic in Resizer::findBuffers to use a more accurate delay estimate (intrinsic delay plus drive resistance times input capacitance) instead of just the RC product. It also tracks the weakest selected buffer to set buffer_lowest_drive_ correctly. Consequently, test outputs for various technologies (ASAP7, GF180, Nangate45, Sky130HD, Sky130HS) have been updated to reflect the new buffer selections. There are no review comments, so I have no feedback to provide.
Signed-off-by: Naveen Venkat <archgen.guest@nyayanidhi.in>
This reverts commit 3ed6035. Signed-off-by: Naveen Venkat <archgen.guest@nyayanidhi.in>
Signed-off-by: Naveen Venkat <archgen.guest@nyayanidhi.in>
b45f9e3 to
bb952a4
Compare
|
I reworked this after Jenkins exposed repair and flow QoR changes in the first version. The new patch leaves timing repair and the pruned candidate list untouched. Only automatic port buffering gets the fast cell from the weakest drive-strength bucket. The previously failing repair regressions now match their existing results, and the direct Sky130 HD and GF180 tests select buf_1. |
Addresses the buffer_ports part of #10622.
When no buffer cell is specified, buffer_ports reused the timing-repair fallback. That fallback comes from the pruned list, whose RC score can leave a delay cell as the automatic choice.
This keeps the timing-repair candidate unchanged and gives port buffering its own selection. It looks at the weakest drive-strength bucket and picks the cell with the lowest intrinsic delay. Sky130 HD and GF180 now choose their regular buf_1 cells without relying on library-specific names.
Tested on the VM with the two PDK regressions, the nine repair regressions affected by the earlier attempt, the Resizer clang-tidy build, and ASan runs for Sky130 HD, GF180, and repair_design6.