Pass through full address for unaligned operations

Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
Alex Forencich
2023-01-25 16:27:14 -08:00
parent 824eba793d
commit 1c03ec4697
2 changed files with 18 additions and 6 deletions

View File

@@ -286,7 +286,10 @@ class AxiLiteMasterWrite(Region, Reset):
offset += 1
aw = self.aw_channel._transaction_obj()
aw.awaddr = word_addr + k*self.byte_lanes
if k == 0:
aw.awaddr = cmd.address
else:
aw.awaddr = word_addr + k*self.byte_lanes
aw.awprot = cmd.prot
if not self.wstrb_present and strb != self.strb_mask:
@@ -494,7 +497,10 @@ class AxiLiteMasterRead(Region, Reset):
for k in range(cycles):
ar = self.ar_channel._transaction_obj()
ar.araddr = word_addr + k*self.byte_lanes
if k == 0:
ar.araddr = cmd.address
else:
ar.araddr = word_addr + k*self.byte_lanes
ar.arprot = cmd.prot
await self.ar_channel.send(ar)