Fix X-init for cocotb 2.0
Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
@@ -30,6 +30,11 @@ from cocotb.triggers import RisingEdge, Timer, First, Event
|
|||||||
from cocotb.utils import get_sim_time
|
from cocotb.utils import get_sim_time
|
||||||
from cocotb_bus.bus import Bus
|
from cocotb_bus.bus import Bus
|
||||||
|
|
||||||
|
try:
|
||||||
|
from cocotb.types import LogicArray
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
|
||||||
from .version import __version__
|
from .version import __version__
|
||||||
from .reset import Reset
|
from .reset import Reset
|
||||||
|
|
||||||
@@ -301,9 +306,13 @@ class AxiStreamBase(Reset):
|
|||||||
for sig in self._signals+self._optional_signals:
|
for sig in self._signals+self._optional_signals:
|
||||||
if hasattr(self.bus, sig):
|
if hasattr(self.bus, sig):
|
||||||
if self._init_x and sig not in ("tvalid", "tready"):
|
if self._init_x and sig not in ("tvalid", "tready"):
|
||||||
v = getattr(self.bus, sig).value
|
s = getattr(self.bus, sig)
|
||||||
|
try:
|
||||||
|
v = LogicArray("x"*len(s.value))
|
||||||
|
except NameError:
|
||||||
|
v = s.value
|
||||||
v.binstr = 'x'*len(v)
|
v.binstr = 'x'*len(v)
|
||||||
getattr(self.bus, sig).setimmediatevalue(v)
|
s.setimmediatevalue(v)
|
||||||
|
|
||||||
if hasattr(self.bus, "tkeep"):
|
if hasattr(self.bus, "tkeep"):
|
||||||
self.byte_lanes = len(self.bus.tkeep)
|
self.byte_lanes = len(self.bus.tkeep)
|
||||||
|
|||||||
@@ -29,6 +29,11 @@ from cocotb.queue import Queue, QueueFull
|
|||||||
from cocotb.triggers import RisingEdge, Event, First, Timer
|
from cocotb.triggers import RisingEdge, Event, First, Timer
|
||||||
from cocotb_bus.bus import Bus
|
from cocotb_bus.bus import Bus
|
||||||
|
|
||||||
|
try:
|
||||||
|
from cocotb.types import LogicArray
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
|
||||||
from .reset import Reset
|
from .reset import Reset
|
||||||
|
|
||||||
|
|
||||||
@@ -119,9 +124,13 @@ class StreamBase(Reset):
|
|||||||
if sig in self._signal_widths:
|
if sig in self._signal_widths:
|
||||||
assert len(getattr(self.bus, sig)) == self._signal_widths[sig]
|
assert len(getattr(self.bus, sig)) == self._signal_widths[sig]
|
||||||
if self._init_x and sig not in (self._valid_signal, self._ready_signal):
|
if self._init_x and sig not in (self._valid_signal, self._ready_signal):
|
||||||
v = getattr(self.bus, sig).value
|
s = getattr(self.bus, sig)
|
||||||
|
try:
|
||||||
|
v = LogicArray("x"*len(s.value))
|
||||||
|
except NameError:
|
||||||
|
v = s.value
|
||||||
v.binstr = 'x'*len(v)
|
v.binstr = 'x'*len(v)
|
||||||
getattr(self.bus, sig).setimmediatevalue(v)
|
s.setimmediatevalue(v)
|
||||||
|
|
||||||
self._run_cr = None
|
self._run_cr = None
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user