Remove await ReadOnly

This commit is contained in:
Alex Forencich
2020-12-24 00:24:03 -08:00
parent 7b7e8bf3e2
commit 7582067929
2 changed files with 8 additions and 25 deletions

View File

@@ -26,7 +26,7 @@ import logging
from collections import deque
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.bus import Bus
@@ -354,14 +354,13 @@ class AxiStreamSource(object):
self.active = False
while True:
await ReadOnly()
await RisingEdge(self.clock)
# read handshake signals
tready_sample = (not hasattr(self.bus, "tready")) or self.bus.tready.value
tvalid_sample = (not hasattr(self.bus, "tvalid")) or self.bus.tvalid.value
if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
frame = None
self.active = False
self.bus.tdata <= 0
@@ -379,8 +378,6 @@ class AxiStreamSource(object):
self.bus.tuser <= 0
continue
await RisingEdge(self.clock)
if (tready_sample and tvalid_sample) or not tvalid_sample:
if frame is None and self.queue:
frame = self.queue.popleft()
@@ -597,14 +594,13 @@ class AxiStreamSink(object):
self.active = False
while True:
await ReadOnly()
await RisingEdge(self.clock)
# read handshake signals
tready_sample = (not hasattr(self.bus, "tready")) or self.bus.tready.value
tvalid_sample = (not hasattr(self.bus, "tvalid")) or self.bus.tvalid.value
if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
frame = None
self.active = False
if hasattr(self.bus, "tready"):
@@ -642,8 +638,6 @@ class AxiStreamSink(object):
frame = None
await RisingEdge(self.clock)
if hasattr(self.bus, "tready"):
self.bus.tready <= (not self.full() and not self.pause)
@@ -784,14 +778,13 @@ class AxiStreamMonitor(object):
self.active = False
while True:
await ReadOnly()
await RisingEdge(self.clock)
# read handshake signals
tready_sample = (not hasattr(self.bus, "tready")) or self.bus.tready.value
tvalid_sample = (not hasattr(self.bus, "tvalid")) or self.bus.tvalid.value
if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
frame = None
self.active = False
continue
@@ -823,5 +816,3 @@ class AxiStreamMonitor(object):
self.sync.set()
frame = None
await RisingEdge(self.clock)

View File

@@ -26,7 +26,7 @@ import logging
from collections import deque
import cocotb
from cocotb.triggers import RisingEdge, ReadOnly, Event, First, Timer
from cocotb.triggers import RisingEdge, Event, First, Timer
from cocotb.bus import Bus
@@ -190,22 +190,19 @@ class StreamSource(StreamBase, StreamPause):
async def _run_source(self):
while True:
await ReadOnly()
await RisingEdge(self.clock)
# read handshake signals
ready_sample = self.ready is None or self.ready.value
valid_sample = self.valid is None or self.valid.value
if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
self.clear()
if self.valid is not None:
self.valid <= 0
self.active = False
continue
await RisingEdge(self.clock)
if (ready_sample and valid_sample) or (not valid_sample):
if self.drive_obj and not self.pause:
self.bus.drive(self.drive_obj)
@@ -275,14 +272,13 @@ class StreamSink(StreamBase, StreamPause):
async def _run_sink(self):
while True:
await ReadOnly()
await RisingEdge(self.clock)
# read handshake signals
ready_sample = self.ready is None or self.ready.value
valid_sample = self.valid is None or self.valid.value
if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
self.clear()
if self.ready is not None:
self.ready <= 0
@@ -293,7 +289,6 @@ class StreamSink(StreamBase, StreamPause):
self.bus.sample(obj)
self.callback(obj)
await RisingEdge(self.clock)
if self.ready is not None:
self.ready <= (not self.pause)
@@ -351,14 +346,13 @@ class StreamMonitor(StreamBase):
async def _run_monitor(self):
while True:
await ReadOnly()
await RisingEdge(self.clock)
# read handshake signals
ready_sample = self.ready is None or self.ready.value
valid_sample = self.valid is None or self.valid.value
if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
self.clear()
continue
@@ -367,8 +361,6 @@ class StreamMonitor(StreamBase):
self.bus.sample(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):
all_signals = signals.copy()