Fix width of ChiselEnum values in emitted FIRRTL #4200
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.
This is primarily a bug fix, but it changes widths in a way that could silently break user code so I'm framing this as an API Modification that has instructions for users when bumping Chisel. In #3824 we added
--use-legacy-shift-right-width
to help users migrate to the fixed width semantics for shift-right. I have renamed that option--use-legacy-width
and added this width behavior change to the option.--use-legacy-width
is purely a code migration option, this behavior will only be "optionally preserved" for migrating code to Chisel 7, it will be removed in Chisel 8.Contributor Checklist
docs/src
?Type of Improvement
Desired Merge Strategy
Release Notes
Fixes #4159.
Previously, the width reported by Chisel under
.getWidth
was inconsistent with the width of the emitted FIRRTL forChiselEnum
values cast toUInt
.Temporarily preserve the old behavior under CLI option
--use-legacy-width
(formerly known as--use-legacy-shift-right-width
). Users are encouraged to build Verilog with and without this option enabled and diff the result to verify that this change in width behavior did not silently affect the correctness of their designs.Reviewer Checklist (only modified by reviewer)
3.6.x
,5.x
, or6.x
depending on impact, API modification or big change:7.0
)?Enable auto-merge (squash)
, clean up the commit message, and label withPlease Merge
.Create a merge commit
.