Fix X-init for cocotb 2.0

Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
Alex Forencich
2025-09-07 13:13:03 -07:00
parent dcb9a6bd02
commit 88b6624a93
2 changed files with 24 additions and 6 deletions

View File

@@ -29,6 +29,11 @@ from cocotb.queue import Queue, QueueFull
from cocotb.triggers import RisingEdge, Event, First, Timer
from cocotb_bus.bus import Bus
try:
from cocotb.types import LogicArray
except ImportError:
pass
from .reset import Reset
@@ -119,9 +124,13 @@ class StreamBase(Reset):
if sig in self._signal_widths:
assert len(getattr(self.bus, sig)) == self._signal_widths[sig]
if self._init_x and sig not in (self._valid_signal, self._ready_signal):
v = getattr(self.bus, sig).value
v.binstr = 'x'*len(v)
getattr(self.bus, sig).setimmediatevalue(v)
s = getattr(self.bus, sig)
try:
v = LogicArray("x"*len(s.value))
except NameError:
v = s.value
v.binstr = 'x'*len(v)
s.setimmediatevalue(v)
self._run_cr = None