This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

AXI4: Unaligned read transactions

Hi guys,

I'm new to the AXI ecosystem.

However, I have one question related to unaligned read transfers.


Does AXI4 support unaligned read transfers although er are no strobe lines?

If so, which data on the bus is written?

To make it easier, discuss it on the following example:

We have a memory with address 0 to 8 with the following content:


AddressContent
0x00x11
0x10x22
0x20x33
0x30x44
0x40x55
0x50x66
0x60x77
0x70x88
0x80x99

I have a bus width of 32 bit, a burst size of 32 bit, a burst length of 1. If I read from address 0x1,

which data does the host get? Does it get the 0x44332211?

Applying a burst length of 2 to the same example. Would this then return: 0x44332211 0x88776655?

Best regards,

Martin

Parents
  • Hi Martin,

    for the write transaction, WSTRB shows the valid byte lane of the aligned data bus.

    As the data on the RDATA or WDATA, it is aligned to the bus width.

    So the burst length is 1, the data on the bus is 0x44332211, and the burst length is 2, the data on the bus are 0x44332211, and 0x8877665544.

    The AXI reciver (master for read, slave for write) should get it according to the address lower bits.

    That is, if the address is 0x00000001, the master or slave should interrupt the data as

      0x443322 for the burst length is 1 and 0x887766_55443322 for the burst lenght is 2.

    Best regards,

    Yasuhiko Koumoto.

Reply
  • Hi Martin,

    for the write transaction, WSTRB shows the valid byte lane of the aligned data bus.

    As the data on the RDATA or WDATA, it is aligned to the bus width.

    So the burst length is 1, the data on the bus is 0x44332211, and the burst length is 2, the data on the bus are 0x44332211, and 0x8877665544.

    The AXI reciver (master for read, slave for write) should get it according to the address lower bits.

    That is, if the address is 0x00000001, the master or slave should interrupt the data as

      0x443322 for the burst length is 1 and 0x887766_55443322 for the burst lenght is 2.

    Best regards,

    Yasuhiko Koumoto.

Children