Skip to content

6D Router Lookahead #2445

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

Merged
merged 46 commits into from
Nov 24, 2023
Merged

6D Router Lookahead #2445

merged 46 commits into from
Nov 24, 2023

Conversation

amin1377
Copy link
Contributor

In this pull request, the main data structure of the router lookahead is updated to have six dimensions instead of five. The previous dimensions were: [dest. layer][chanx/y][seg_type][width][height].

The new dimensions are: [source layer][chanx/y][seg_type][dest. layer][width][height].

Previously, since the connections were only from OPINs, each layer had a separate router lookahead. In the case of die crossing, the minimum delay of the inter-layer connection was stored and added to the cost to reach the sink on the destination layer from that point.

As development progresses in adding inter-die connections, we needed to update the router lookahead to consider that connections can cross die on switch blocks. To achieve this, an additional dimension is added to the array. Therefore, the first index related to the layer is now the source layer, and the second index related to the layer pertains to the layer on which the sink is located.

@github-actions github-actions bot added the VPR VPR FPGA Placement & Routing Tool label Nov 17, 2023
@amin1377
Copy link
Contributor Author

Titan QoR:
Screenshot from 2023-11-23 08-42-25

@vaughnbetz
Copy link
Contributor

Slight 1.6% router time increase, but since place time is up .5% and pack time 1.9% this is hopefully machine load noise. In any case we need it so merging, and Amin is working on optimization of the overall lookahead size and compute time for the future (beyond this PR).

Copy link
Contributor

@vaughnbetz vaughnbetz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks fine; a few minor commenting changes etc. to consider. Could be done in a separate PR if you wish or we can merge without waiting for the commenting CI to finish/pass.

*/
std::pair<t_src_opin_delays, t_src_opin_inter_layer_delays> compute_router_src_opin_lookahead(bool is_flat);
t_src_opin_delays compute_router_src_opin_lookahead(bool is_flat);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should probably just get this from the router context, but your call.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't have it in the router context yet.

@amin1377
Copy link
Contributor Author

@vaughnbetz This PR is ready to merge

@vaughnbetz vaughnbetz merged commit 17a816a into master Nov 24, 2023
@vaughnbetz vaughnbetz deleted the 6d_router_lookahead branch November 24, 2023 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
VPR VPR FPGA Placement & Routing Tool
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants