Support for Memory Mapped Subordinate VIP for multi-beat transactions?

Why OSVVM™? Forums OSVVM Support for Memory Mapped Subordinate VIP for multi-beat transactions?

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #2619
    Alpha
    Member

    Scenario: my module has an AXI4 Memory Mapped Master interface; I want to test this interface with OSVVM VIP. For single beat transactions I can use the Subordinate VIP with no issues (eg. GetWriteAddress() and GetWriteData() succeed). However, for multi-beat (>1 beat) transactions, the Axi4_VC_user_guide states “The Axi4Subordinate only supports single word transfers. Its interface is a little like a Manager Read /Write and a little like Stream Send/Get. For burst transactions, see the Axi4Memory Subordinate. ” on page 29; and on page 30: “Only basic single word transactions are currently supported. ” for Axi4 Memory.

    Is there no multi-beat burst support then for the subordinate side of a write channel?
    I would like to test my IP with (something that would probably be called) GetWriteDataBurst() procedure, that receives all of the beats in a multi-beat burst.

    #2620
    Jim Lewis
    Member

    Hi Alpha,
    The Axi4Memory supports the full capability of the AXI4 bus from the DUT side interface – including a multi-beat burst. This allows the DUT to interact with any addressable location in the memory. Be careful to keep your address space reasonable as the Axi4Memory creates a data structure and sizes above 2**40 are not currently supported. We start throwing warnings at 2**34 bits of memory as this seems to slow some simulators down.

    The Axi4Subordinate (separate VC) does not support bursting. This VC is intended to emulate a register based subordinate – which generally do not support bursting.

    Page 30 describes the transaction interface to the Axi4Memory that allows the test sequencer (TestCtrl) to access the memory also. This interface is not about talking to your DUT. Instead it gives TestCtrl a back door into the memory model and allows it to introspect the contents of memory. These accesses complete in a couple of delta cycles – be careful about doing too many consecutively without time passing as you can hit the delta cycle iteration limit.

    I will look at updating the documentation to clarify this.

    #2621
    Jim Lewis
    Member

    I have pushed an update to the documentation on GitHub to clarify this issue. If you navigate from OsvvmLibraries navigate from the dev branch. If you navigate directory to Documenation repository – it is the most recent push.

    A direct link to it is here: https://github.com/OSVVM/Documentation/blob/main/Axi4_VC_user_guide.pdf

    Thanks for the question as it helps improve the documentation.

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.