archapi: Add new API for global constant routing #1228
Merged
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.
High-fanout dedicated global constant routing has been a weak spot in nextpnr, and a previous complexity in e.g. Xilinx support, where it necessitated complex virtual routing structures so the general routers could route them efficiently.
This removes all the arch complexity by allowing wires to be tagged as having a constant value, and therefore creates a simplified backwards routing problem for constants, allowing such wires to have multiple sources.
This should also solve some of the performance problems with router1 for nextpnr-nexus.