2 Commits

Author SHA1 Message Date
71dc00e850 Fix some cocotb 2.0 warnings
Some checks failed
build / Build distributions (release) Successful in 8s
build / deploy (release) Successful in 7s
Regression Tests / Python 3.10 (push) Has been cancelled
Regression Tests / Python 3.11 (push) Has been cancelled
Regression Tests / Python 3.12 (push) Has been cancelled
Regression Tests / Python 3.13 (push) Has been cancelled
Regression Tests / Python 3.8 (push) Has been cancelled
Regression Tests / Python 3.9 (push) Has been cancelled
2026-02-08 13:12:22 -08:00
aa3605a55c Remove extra wait which violated apb spec
Some checks failed
build / Build distributions (push) Successful in 31s
build / deploy (push) Has been skipped
build / Build distributions (release) Successful in 23s
build / deploy (release) Successful in 32s
Regression Tests / Python 3.10 (push) Has been cancelled
Regression Tests / Python 3.11 (push) Has been cancelled
Regression Tests / Python 3.12 (push) Has been cancelled
Regression Tests / Python 3.13 (push) Has been cancelled
Regression Tests / Python 3.8 (push) Has been cancelled
Regression Tests / Python 3.9 (push) Has been cancelled
2026-02-08 00:50:04 -08:00
3 changed files with 11 additions and 10 deletions

View File

@@ -146,6 +146,9 @@ class ApbMaster(ApbPause, Region, Reset):
self.command_queue.queue_occupancy_limit = 2 self.command_queue.queue_occupancy_limit = 2
self.current_command = None self.current_command = None
self.read_resp = None
self.write_resp = None
self.in_flight_operations = 0 self.in_flight_operations = 0
self._idle = Event() self._idle = Event()
self._idle.set() self._idle.set()
@@ -268,7 +271,7 @@ class ApbMaster(ApbPause, Region, Reset):
await self.command_queue.put(ApbWriteCmd(address, data, prot, event)) await self.command_queue.put(ApbWriteCmd(address, data, prot, event))
await event.wait() await event.wait()
return event.data return self.write_resp
async def _write_wrapper(self, address, data, prot, event): async def _write_wrapper(self, address, data, prot, event):
event.set(await self.write(address, data, prot)) event.set(await self.write(address, data, prot))
@@ -294,7 +297,7 @@ class ApbMaster(ApbPause, Region, Reset):
await self.command_queue.put(ApbReadCmd(address, length, prot, event)) await self.command_queue.put(ApbReadCmd(address, length, prot, event))
await event.wait() await event.wait()
return event.data return self.read_resp
async def _read_wrapper(self, address, length, prot, event): async def _read_wrapper(self, address, length, prot, event):
event.set(await self.read(address, length, prot)) event.set(await self.read(address, length, prot))
@@ -399,8 +402,6 @@ class ApbMaster(ApbPause, Region, Reset):
while self.pause: while self.pause:
await clock_edge_event await clock_edge_event
await clock_edge_event
if k == 0: if k == 0:
self.bus.paddr.value = cmd.address self.bus.paddr.value = cmd.address
else: else:
@@ -438,14 +439,14 @@ class ApbMaster(ApbPause, Region, Reset):
if pwrite: if pwrite:
self.log.info("Write complete addr: 0x%08x prot: %s resp: %s length: %d", self.log.info("Write complete addr: 0x%08x prot: %s resp: %s length: %d",
cmd.address, cmd.prot, resp, length) cmd.address, cmd.prot, resp, length)
write_resp = ApbWriteResp(cmd.address, length, resp) self.write_resp = ApbWriteResp(cmd.address, length, resp)
cmd.event.set(write_resp) cmd.event.set()
else: else:
if self.log.isEnabledFor(logging.INFO): if self.log.isEnabledFor(logging.INFO):
self.log.info("Read complete addr: 0x%08x prot: %s resp: %s data: %s", self.log.info("Read complete addr: 0x%08x prot: %s resp: %s data: %s",
cmd.address, cmd.prot, resp, ' '.join((f'{c:02x}' for c in read_data))) cmd.address, cmd.prot, resp, ' '.join((f'{c:02x}' for c in read_data)))
read_resp = ApbReadResp(cmd.address, bytes(read_data), resp) self.read_resp = ApbReadResp(cmd.address, bytes(read_data), resp)
cmd.event.set(read_resp) cmd.event.set()
self.current_write_command = None self.current_write_command = None

View File

@@ -56,7 +56,7 @@ class Reset:
async def _run_reset(self, reset_signal, active_level): async def _run_reset(self, reset_signal, active_level):
while True: while True:
await Edge(reset_signal) await reset_signal.value_change
try: try:
level = bool(int(reset_signal.value)) level = bool(int(reset_signal.value))
except ValueError: except ValueError:

View File

@@ -1 +1 @@
__version__ = "0.1.27" __version__ = "0.1.29"