Skip to content

Comments

[rsz] Change RSZ-0075 warning to debug + remove pre-placement buffer attempt#3900

Open
openroad-ci wants to merge 3 commits intoThe-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:secure-fix-issue-5988
Open

[rsz] Change RSZ-0075 warning to debug + remove pre-placement buffer attempt#3900
openroad-ci wants to merge 3 commits intoThe-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:secure-fix-issue-5988

Conversation

@openroad-ci
Copy link
Collaborator

Summary

  • Update OpenROAD submodule: change makeBufferedNet failed from WARNING (RSZ-0075) to debug message
  • Remove meaningless estimate_parasitics -placement call in floorplan stage (cells are unplaced at (0,0))
  • Remove buffer from repair_timing sequence in floorplan stage (buffering always fails without parasitics)

Background

During the floorplan stage, repair_timing is called with -sequence "unbuffer,sizeup,swap,buffer,vt_swap".
The buffer move calls makeBufferedNet() which immediately returns nullptr when ParasiticsSrc::none,
generating 1000+ warning messages per design. Cells are unplaced (all at origin), so buffering is impossible.

Resolves

Test plan

  • All 189 rsz regression tests pass
  • ORFS CI: First commit (OpenROAD submodule only) - baseline QoR
  • ORFS CI: Second commit (floorplan.tcl changes) - verify identical QoR

🤖 Generated with Claude Code

jhkim-pii and others added 2 commits February 20, 2026 17:41
Point to secure-fix-issue-5988 branch which changes the
makeBufferedNet warning (RSZ-0075) to a debug message.

Resolves OpenROAD#5988, OpenROAD#8988

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
In the floorplan stage, all cells are unplaced (at origin 0,0):
- Remove `estimate_parasitics -placement` before replace_arith_modules
  since zero-wire parasitics are less accurate than wire load models
- Remove `buffer` from repair_timing sequence since makeBufferedNet
  always returns nullptr when ParasiticsSrc::none (1168 wasted calls
  on asap7/aes, 0 buffers inserted)

Other moves (unbuffer, sizeup, swap, vt_swap) continue to work
correctly with wire load models.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
}

if { [env_var_exists_and_non_empty SWAP_ARITH_OPERATORS] } {
log_cmd estimate_parasitics -placement
Copy link
Contributor

Choose a reason for hiding this comment

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

Unplaced at this stage.

} else {
# Skip clone & split
repair_timing_helper -setup -skip_last_gasp -sequence "unbuffer,sizeup,swap,buffer,vt_swap"
repair_timing_helper -setup -skip_last_gasp -sequence "unbuffer,sizeup,swap,vt_swap"
Copy link
Contributor

Choose a reason for hiding this comment

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

@povik I removed buffer strategy here because buffering was not performed since cells are unplaced. Do you think that we should use gain-based buffering in floorplan stage rather than skipping the buffering?

Copy link
Contributor

Choose a reason for hiding this comment

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

We remove buffers at 3_2 so any buffering we do at floorplan will be short-lived. Perhaps it's useful to do it anyway to get a more accurate timing report and to guide other resizer operations which look at timing. Matt and I have discussed this a couple of times but never did any changes as it always seemed low priority.

Copy link
Contributor

Choose a reason for hiding this comment

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

Thank you for sharing.
Then the buffering in floorplan stage may require a sufficient research to make it valuable.
IMO, removing the buffer strategy looks better for now.

@precisionmoon @maliberty Any other thoughts?

Copy link
Member

Choose a reason for hiding this comment

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

I think it currently does little as most moves abort when there is no placement. If a secure CI confirms I am ok to remove it. The original thought was to use gain-based buffering here.

Copy link
Contributor

Choose a reason for hiding this comment

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

OK. Then let's merge this PR after resolving the merge conflict caused by MCMM update.

I'll check if the gain-based buffering in floorplan stage is meaningful gain or not, and open a new PR if it shows meaningful gain.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants