[rtl] Remove low utility assertions #2255
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 removes several assertions from
ibex_controller
. They aimed to ensure that controller behaviour was correct on exception behaviour (e.g. ensuring that a pending interrupt will actually trigger an interrupt). However they've proved to be flaky and hard to maintain with multiple edge cases needing to be accounted for.The co-simulation checking in functional verification will catch the same issues these assertions catch. The assertions (when working correctly) would cause a failure directly when the bug happens which makes debugging easier. However they've added significant effort in regression triage due to their many false failures so it's not worth the maintenance burden.
Within formal they don't really add any value now we have the full end-to-end formal flow.
I decided this was a sensible course of action when looking at the CI failure in #2214 (which was down to an incorrect failure in one of the removed assertions).