Skip to content

rsz: choose data buffers for automatic port buffering#10920

Open
naveenvenk17 wants to merge 3 commits into
The-OpenROAD-Project:masterfrom
naveenvenk17:nv-rsz-buffer-intrinsic-delay
Open

rsz: choose data buffers for automatic port buffering#10920
naveenvenk17 wants to merge 3 commits into
The-OpenROAD-Project:masterfrom
naveenvenk17:nv-rsz-buffer-intrinsic-delay

Conversation

@naveenvenk17

@naveenvenk17 naveenvenk17 commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

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.

@naveenvenk17
naveenvenk17 requested a review from a team as a code owner July 15, 2026 10:57
@naveenvenk17
naveenvenk17 requested a review from jhkim-pii July 15, 2026 10:57

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Naveen Venkat added 3 commits July 15, 2026 12:25
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>
@naveenvenk17
naveenvenk17 force-pushed the nv-rsz-buffer-intrinsic-delay branch from b45f9e3 to bb952a4 Compare July 15, 2026 12:25
@naveenvenk17 naveenvenk17 changed the title rsz: include intrinsic delay in buffer pruning rsz: choose data buffers for automatic port buffering Jul 15, 2026
@naveenvenk17

Copy link
Copy Markdown
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant