diff --git a/cocotbext/axi/axis.py b/cocotbext/axi/axis.py index 0be0d50..6353356 100644 --- a/cocotbext/axi/axis.py +++ b/cocotbext/axi/axis.py @@ -30,6 +30,11 @@ from cocotb.triggers import RisingEdge, Timer, First, Event from cocotb.utils import get_sim_time from cocotb_bus.bus import Bus +try: + from cocotb.types import LogicArray +except ImportError: + pass + from .version import __version__ from .reset import Reset @@ -301,9 +306,13 @@ class AxiStreamBase(Reset): for sig in self._signals+self._optional_signals: if hasattr(self.bus, sig): if self._init_x and sig not in ("tvalid", "tready"): - 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) if hasattr(self.bus, "tkeep"): self.byte_lanes = len(self.bus.tkeep) diff --git a/cocotbext/axi/stream.py b/cocotbext/axi/stream.py index 59d6932..b55699b 100644 --- a/cocotbext/axi/stream.py +++ b/cocotbext/axi/stream.py @@ -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