BundleBridge: preserve width; don't use RegNext #2520
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.
RegNext erases the width of a UInt.
This leads to:
java.lang.IllegalArgumentException: requirement failed: hartPrefixNode.node (A nexus node with parent 'hartPrefixNode/topMod/topDesign/gen' at (BundleBridge.scala:144:31)) requires all outputs have equivalent Chisel Data types, but got
UInt<10>(Wire in BundleBridgeNexus)
vs
UInt(Reg in BundleBridgeNexus)
Using safeRegNext, we can keep the useful requirement check and still have
BundleBridgeNexus work when registered=true with a UInt.
@jackkoenig FYI
Type of change: bug report
Impact: no functional change
Development Phase: implementation