Skip to content

test: Drive OBI backend ports with native obi_sim_mem#140

Open
DanielKellerM wants to merge 1 commit into
develfrom
test/obi-native-mem
Open

test: Drive OBI backend ports with native obi_sim_mem#140
DanielKellerM wants to merge 1 commit into
develfrom
test/obi-native-mem

Conversation

@DanielKellerM

Copy link
Copy Markdown
Collaborator

Problem

The vsim-sim-random OBI 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 vendored per2axi peripheral converter, joins read+write with axi_rw_join, and shares one axi_sim_mem. Under rw-decoupled burst traffic the per2axi bridge stops accepting memory responses (b_ready=0/r_ready=0 while the memory holds b_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).

Copilot AI review requested due to automatic review settings June 22, 2026 16:44

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants