AXI-stream interface violates AXI-stream protocol

조회 수: 10 (최근 30일)
Alexander
Alexander 2024년 1월 2일
I'm seeing peculiar behaviour when using backpressure in SoC blockset. This seems to stem from the AXI4-Stream interface not implementing the AXI protocol correctly.
According to the AXI protocol, data at C should not be sent.
The variation seems to make it impossible to apply back pressure after a single word is transfered.
I'm curious about the motitivation behind this variation to the protocol.
Given the variation, perhaps it should not be referred to as AXI4?
  댓글 수: 3
Alexander
Alexander 2024년 1월 2일
Thanks for your response.
According to the AXI spec: "Transfer occurs only when both the VALID and READY signals are HIGH." Unfortunately a diagram for this scenario is not provided.
Both valid and ready are only high at the clock edges labelled A, B, D and E below the diagram in my original post.
Siraj
Siraj 2024년 1월 8일
Hi Alexander.
If you look at the documentation it is clearly mentioned that
My understanding is that this approach might have been implemented to maintain system robustness and prevent undefined states. Do let me know if I'm mistaken.

댓글을 달려면 로그인하십시오.

답변 (1개)

Angela Cuadros Castiblanco
Angela Cuadros Castiblanco 2024년 1월 9일
Hello Alexander,
I'd like to provide some clarity on the protocol implementation within our IP core generation workflow. When mapping the design under test (DUT) ports to AXI4-Stream interfaces, we employ a "simplified streaming protocol" (https://www.mathworks.com/help/hdlcoder/ug/model-design-for-axi4-stream-interface-generation.html#mw_098fb3c4-788d-4b93-a616-647ae23569e4).
You are correct that there are variations between our simplified streaming protocol and the full AXI4-Stream protocol. The motivation behind this choice was to allow users to model with fewer signals, thereby simplifying the design process when compared to the full AXI4-Stream protocol. For an example of how to model signals using the simplified protocol, please refer to the example located just below the timing diagram that you referenced in your post.
To clarify further, the timing diagrams provided in our documentation correspond to the simplified streaming protocol, not the full AXI4-Stream protocol. We will make sure to review our documentation to ensure this distinction is clear and avoid any potential confusion.
It's important to note that the IP core includes wrapper logic in the generated HDL code that translates between the simplified protocol at the DUT boundary and the actual AXI4-Stream protocol at the IP core boundary. This ensures that while you work with a simplified set of signals in Simulink for ease of modeling, the full protocol's integrity is maintained at the IP core boundary.
We apologize for any inconvenience this may have caused. We are aware of the interest in implementing the full AXI4-Stream protocol signals and we are considering having the option to choose between the simplified protocol and the full AXI4-Stream protocol for future releases.

카테고리

Help CenterFile Exchange에서 Subsystems에 대해 자세히 알아보기

제품


릴리스

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by