Clean up reset implementation

This commit is contained in:
Alex Forencich
2021-03-06 18:31:40 -08:00
parent 63b60341ed
commit 1b180a1d64

View File

@@ -27,13 +27,13 @@ from cocotb.triggers import RisingEdge, FallingEdge
class Reset: class Reset:
def _init_reset(self, reset_signal=None, active_high=True): def _init_reset(self, reset_signal=None, active_level=True):
self._local_reset = False self._local_reset = False
self._ext_reset = False self._ext_reset = False
self._reset_state = True self._reset_state = True
if reset_signal is not None: if reset_signal is not None:
cocotb.fork(self._run_reset(reset_signal, active_high)) cocotb.fork(self._run_reset(reset_signal, bool(active_level)))
self._update_reset() self._update_reset()
@@ -42,7 +42,7 @@ class Reset:
self.assert_reset(True) self.assert_reset(True)
self.assert_reset(False) self.assert_reset(False)
else: else:
self._local_reset = val self._local_reset = bool(val)
self._update_reset() self._update_reset()
def _update_reset(self): def _update_reset(self):
@@ -54,13 +54,13 @@ class Reset:
def _handle_reset(self, state): def _handle_reset(self, state):
pass pass
async def _run_reset(self, reset_signal, active_high): async def _run_reset(self, reset_signal, active_level):
while True: while True:
if bool(reset_signal.value): if bool(reset_signal.value):
await FallingEdge(reset_signal) await FallingEdge(reset_signal)
self._ext_reset = not active_high self._ext_reset = not active_level
self._update_reset() self._update_reset()
else: else:
await RisingEdge(reset_signal) await RisingEdge(reset_signal)
self._ext_reset = active_high self._ext_reset = active_level
self._update_reset() self._update_reset()