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

Alignment Address Calculation in AHB

Hello I want to know the calculation for

HSIZE=2 and Wrap 8

and starting address is 0x4

and how we are doing alignment ???

Parents
  • HSIZE=2 means 32-bit transfers, so 4 byte address increments.

    The wrapping boundary for an 8-beat, 4 byte WRAP burst will be on multiples of 8x4 bytes, so 32-byte boundaries (HADDR multiples of 0x20).

    So starting at 0x4 the WRAP8 burst will access 0x4, 0x8, 0xC, 0x10, 0x14, 0x18 then 0x1C. As the next (8th) address increment would hit the wrap boundary, the next (and final) access would instead wrap back to 0x0.

    The HTRANS value for the 0x0 access is still SEQ because this is a sequential expected step for this WRAP burst sequence (it isn't a NONSEQ step).

    Hopefully that answers your question.

Reply
  • HSIZE=2 means 32-bit transfers, so 4 byte address increments.

    The wrapping boundary for an 8-beat, 4 byte WRAP burst will be on multiples of 8x4 bytes, so 32-byte boundaries (HADDR multiples of 0x20).

    So starting at 0x4 the WRAP8 burst will access 0x4, 0x8, 0xC, 0x10, 0x14, 0x18 then 0x1C. As the next (8th) address increment would hit the wrap boundary, the next (and final) access would instead wrap back to 0x0.

    The HTRANS value for the 0x0 access is still SEQ because this is a sequential expected step for this WRAP burst sequence (it isn't a NONSEQ step).

    Hopefully that answers your question.

Children