From 4cf5ed94a8767efd13265abcc20a5082acc02824 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sat, 18 May 2024 09:13:11 -0600 Subject: tb/gfx_shader_bind: initial commit --- tb/gfx_shader_bind/testbench/monitors.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 tb/gfx_shader_bind/testbench/monitors.py (limited to 'tb/gfx_shader_bind/testbench/monitors.py') diff --git a/tb/gfx_shader_bind/testbench/monitors.py b/tb/gfx_shader_bind/testbench/monitors.py new file mode 100644 index 0000000..6ecea0f --- /dev/null +++ b/tb/gfx_shader_bind/testbench/monitors.py @@ -0,0 +1,30 @@ +import cocotb +from cocotb.triggers import ReadOnly, RisingEdge + +from cocotb_bus.monitors import BusMonitor + +from .data import FrontWave + +class FrontWaveMonitor(BusMonitor): + _signals = ['insn', 'group', 'retry', 'valid'] + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + async def _monitor_recv(self): + pkt_receiving = False + received_data = [] + + while True: + await RisingEdge(self.clock) + await ReadOnly() + + if not self.bus.valid.value: + continue + + wave = FrontWave( + group=self.bus.group.value.integer, + insn=(self.bus.insn.value.integer if not self.bus.retry.value else None), + ) + + self._recv(wave) -- cgit v1.2.3