Wrap access on RAM size

This commit is contained in:
Alex Forencich
2021-11-16 17:13:18 -08:00
parent ea95eeaf0d
commit cb4b0e1738
2 changed files with 4 additions and 4 deletions

View File

@@ -31,7 +31,7 @@ class AxiRamWrite(AxiSlaveWrite, Memory):
super().__init__(bus, clock, reset, reset_active_level=reset_active_level, size=size, mem=mem, **kwargs) super().__init__(bus, clock, reset, reset_active_level=reset_active_level, size=size, mem=mem, **kwargs)
async def _write(self, address, data): async def _write(self, address, data):
self.write(address, data) self.write(address % self.size, data)
class AxiRamRead(AxiSlaveRead, Memory): class AxiRamRead(AxiSlaveRead, Memory):
@@ -39,7 +39,7 @@ class AxiRamRead(AxiSlaveRead, Memory):
super().__init__(bus, clock, reset, reset_active_level=reset_active_level, size=size, mem=mem, **kwargs) super().__init__(bus, clock, reset, reset_active_level=reset_active_level, size=size, mem=mem, **kwargs)
async def _read(self, address, length): async def _read(self, address, length):
return self.read(address, length) return self.read(address % self.size, length)
class AxiRam(Memory): class AxiRam(Memory):

View File

@@ -31,7 +31,7 @@ class AxiLiteRamWrite(AxiLiteSlaveWrite, Memory):
super().__init__(bus, clock, reset, reset_active_level=reset_active_level, size=size, mem=mem, **kwargs) super().__init__(bus, clock, reset, reset_active_level=reset_active_level, size=size, mem=mem, **kwargs)
async def _write(self, address, data): async def _write(self, address, data):
self.write(address, data) self.write(address % self.size, data)
class AxiLiteRamRead(AxiLiteSlaveRead, Memory): class AxiLiteRamRead(AxiLiteSlaveRead, Memory):
@@ -39,7 +39,7 @@ class AxiLiteRamRead(AxiLiteSlaveRead, Memory):
super().__init__(bus, clock, reset, reset_active_level=reset_active_level, size=size, mem=mem, **kwargs) super().__init__(bus, clock, reset, reset_active_level=reset_active_level, size=size, mem=mem, **kwargs)
async def _read(self, address, length): async def _read(self, address, length):
return self.read(address, length) return self.read(address % self.size, length)
class AxiLiteRam(Memory): class AxiLiteRam(Memory):