Add clear to AXI stream models

This commit is contained in:
Alex Forencich
2021-01-02 16:15:51 -08:00
parent f6823fc8fd
commit 7748f871f4
2 changed files with 16 additions and 1 deletions

View File

@@ -333,6 +333,11 @@ class AxiStreamSource(Reset):
def idle(self):
return self.empty() and not self.active
def clear(self):
self.queue.clear()
self.queue_occupancy_bytes = 0
self.queue_occupancy_frames = 0
async def wait(self):
while not self.idle():
await RisingEdge(self.clock)
@@ -576,6 +581,11 @@ class AxiStreamSink(Reset):
def idle(self):
return not self.active
def clear(self):
self.queue.clear()
self.queue_occupancy_bytes = 0
self.queue_occupancy_frames = 0
async def wait(self, timeout=0, timeout_unit='ns'):
if not self.empty():
return
@@ -781,6 +791,11 @@ class AxiStreamMonitor(Reset):
def idle(self):
return not self.active
def clear(self):
self.queue.clear()
self.queue_occupancy_bytes = 0
self.queue_occupancy_frames = 0
async def wait(self, timeout=0, timeout_unit='ns'):
if not self.empty():
return