-
Notifications
You must be signed in to change notification settings - Fork 187
Avoid wide signals in sensitivity lists of immediate assertions #229
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avoid wide signals in sensitivity lists of immediate assertions #229
Conversation
|
@michael-platzer Thanks for reporting this. With what Verilator version did you observe the failure? |
|
@colluca With version 5.018: I have not tested it with the latest version though. Do you happen to use a newer version for which these are handled correctly? |
|
Update: I tested the current code from Maybe this is just Verilator not properly supporting these complex assertions, but it could also be an indication there is something wrong and in need of fixing. @WRoenninger Could you please have a look? |
a904252 to
a0525f7
Compare
|
I did some investigation with @WRoenninger and we found that Verilator has issues with wide signals in sensitivity lists. With the latest version (5.028) all issues can be resolved by using |
colluca
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks @michael-platzer :)
Verilator has decent support for various types of assertions by now but dislikes wide signals (e.g., wider than 64 bits) in sensitivity lists.
a0525f7 to
38a94fe
Compare
|
Changed |
niwis
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @michael-platzer @WRoenninger for getting to the bottom of this!
The
addr_decode_dyncandmultiaddr_decodemodules feature some complex assertions (actuallyassumes to be precise) that are quite complex — too complex for Verilator it seems, which fails in unpredictable ways when these modules are present. Therefore, this PR disables those assertions in Verilator (based on whether theVERILATORpre-processor macro is defined).