-
Notifications
You must be signed in to change notification settings - Fork 792
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
[dv,mbx] Initial mailbox stress sequence #20538
Conversation
a059e41
to
11b7641
Compare
As reported by CI I'm afraid there's an oversight somewhere in my attempt to use mbx_reg_pkg within the DV environment. This was a change made to use the auto-generated offsets of the WDATA and RDATA registers within the SoC-side register address space, but it looks as though one or more FuseSoC core files needs modifying. Also, there's an unnamed use of an isolation fork within mbx_base_vseq.sv/wait_for_core_signal. Sorry. |
ba34163
to
7ad7abf
Compare
rebased |
Migrate code from smoke sequence into base sequence to form the basis of a test suite include stress sequences. Minor corrections. No significant impact upon current smoke sequence. Signed-off-by: Adrian Lees <[email protected]>
Introduce constrained, randomized sequence item that describes a request and response communication. Multiple back-to-back transactions between IP block resets. Multiple iterations, separated by IP block resets. Signed-off-by: Adrian Lees <[email protected]>
7ad7abf
to
f387511
Compare
Simple stress test runs more iterations of more transactions. To be extended. Signed-off-by: Adrian Lees <[email protected]>
Generate SoC-side Aborts, Core-side Errors and Core-Side FW-initiated resets (Abort acknowledgements). Support interrupt-driven or CSR-driven operation. Signed-off-by: Adrian Lees <[email protected]> Co-authored-by: Harry Callahan <[email protected]>
Randomization of TL-UL access and response timings within stress sequence(s). Introduce 'zero delays' stress sequence for throughput testing and exercising back-pressuring logic. Signed-off-by: Adrian Lees <[email protected]>
Signed-off-by: Harry Callahan <[email protected]>
f387511
to
9dac667
Compare
After spending some time reviewing the code and running some simulations, I feel confident in merging this PR as an initial stress-testing environment for the mbx at block-level. With the lack of a fleshed-out scoreboard, I think this routine does a decent job of modelling expectations of nominal message passing + random insertion of stressors (abort, error). I have observed the stimulus described in the PR description in waveforms, and without block-level fcov to confirm this I think it is in a good state to be merged to progress the DV story.
|
PR including some initial work on a stress test, intended to progress the mailbox DV effort at block level.
Limitations:
and the request and response are checked but by (i) reading from memory after the request
has been received, and (ii) collecting and checking the response after SoC-side CSR reads.
Restructured sequences mimic DMA DV:
Improvements over existing basic smoke test:
Note:
which is not expecting errors.
Does trip a couple of SV assertions in the RTL which are not checking logic failures within theRTL but rather checking that SoC/DV side is not misbehaving such as writing data when should not;
however, such events do unavoidably occur when the DV side is aborting/resetting the mailbox.
And can on the live system; should perhaps be coverage points rather than assertions?!
Closes lowRISC/opentitan-integrated#572