test: cover event generator IRQ 11 FIFO path - #375
MikeOpenHWGroup merged 3 commits into
Conversation
Add a reusable FuseSoC regression for the event 7 and 8 FC FIFO path, including masking, event IDs, interrupt acknowledgments, and simultaneous events. Clarify that the separate direct output is unused in CORE-V-MCU and document the CPU acknowledgment followed by FIFO CSR read sequence. Signed-off-by: Shivam Tiwari <shivamtiwari020505@gmail.com>
There was a problem hiding this comment.
Pull request overview
This PR adds regression coverage and documentation around the APB event controller’s FC FIFO / CPU IRQ 11 delivery path, specifically validating that events 7 and 8 are delivered via the masked FIFO semantics (and not via the separate direct fc_events_o[1:0] mirror output).
Changes:
- Added a self-checking SystemVerilog testbench that verifies masking behavior, FIFO event ID capture timing, IRQ 11 acknowledgment semantics, and simultaneous delivery of events 7/8.
- Added a reusable FuseSoC target (
event-generator-test) to run the event-generator regression with Verilator or Icarus. - Updated documentation and TB README guidance to clarify the unused direct-output path and to document the IRQ 11/FIFO CSR capture/pop behavior.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| tb/soc_event_generator_tb.sv | New self-checking regression test for events 7/8 through the FC FIFO and IRQ 11 path |
| tb/README.md | Adds instructions for running the new FuseSoC regression target |
| docs/doc-src/ip-blocks/apb_event_cntrl.rst | Clarifies FC direct-output vs FIFO-based IRQ 11 path and documents FIFO CSR capture timing |
| core-v-mcu.core | Adds a new FuseSoC fileset/target to build and run the regression under Verilator/Icarus |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Signed-off-by: Shivam Tiwari <shivamtiwari020505@gmail.com>
|
I really like this contribution @shivamtiwari020505 and I would like to suggest we organize it to better reflect the its focus. The top-level The location of |
Move the event generator RTL and focused regression into a dedicated module directory and FuseSoC core. Keep the top-level testbench and core focused on full CORE-V-MCU integration, with module-local Verilator and Icarus entry points. Signed-off-by: Shivam Tiwari <shivamtiwari020505@gmail.com>
MikeOpenHWGroup
left a comment
There was a problem hiding this comment.
Thanks for this @shivamtiwari020505, LTGM. I am approving these changes, but will not merge until @cst-aditya has a chance to comment (they made the previous update to apb_event_cntrl.rst).
|
Understood, Mike. I’ll wait for @cst-aditya to review the documentation update and will address any feedback they may have. |
|
Hi @MikeOpenHWGroup, @shivamtiwari020505 I reviewed the updates in apb_event_cntrl.rst and they look good to me. |
|
Thanks @cst-aditya. I will merge this in. |
Summary
Rationale
Investigation of issue #355 found that events 7 and 8 already enter the normal FC arbitration and FIFO path when their FC mask bits are cleared.
The separate fc_events_o[1:0] output mirrors these events directly but has no downstream consumer in CORE-V-MCU. Connecting that output to IRQ 11 would bypass the event mask and FIFO event-ID semantics.
This PR adds regression coverage and documentation without changing the RTL interrupt map or existing software behavior.
Testing
Related to #355.