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

AXI Wrap Bursts

In case of wrapped bursts, we need to calculate first the Aligned_Address, using:

Suppose start address is 55, assuming 32 - bit bus, burst length of 4

Aligned_Address = (INT(Start_Address / Number_Bytes) ) * Number_Bytes;

The value is :: 52 or 56 i.e. do we have round to lower or upper value.

Then we calculate the wrap boundary, using
Wrap_Boundary = ((INT(Start_Address / (Number_Bytes * Burst_Length))) * (Number_Bytes * Burst_Length);

What does this wrap boundary actually indicate,
1. The address from where wrapping will take place.
2. The address value after wrap.


Also, if anyone can let me know in a step-wise manner how the address are calculated using the same scenario above, would be great.

Hope to see the replies soon.
Parents
  • Note: This was originally posted on 28th May 2009 at http://forums.arm.com

    >do we have round to lower or upper value.

    Wraps have to be aligned - so address 55 is not a legal address for 32-bit beat (must be 4 byte aligned). So it can't happen - a master should never generate the transaction.

    If you had an aligned 32-bit wrap of 4 beats starting at address 0x4 then you would get the following access pattern:

    0x4, 0x8, 0xc, 0x0

    The wrap boundary is considered 0xf in this case.

    Cheers, Iso
Reply
  • Note: This was originally posted on 28th May 2009 at http://forums.arm.com

    >do we have round to lower or upper value.

    Wraps have to be aligned - so address 55 is not a legal address for 32-bit beat (must be 4 byte aligned). So it can't happen - a master should never generate the transaction.

    If you had an aligned 32-bit wrap of 4 beats starting at address 0x4 then you would get the following access pattern:

    0x4, 0x8, 0xc, 0x0

    The wrap boundary is considered 0xf in this case.

    Cheers, Iso
Children
No data