[csrng/dv] Tweak assertion control in csrng_intr_vseq #28455
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 commit addresses a rare dv failure that was caused by turning some assertions too early on again in csrng_intr_vseq.
Prior to the change, stray data items, injected into the data path pipeline through forcing FIFO-
wvld
signals during fault injection, sometimes triggered theCsrngCmdStageGenbitsFifoPushExpected_A
assertions in the command stages several cycles aftertest_cs_fatal_err()
was already completed but before the main vseq routine disabled the CSRNG again. This was happening becausetest_cs_fatal_err()
takes care of disabling the assertions in question, but re-enables them upon returning to the 'main' vseq which then waits for another 50 clock cycles before fully disabling the CSRNG with a CSR/RAL access, thereby preventing any further assertion triggering.At the same time, the vseq disabled some asserts too early where this really wasn't necessary, as the sub-tests do nothing that would trigger any assertions. I therefore also moved disabling the assertions to a later point in the vseq.
For further details, please see my review comment.