Remove await ReadOnly
This commit is contained in:
@@ -26,7 +26,7 @@ import logging
|
|||||||
from collections import deque
|
from collections import deque
|
||||||
|
|
||||||
import cocotb
|
import cocotb
|
||||||
from cocotb.triggers import RisingEdge, ReadOnly, Timer, First, Event
|
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 import Bus
|
from cocotb.bus import Bus
|
||||||
|
|
||||||
@@ -354,14 +354,13 @@ class AxiStreamSource(object):
|
|||||||
self.active = False
|
self.active = False
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
await ReadOnly()
|
await RisingEdge(self.clock)
|
||||||
|
|
||||||
# read handshake signals
|
# read handshake signals
|
||||||
tready_sample = (not hasattr(self.bus, "tready")) or self.bus.tready.value
|
tready_sample = (not hasattr(self.bus, "tready")) or self.bus.tready.value
|
||||||
tvalid_sample = (not hasattr(self.bus, "tvalid")) or self.bus.tvalid.value
|
tvalid_sample = (not hasattr(self.bus, "tvalid")) or self.bus.tvalid.value
|
||||||
|
|
||||||
if self.reset is not None and self.reset.value:
|
if self.reset is not None and self.reset.value:
|
||||||
await RisingEdge(self.clock)
|
|
||||||
frame = None
|
frame = None
|
||||||
self.active = False
|
self.active = False
|
||||||
self.bus.tdata <= 0
|
self.bus.tdata <= 0
|
||||||
@@ -379,8 +378,6 @@ class AxiStreamSource(object):
|
|||||||
self.bus.tuser <= 0
|
self.bus.tuser <= 0
|
||||||
continue
|
continue
|
||||||
|
|
||||||
await RisingEdge(self.clock)
|
|
||||||
|
|
||||||
if (tready_sample and tvalid_sample) or not tvalid_sample:
|
if (tready_sample and tvalid_sample) or not tvalid_sample:
|
||||||
if frame is None and self.queue:
|
if frame is None and self.queue:
|
||||||
frame = self.queue.popleft()
|
frame = self.queue.popleft()
|
||||||
@@ -597,14 +594,13 @@ class AxiStreamSink(object):
|
|||||||
self.active = False
|
self.active = False
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
await ReadOnly()
|
await RisingEdge(self.clock)
|
||||||
|
|
||||||
# read handshake signals
|
# read handshake signals
|
||||||
tready_sample = (not hasattr(self.bus, "tready")) or self.bus.tready.value
|
tready_sample = (not hasattr(self.bus, "tready")) or self.bus.tready.value
|
||||||
tvalid_sample = (not hasattr(self.bus, "tvalid")) or self.bus.tvalid.value
|
tvalid_sample = (not hasattr(self.bus, "tvalid")) or self.bus.tvalid.value
|
||||||
|
|
||||||
if self.reset is not None and self.reset.value:
|
if self.reset is not None and self.reset.value:
|
||||||
await RisingEdge(self.clock)
|
|
||||||
frame = None
|
frame = None
|
||||||
self.active = False
|
self.active = False
|
||||||
if hasattr(self.bus, "tready"):
|
if hasattr(self.bus, "tready"):
|
||||||
@@ -642,8 +638,6 @@ class AxiStreamSink(object):
|
|||||||
|
|
||||||
frame = None
|
frame = None
|
||||||
|
|
||||||
await RisingEdge(self.clock)
|
|
||||||
|
|
||||||
if hasattr(self.bus, "tready"):
|
if hasattr(self.bus, "tready"):
|
||||||
self.bus.tready <= (not self.full() and not self.pause)
|
self.bus.tready <= (not self.full() and not self.pause)
|
||||||
|
|
||||||
@@ -784,14 +778,13 @@ class AxiStreamMonitor(object):
|
|||||||
self.active = False
|
self.active = False
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
await ReadOnly()
|
await RisingEdge(self.clock)
|
||||||
|
|
||||||
# read handshake signals
|
# read handshake signals
|
||||||
tready_sample = (not hasattr(self.bus, "tready")) or self.bus.tready.value
|
tready_sample = (not hasattr(self.bus, "tready")) or self.bus.tready.value
|
||||||
tvalid_sample = (not hasattr(self.bus, "tvalid")) or self.bus.tvalid.value
|
tvalid_sample = (not hasattr(self.bus, "tvalid")) or self.bus.tvalid.value
|
||||||
|
|
||||||
if self.reset is not None and self.reset.value:
|
if self.reset is not None and self.reset.value:
|
||||||
await RisingEdge(self.clock)
|
|
||||||
frame = None
|
frame = None
|
||||||
self.active = False
|
self.active = False
|
||||||
continue
|
continue
|
||||||
@@ -823,5 +816,3 @@ class AxiStreamMonitor(object):
|
|||||||
self.sync.set()
|
self.sync.set()
|
||||||
|
|
||||||
frame = None
|
frame = None
|
||||||
|
|
||||||
await RisingEdge(self.clock)
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import logging
|
|||||||
from collections import deque
|
from collections import deque
|
||||||
|
|
||||||
import cocotb
|
import cocotb
|
||||||
from cocotb.triggers import RisingEdge, ReadOnly, Event, First, Timer
|
from cocotb.triggers import RisingEdge, Event, First, Timer
|
||||||
from cocotb.bus import Bus
|
from cocotb.bus import Bus
|
||||||
|
|
||||||
|
|
||||||
@@ -190,22 +190,19 @@ class StreamSource(StreamBase, StreamPause):
|
|||||||
|
|
||||||
async def _run_source(self):
|
async def _run_source(self):
|
||||||
while True:
|
while True:
|
||||||
await ReadOnly()
|
await RisingEdge(self.clock)
|
||||||
|
|
||||||
# read handshake signals
|
# read handshake signals
|
||||||
ready_sample = self.ready is None or self.ready.value
|
ready_sample = self.ready is None or self.ready.value
|
||||||
valid_sample = self.valid is None or self.valid.value
|
valid_sample = self.valid is None or self.valid.value
|
||||||
|
|
||||||
if self.reset is not None and self.reset.value:
|
if self.reset is not None and self.reset.value:
|
||||||
await RisingEdge(self.clock)
|
|
||||||
self.clear()
|
self.clear()
|
||||||
if self.valid is not None:
|
if self.valid is not None:
|
||||||
self.valid <= 0
|
self.valid <= 0
|
||||||
self.active = False
|
self.active = False
|
||||||
continue
|
continue
|
||||||
|
|
||||||
await RisingEdge(self.clock)
|
|
||||||
|
|
||||||
if (ready_sample and valid_sample) or (not valid_sample):
|
if (ready_sample and valid_sample) or (not valid_sample):
|
||||||
if self.drive_obj and not self.pause:
|
if self.drive_obj and not self.pause:
|
||||||
self.bus.drive(self.drive_obj)
|
self.bus.drive(self.drive_obj)
|
||||||
@@ -275,14 +272,13 @@ class StreamSink(StreamBase, StreamPause):
|
|||||||
|
|
||||||
async def _run_sink(self):
|
async def _run_sink(self):
|
||||||
while True:
|
while True:
|
||||||
await ReadOnly()
|
await RisingEdge(self.clock)
|
||||||
|
|
||||||
# read handshake signals
|
# read handshake signals
|
||||||
ready_sample = self.ready is None or self.ready.value
|
ready_sample = self.ready is None or self.ready.value
|
||||||
valid_sample = self.valid is None or self.valid.value
|
valid_sample = self.valid is None or self.valid.value
|
||||||
|
|
||||||
if self.reset is not None and self.reset.value:
|
if self.reset is not None and self.reset.value:
|
||||||
await RisingEdge(self.clock)
|
|
||||||
self.clear()
|
self.clear()
|
||||||
if self.ready is not None:
|
if self.ready is not None:
|
||||||
self.ready <= 0
|
self.ready <= 0
|
||||||
@@ -293,7 +289,6 @@ class StreamSink(StreamBase, StreamPause):
|
|||||||
self.bus.sample(obj)
|
self.bus.sample(obj)
|
||||||
self.callback(obj)
|
self.callback(obj)
|
||||||
|
|
||||||
await RisingEdge(self.clock)
|
|
||||||
if self.ready is not None:
|
if self.ready is not None:
|
||||||
self.ready <= (not self.pause)
|
self.ready <= (not self.pause)
|
||||||
|
|
||||||
@@ -351,14 +346,13 @@ class StreamMonitor(StreamBase):
|
|||||||
|
|
||||||
async def _run_monitor(self):
|
async def _run_monitor(self):
|
||||||
while True:
|
while True:
|
||||||
await ReadOnly()
|
await RisingEdge(self.clock)
|
||||||
|
|
||||||
# read handshake signals
|
# read handshake signals
|
||||||
ready_sample = self.ready is None or self.ready.value
|
ready_sample = self.ready is None or self.ready.value
|
||||||
valid_sample = self.valid is None or self.valid.value
|
valid_sample = self.valid is None or self.valid.value
|
||||||
|
|
||||||
if self.reset is not None and self.reset.value:
|
if self.reset is not None and self.reset.value:
|
||||||
await RisingEdge(self.clock)
|
|
||||||
self.clear()
|
self.clear()
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -367,8 +361,6 @@ class StreamMonitor(StreamBase):
|
|||||||
self.bus.sample(obj)
|
self.bus.sample(obj)
|
||||||
self.callback(obj)
|
self.callback(obj)
|
||||||
|
|
||||||
await RisingEdge(self.clock)
|
|
||||||
|
|
||||||
|
|
||||||
def define_stream(name, signals, optional_signals=None, valid_signal=None, ready_signal=None, signal_widths=None):
|
def define_stream(name, signals, optional_signals=None, valid_signal=None, ready_signal=None, signal_widths=None):
|
||||||
all_signals = signals.copy()
|
all_signals = signals.copy()
|
||||||
|
|||||||
Reference in New Issue
Block a user