Skip to content

[Fix] Hold DMA AXI address valid until ready - #33

Open
flaviens wants to merge 1 commit into
OFS:mainfrom
flaviens:agent/hold-axi-address-valid
Open

[Fix] Hold DMA AXI address valid until ready#33
flaviens wants to merge 1 commit into
OFS:mainfrom
flaviens:agent/hold-axi-address-valid

Conversation

@flaviens

@flaviens flaviens commented Aug 13, 2026

Copy link
Copy Markdown

Description

Issue AXI read and write addresses without waiting for READY. Waiting first can deadlock against a conforming target; each VALID now remains asserted until its handshake.

Collateral (docs, reports, design examples, case IDs):

None.

  • Document Update Required? No

Tests added:

Directed external RTL regression with READY asserted three cycles after VALID.

Tests run:

Verilator end-to-end DMA engine test: source read through the data FIFO to one destination write.

@flaviens
flaviens marked this pull request as ready for review August 13, 2026 16:42
Copilot AI lite review requested due to automatic review settings August 13, 2026 16:42

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.

Pull request overview

Adjusts the DMA AXI address-channel handshake behavior to avoid potential deadlock with conforming AXI targets by asserting address VALID independent of READY and holding it until the handshake completes.

Changes:

  • Write engine: stop waiting for AWREADY before issuing a write address request; assert AWVALID in SEND_WR_REQ until AWREADY handshakes.
  • Read engine: stop waiting for ARREADY before asserting ARVALID; remain in SEND_RD_REQ until ARREADY handshakes before advancing.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
tutorial/afu_types/01_pim_ifc/dma/hw/rtl/dma_write_engine.sv Removes AWREADY gating in IDLE and asserts AWVALID unconditionally in the request state until handshake.
tutorial/afu_types/01_pim_ifc/dma/hw/rtl/dma_read_engine.sv Removes ARREADY gating prior to request, and holds in request state until ARREADY completes the handshake.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

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