test: Drive OBI backend ports with native obi_sim_mem#140
Open
DanielKellerM wants to merge 1 commit into
Open
Conversation
The OBI test path converted each backend OBI port to AXI via idma_obi2axi_bridge (per2axi), joined read+write with axi_rw_join, and shared one axi_sim_mem. The per2axi bridge wedges on rw-decoupled OBI transfers >512 B (stops accepting memory responses), hanging the vsim-sim-random OBI tests. The iDMA RTL is correct; the wedge is in the testbench bridge. Attach obi_sim_mem directly to the backend OBI ports (separate read/write mems, scoreboard seeds the read mem and checks the write mem), drop the per2axi bridges / axi_rw_join / AXI throttle+multicut for OBI, and repoint the OBI highlighters and watchdog to the native OBI handshakes. AXI path unchanged.
8182ba6 to
12e63c2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
The
vsim-sim-randomOBI tests (rw_obi,r_obi_w_axi,r_axi_w_obi,snitch_*) hang on rw-decoupled transfers ≳512 B. Root cause is in the testbench, not the iDMA RTL: the OBI path converts each backend OBI port to AXI via the vendoredper2axiperipheral converter, joins read+write withaxi_rw_join, and shares oneaxi_sim_mem. Under rw-decoupled burst traffic the per2axi bridge stops accepting memory responses (b_ready=0/r_ready=0while the memory holdsb_valid/r_valid), so nothing completes. The backend's native OBI write is independently proven deadlock-free against a responsive memory.Fix
Drive the backend's OBI ports with a native
obi_sim_mem(separate read/write memories; scoreboard seeds src in the read mem and checks dst in the write mem). Drop the per2axi bridges,axi_rw_join, and AXI throttle/multicut for OBI; repoint the OBI highlighters and watchdog to the native OBI handshakes. AXI path unchanged.Validation
Locally (Questa): rw_obi (incl. the previously-hanging seed), r_obi_w_axi, r_axi_w_obi, snitch variants, and rw_axi (AXI path) suites all green. This PR runs from an upstream branch so the GitLab sims execute in CI (fork PRs skip them).