Skip to content

Commit 0e7631a

Browse files
committed
Update AXI stream endpoint
1 parent 17b1f25 commit 0e7631a

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

tb/axis_ep.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ def count(self):
261261
return len(self.queue)
262262

263263
def empty(self):
264-
return self.count() == 0
264+
return not self.queue
265265

266266
def create_logic(self,
267267
clk,
@@ -344,7 +344,7 @@ def logic():
344344
tvalid_int.next = False
345345
tlast.next = False
346346
if (tlast and tready_int and tvalid) or not tvalid_int:
347-
if len(self.queue) > 0:
347+
if self.queue:
348348
frame = self.queue.pop(0)
349349
frame.B = B
350350
frame.N = N
@@ -374,14 +374,15 @@ def __init__(self):
374374
self.has_logic = False
375375
self.queue = []
376376
self.read_queue = []
377+
self.sync = Signal(intbv(0))
377378

378379
def recv(self):
379-
if len(self.queue) > 0:
380+
if self.queue:
380381
return self.queue.pop(0)
381382
return None
382383

383384
def read(self, count=-1):
384-
while len(self.queue) > 0:
385+
while self.queue:
385386
self.read_queue.extend(self.queue.pop(0).data)
386387
if count < 0:
387388
count = len(self.read_queue)
@@ -393,7 +394,15 @@ def count(self):
393394
return len(self.queue)
394395

395396
def empty(self):
396-
return self.count() == 0
397+
return not self.queue
398+
399+
def wait(self, timeout=0):
400+
if self.queue:
401+
return
402+
if timeout:
403+
yield self.sync, delay(timeout)
404+
else:
405+
yield self.sync
397406

398407
def create_logic(self,
399408
clk,
@@ -498,6 +507,7 @@ def logic():
498507
frame.WL = WL
499508
frame.parse(data, keep, id, dest, user)
500509
self.queue.append(frame)
510+
self.sync.next = not self.sync
501511
if name is not None:
502512
print("[%s] Got frame %s" % (name, repr(frame)))
503513
frame = AXIStreamFrame()

0 commit comments

Comments
 (0)