vunit icon indicating copy to clipboard operation
vunit copied to clipboard

Unaligned addresses with axi_read_slave

Open crdavis12 opened this issue 2 years ago • 3 comments

Fixing how axi_read_slave handles unaligned addresses.

Let's say your memory looks like this: byte 0 = 0x00 byte 1 = 0x01 byte 2 = 0x02 byte 3 = 0x03 byte 4 = 0x04 byte 5 = 0x05

AXI4 read request looks like this: bus width = 4 bytes ARADR = 2 ARLEN = 0 (1 word)

On RDATA I would expect to see 0x03020100 or maybe 0x0302---- since the lower 2 bytes aren't valid.

Instead you get 0x03020504 for the first transfer, 0x07060908 for the second, etc. This change fixes the rotated data.

Mentioned in #851 but not exactly the same issue.

crdavis12 avatar May 16 '23 20:05 crdavis12

~TODO: Need to update tests~

crdavis12 avatar May 16 '23 21:05 crdavis12

Any word on when this might be able to be merged? I heard something about breaking verification components out into a different repo -- planning to wait for that first?

crdavis12 avatar Aug 22 '23 16:08 crdavis12

@LarsAsplund -- any chance of getting this released as a 4.7.1 patch? We've had internal tools pointing to this branch for a while now but would be nice to get rid of that workaround.

crdavis12 avatar Jul 08 '24 18:07 crdavis12