From 71be7f50d52991fdc3c3d5e1e4560e98b38d05b3 Mon Sep 17 00:00:00 2001 From: Alex Forencich Date: Sun, 7 Sep 2025 13:21:40 -0700 Subject: [PATCH] Rework reset logic to better handle X/Z Signed-off-by: Alex Forencich --- cocotbext/eth/reset.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/cocotbext/eth/reset.py b/cocotbext/eth/reset.py index dd5f59f..0938264 100644 --- a/cocotbext/eth/reset.py +++ b/cocotbext/eth/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()