-
Notifications
You must be signed in to change notification settings - Fork 415
Equivalent sites #988
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
Equivalent sites #988
Conversation
I have added the WIP tag as the regression tests will fail due to the need of updating the architecture files. In fact now also the pin directs have to be provided to each equivalent site. I believe though that the major effort is completed and this PR can go through a first review step. |
I have just tried to manually update the archs and got the following error on all the regression tests:
I guess there is something wrong with the |
c3e33e0
to
f050da8
Compare
@kmurray I have solved the issue with routing. When assigning the physical pin index from the I have temporarily added the upgrade_arch.sh script step in Travis CI to check the regression tests (f050da8). CI should turn green, at least on the |
f050da8
to
58ce22c
Compare
52b86d0
to
1f3f6f4
Compare
@kmurray FYI, I have fixed the issues to let CI go green |
32aa70b
to
8c7d761
Compare
55c5ea7
to
b6f0a0b
Compare
@kmurray with this commit I am trying to get rid of the necessity of calling the |
8092c17
to
2411d95
Compare
@kmurray, @vaughnbetz Ping. This still needs some work, but IMO it is ready for review. |
TODO
|
2411d95
to
4696952
Compare
2dc250d
to
0062735
Compare
@kmurray @vaughnbetz I have added an initial small regression test to check the correct behavior of the equivalent tiles placement. CI went red when compiling with gcc-9 with the following output error:
Is this an infrastructure fault? |
92ba949
to
1805704
Compare
Build failure is probably caused by the build cache? If @kmurray can delete the cache it should work... |
Signed-off-by: Alessandro Comodi <[email protected]>
Also solved draw.cpp issue Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
This reverts commit a70d414. Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
…fferences This change enables a sorting of the logical block and physical tiles equivalent counterpart lists based on the differences in the number of pins. This ordering allows to select the "best" corresponding candidate of a logical/physical type when there is the need to access its data. This also allows to not rely on the `pick_random_type` function Signed-off-by: Alessandro Comodi <[email protected]>
equivalent: add compatibility check in is_legal_swap Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
added tutorial for using equivalent sites. Signed-off-by: Alessandro Comodi <[email protected]>
Deleted usage of the following utility functions as their functionality was not required anymore: - `int find_clb_pb_pin(ClusterBlockId clb, int clb_pin);` - `int find_pb_pin_clb_pin(ClusterBlockId clb, int pb_pin);` In fact they were returning different values depending on the `nets_and_pins_synced_to_z_coordinate` boolean which is currently unused. Added comments to newly introduced utility functions and changed name to have higher understendability Signed-off-by: Alessandro Comodi <[email protected]>
8054e20
to
ced5d94
Compare
@kmurray Thanks for the review. One note about the new changes: In fact they were returning different values depending on the |
Great, thanks @acomodi ! |
Description
This PR is a followup of #941. The main purpose is to add the equivalent sites placement. In fact, if the architecture specifies that a pb_type can be placed in two or more different physical tiles, the placer can now use those tiles.
Related Issue
#513
Motivation and Context
The placer should be able to find better solutions whenever there is a clustered block that could be placed in all the possible physical tiles that can be used.
This change neatly separates the domains of the packer and placer. This means that the placer becomes more flexible in finding solutions that are currently unfeasible and strictly dependent on the packer outcomes.
How Has This Been Tested?
There is a WIP regression test, which needs to be fixed.
Types of changes
Checklist: