check: Skip detailed edge modeling if costly #4495
Merged
+75
−16
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What are the reasons/motivation for this change?
On real world designs like the Black Parrot,
check
can get stuck on some cells because of the edge data explosion. See e.g. this shift cellExplain how this is achieved.
For those cells for which the edge data is available and can exhibit a quadratic explosion, we check for the product of the input and output port widths, and if the product is over a threshold, we fall back to coarse connectivity modeling (we assume all output port bits are connected to all input port bits, like we do for cells for which the edge data is unavailable today).
At the same time, we introduce a new option to force the detailed modeling:
If applicable, please suggest to reviewers how they can test the change.
See this session on this somewhat synthetic example: