-
Notifications
You must be signed in to change notification settings - Fork 375
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
Unbalanced buffer insertion on high fanout designs #2090
Comments
Hi, |
Hi,
I lost the exact setup i used in the screen shot, sorry, but i still had the outflow. I toke a video where i show a bit the paths.
In the verilog i feed openlane with, there is no handwritten buffer insertions, so those buffer come from somewere in the whole openlane flow, i don't know more.
Here is a design which can be used to recreate similar issues to the first case : And a video of the case 1: For case 2, I do not have the original verilog file, but here is the synthethised netlist (in case of, it may just be fine to swap it in the design_nax.zip) Thanks :) |
Description
Hi,
My setup:
I had a design with a high fanout part, where i had to read a few register based memory array (~2530 muxes to drive from one address).
Symptoms :
In such case, it seems that the buffer insertion done by the flow is very unbalanced, because that critical path was using a chain of 13 buffers (typical can out of 10), while an utopian balanced fanout would be able to reach 10^13 gates.
Here is an image to ilustrate, where in pink you can see the buffer chain for the high fanout net :
Here is for reference the critical path :
So, i don't know if you had similar issues / case ?
ex : clock enable / reset tree / ...
Proposal
No response
The text was updated successfully, but these errors were encountered: