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 2nd July 2009 at http://forums.arm.com

    However, assuming a start address of 56 the following calculation would apply:

    Burst Len = 32-bit beat * 4 beats = 16 bytes

    Aligned address:
    = INT(56 / 16) * 16
    = INT(3.5) * 16
    = 3 * 16
    = 48

    Wrap boundary:
    = highest byte accessed in burst
    = 48 + 16 -1
    = 63

    Access Pattern:
    = 56, 60, 48, 52


    Just guessing here, but I would assume that the OP is trying to create an AXI transaction such that the first beat includes data from address 55. Being a 32 bit access, the corresponding aligned word address is 52. The resulting access pattern would be: 52, 56, 60, 48.

    Regards
    Marcus
    [url="http://www.doulos.com/arm/"]http://www.doulos.com/arm/[/url]
Reply
  • Note: This was originally posted on 2nd July 2009 at http://forums.arm.com

    However, assuming a start address of 56 the following calculation would apply:

    Burst Len = 32-bit beat * 4 beats = 16 bytes

    Aligned address:
    = INT(56 / 16) * 16
    = INT(3.5) * 16
    = 3 * 16
    = 48

    Wrap boundary:
    = highest byte accessed in burst
    = 48 + 16 -1
    = 63

    Access Pattern:
    = 56, 60, 48, 52


    Just guessing here, but I would assume that the OP is trying to create an AXI transaction such that the first beat includes data from address 55. Being a 32 bit access, the corresponding aligned word address is 52. The resulting access pattern would be: 52, 56, 60, 48.

    Regards
    Marcus
    [url="http://www.doulos.com/arm/"]http://www.doulos.com/arm/[/url]
Children
No data