fix numerical overflow in bit shift operation#41
Open
bunnie wants to merge 1 commit intoalexforencich:masterfrom
Open
fix numerical overflow in bit shift operation#41bunnie wants to merge 1 commit intoalexforencich:masterfrom
bunnie wants to merge 1 commit intoalexforencich:masterfrom
Conversation
In `xsim`, the limited precision of the shift-right argument causes overflow when the shift amount is multiplied by data width, leading to a result of always 0. This creates an explicitly sized shift right argument to fix this small compatibility issue.
d6fd38f to
59d37ee
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
In
xsim, the limited bit width of the shift-right argumentr_grant_encodedcauses overflow when the shift amount is multiplied by DATA_WIDTH, leading to a result of always 0 (for example, on a 32-bit wide 3x1 crossbar,r_grant_encodedwould have a bit width of 2 bits, which is then multiplied by 32, which yields 0 for any value ofr_grant_encodedthat is multiplied and then stuffed back into its 2-bit specified width).This creates an explicitly sized shift right argument to fix this small compatibility issue. I'm not actually sure if this is a bug is
xsim(this is the Xilinx Vivado simulator) or if it's an issue with the code; however, empirically, this fixes an issue encountered simulating the code.