-
Notifications
You must be signed in to change notification settings - Fork 415
Mark fixed blocks #1759
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
Mark fixed blocks #1759
Conversation
…n the grid as fixed and changed definition of Region::empty() to show false for a region that contains one grid location
…possible dimensions, or it is uninitialized. This change was needed because previously, the default uninitialized values would be seen as impossible dimensions (and therefore empty) and now they are not because of the recent change to the empty routine
…ck covers one tile or more than one tile. This was needed to decide which blocks to mark as fixed
…ed after function to check number of tiles was written
QoR results on this branch: |
@vaughnbetz Does this look good to merge? |
I'm currently waiting for the QoR results to finish running, once that happens I will post the QoR results for the updated code |
…gions cover the same tile
New QoR comparison: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some changes requested.
…Initialize the structures using utility function init_placement_context, which is also used during the do place flow
@vaughnbetz Does this look ok to merge once the CI goes green? |
The changes look good; will merge when CI goes green. One final feedback: using loop counters that indicate what you are looping over is a bit better than just using i. E.g. in the code looping over regions, you could use one of ireg/iregion/irect instead of i, and it would make the loop a bit easier to understand. |
@vaughnbetz The CI has passed, is this PR good to be merged now? |
Description
Before starting initial placement, the added code loops through the cluster blocks netlist to see whether any of the blocks have floorplan constraints that lock them to one grid location. For the blocks that are thus locked, the .is_fixed flag is set, and their locations are marked, meaning that the blocks will be skipped during initial placement, and they will not be moved during simulated annealing.
Related Issue
This pull request is related to adding floorplanning placement constraints to VPR, as described in this issue #932