Handle bus object directly

This commit is contained in:
Alex Forencich
2020-10-21 20:33:42 -07:00
parent 46ff5a52a8
commit 86ba3ab5bf

View File

@@ -24,7 +24,8 @@ THE SOFTWARE.
import cocotb import cocotb
from cocotb.triggers import RisingEdge, ReadOnly, Timer, First, Event from cocotb.triggers import RisingEdge, ReadOnly, Timer, First, Event
from cocotb.drivers import BusDriver from cocotb.bus import Bus
from cocotb.log import SimLog
from collections import deque from collections import deque
@@ -205,13 +206,19 @@ class AxiStreamFrame(object):
return self.tdata.__iter__() return self.tdata.__iter__()
class AxiStreamSource(BusDriver): class AxiStreamSource(object):
_signals = ["tdata"] _signals = ["tdata"]
_optional_signals = ["tvalid", "tready", "tlast", "tkeep", "tid", "tdest", "tuser"] _optional_signals = ["tvalid", "tready", "tlast", "tkeep", "tid", "tdest", "tuser"]
def __init__(self, entity, name, clock, reset=None): def __init__(self, entity, name, clock, reset=None, *args, **kwargs):
super().__init__(entity, name, clock) self.log = SimLog("cocotb.%s.%s" % (entity._name, name))
self.entity = entity
self.clock = clock
self.reset = reset
self.bus = Bus(self.entity, name, self._signals, optional_signals=self._optional_signals, **kwargs)
super().__init__(*args, **kwargs)
self.active = False self.active = False
self.queue = deque() self.queue = deque()
@@ -350,13 +357,19 @@ class AxiStreamSource(BusDriver):
self.active = bool(frame) self.active = bool(frame)
class AxiStreamSink(BusDriver): class AxiStreamSink(object):
_signals = ["tdata"] _signals = ["tdata"]
_optional_signals = ["tvalid", "tready", "tlast", "tkeep", "tid", "tdest", "tuser"] _optional_signals = ["tvalid", "tready", "tlast", "tkeep", "tid", "tdest", "tuser"]
def __init__(self, entity, name, clock, reset=None): def __init__(self, entity, name, clock, reset=None, *args, **kwargs):
super().__init__(entity, name, clock) self.log = SimLog("cocotb.%s.%s" % (entity._name, name))
self.entity = entity
self.clock = clock
self.reset = reset
self.bus = Bus(self.entity, name, self._signals, optional_signals=self._optional_signals, **kwargs)
super().__init__(*args, **kwargs)
self.active = False self.active = False
self.queue = deque() self.queue = deque()