From dcb9a6bd027543194ab4f786035f8f767d7a24dc Mon Sep 17 00:00:00 2001 From: Alex Forencich Date: Sun, 7 Sep 2025 12:56:14 -0700 Subject: [PATCH] Rework reset logic to better handle X/Z Signed-off-by: Alex Forencich --- cocotbext/axi/reset.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/cocotbext/axi/reset.py b/cocotbext/axi/reset.py index dd5f59f..0938264 100644 --- a/cocotbext/axi/reset.py +++ b/cocotbext/axi/reset.py @@ -23,7 +23,7 @@ THE SOFTWARE. """ import cocotb -from cocotb.triggers import RisingEdge, FallingEdge +from cocotb.triggers import Edge class Reset: @@ -56,11 +56,14 @@ class Reset: async def _run_reset(self, reset_signal, active_level): while True: - if bool(reset_signal.value): - await FallingEdge(reset_signal) - self._ext_reset = not active_level - self._update_reset() - else: - await RisingEdge(reset_signal) + await Edge(reset_signal) + try: + level = bool(int(reset_signal.value)) + except ValueError: + continue + if level: self._ext_reset = active_level self._update_reset() + else: + self._ext_reset = not active_level + self._update_reset()