Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove DONT_BUFFER_PORTS #1098

Conversation

antonblanchard
Copy link
Collaborator

@antonblanchard antonblanchard commented May 17, 2022

DONT_BUFFER_PORTS was used to work around a bug in OpenROAD where it would
add buffers to tristate nets. Since this issue is fixed (and the workaround
is no longer used in caravel), remove it.


Resolves #1095

DONT_BUFFER_PORTS was used to work around a bug in OpenROAD where it would
add buffers to tristate nets. Since this issue is fixed (and the workaround
is no longer used in caravel), remove it.
@kareefardi
Copy link
Collaborator

kareefardi commented May 17, 2022

I am just highlighting that one extra thing offered by DONT_BUFFER_PORTS is that you have control over which output ports to remove buffers from.

@donn donn requested a review from kareefardi May 17, 2022 12:38
@donn
Copy link
Collaborator

donn commented May 17, 2022

@kareefardi I'll leave reviewing this one to you since it's more your domain.

@antonblanchard
Copy link
Collaborator Author

@kareefardi if it is still useful, perhaps we can something to the documentation.

@kareefardi
Copy link
Collaborator

@antonblanchard I would prefer that as it can be useful beyond the scope of tristate nets buffering.

@jjcherry56
Copy link

The real issue here is that run_placement calls remove_buffers after repair_design, which removes any buffers inserted by repair_design to fix max slew, cap, fanout or long wire violations. That makes no sense at all. Buffers inserted by synthesis (which has no awareness of placement or parasitics should be removed BEFORE repair_design, not after.

@antonblanchard
Copy link
Collaborator Author

@jjcherry56 makes sense. @kareefardi do you have a way to test this feature? Could you make the suggested change and test if it still works?

@donn
Copy link
Collaborator

donn commented Jul 25, 2022

Sorry, we can't merge this.

This feature is needed for some internal designs where the resizer would add buffers to output nets. We can't find a method to declare a net as untouchable. If there is one such method in OpenROAD, @maliberty, please point us to it.

I will rename the fn explicitly to remove_port_buffers and clearly label it as a workaround for something.

@donn donn closed this Jul 25, 2022
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.

Add OpenROAD remove_buffers to flow
4 participants