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

Rewrite Pin Spacing Algorithm #1160

Merged
merged 1 commit into from
Jun 23, 2022
Merged

Conversation

donn
Copy link
Collaborator

@donn donn commented Jun 23, 2022

~ Pins are now consistently spaced and centered.


Resolves #927.

Screenshot at 2022-06-23 15:01:02

@RTimothyEdwards
Copy link
Collaborator

@donn : This has always been an annoyance to me from Openlane. To me, pins are "correct" only when (1) they have the same width as a route width, (2) they are centered on the route grid, and (3) they are seprated by a multiple of the route grid pitch. Ideally, pins should never be equally spaced. The best method for pin placement is that you should be able to declare in a pin constraints file any absolute contraints the floorplanning imposes on the pin position, such as which side it should be placed on, and what order relative to other pins, and whether bits of a bus should always be placed together, and whether they can be permuted. Then, the placement tool should place the pins as close to the optimal position for minimum total route length as possible given the constraints. Floorplanning that absolutely fixes the position of all pins is guaranteed to produce a sub-optimal layout.

@donn
Copy link
Collaborator Author

donn commented Jun 23, 2022

@RTimothyEdwards I'll take a look at fulfilling these requirements after this is merged. The io_place.py script has always been somewhat haphazard for my liking.

@donn donn merged commit a633b1f into The-OpenROAD-Project:master Jun 23, 2022
@donn donn deleted the fix_892 branch July 26, 2022 21:14
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.

pins placed by ./scripts/io_place.py are not always equally spaced
3 participants