vtr-verilog-to-routing
vtr-verilog-to-routing copied to clipboard
Improving Unrelated Clustering Feature in VPR
Description
In this pull request, we aim to improve the unrelated clustering feature in VPR. The current feature allows the packer to group unrelated molecules together, but it applies to all block types indiscriminately. We address this limitation by allowing users to set the feature separately for each block type.
Additionally, when the packer fails to pack the design densely enough to fit on the device, it currently turns on unrelated clustering for all block types, which can lead to worsened results for block types that were already fit. To resolve this issue, we have enabled the packer to turn on unrelated clustering only for block types whose utilization exceeds a certain threshold.
Motivation and Context
This improvement was motivated by the results of running the Titan23 benchmarks on a Stratix 10 device model with a fixed layout. Many IO-dense designs experienced congestion and routing failures due to the packer's indiscriminate use of the unrelated clustering feature. When the packer was unable to pack the IO pins densely enough, the unrelated clustering feature was turned on for all block types, including LABs, which led to increased congestion in the routing.
How Has This Been Tested?
The improved feature has been tested by using it on the designs that failed in the Titan23 benchmarks.
Types of changes
- [] Bug fix (change which fixes an issue)
- [ x] New feature (change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
Checklist:
- [ x] My change requires a change to the documentation
- [ x] I have updated the documentation accordingly
- [ ] I have added tests to cover my changes
- [ x] All new and existing tests passed
Looks good. Shouldn't affect QoR, but please check somehow (test QoR or confirm results don't change at all on a few circuits).
@kimiatkh : please resolve the conflicts and we can merge this. Please check at least one design gets identical QoR before and after the change.
@kimiatkh : it would be good to land this ...