Why the WRAP burst can override the memory of next slave whereas INCR burst can't?

Hello Folks,

Need some clarification on the AHB WRAP and the INCR burst type.

a. The spec says, the master can’t cross the 1kB boundary, so they need to WRAP the address accordingly else the master might write the data onto the next slave memory. So for eg, 4 beat burst with word, and starting address as 0x34 goes like, 0x34 ->0x38 → 0x3c → 0x30

b. Whereas if its INCR type, the address moves along boundary and continues like 0x34 → 0x38 → 0x3C → 0x40. [or even for the INCR it cannot cross the address/memory access portion]

Why is such difference between the WRAP and INCR type ? Can anyone share your comments/thought process ?

Thanks !

In reply to desperadorocks:

1KB boundary is formed by memory locations 0 - 1023, 1024 - 2047, 2048 - 3071 …

Spec says that master cannot cross 1KB boundary with any burst transfers, it means address cannot go in a sequence of 1022, 1023, 1024(1KB Crossed), 1025. (E.g. burst on INCR4). If you calculate addresses for WRAP4 with starting address 1022, it’ll wrap after 1023 to 1021.

Try different combinations of HSIZE WRAPx and HADDR, you’ll observe that wrap transfers will never cross 1KB boundary.

Constraint of 1KB boundary is there in AHB because, each AHB slave can have min 1KB of addressable memory and by ensuring 1KB boundary we make sure that no burst transfer crosses from one slave to another.