tb: axis_replay_buffer: Export send_packet
This function is useful for testing other AXI stream components as well. Signed-off-by: Sean Anderson <seanga2@gmail.com>
This commit is contained in:
parent
6b2eb4d27c
commit
1f925d39ff
|
@ -10,6 +10,28 @@ from .util import ClockEnable, lookahead, timeout
|
||||||
|
|
||||||
BUF_SIZE = 54
|
BUF_SIZE = 54
|
||||||
|
|
||||||
|
async def send_packet(signals, packet, ratio=1):
|
||||||
|
for val, last in lookahead(packet):
|
||||||
|
if 'err' in signals:
|
||||||
|
if val is None:
|
||||||
|
signals['data'].value = 0
|
||||||
|
signals['err'].value = 1
|
||||||
|
else:
|
||||||
|
signals['data'].value = val
|
||||||
|
signals['err'].value = 0
|
||||||
|
else:
|
||||||
|
signals['data'].value = val
|
||||||
|
signals['valid'].value = 1
|
||||||
|
signals['last'].value = last
|
||||||
|
await RisingEdge(signals['clk'])
|
||||||
|
while True:
|
||||||
|
await FallingEdge(signals['clk'])
|
||||||
|
if signals['ready'].value:
|
||||||
|
break
|
||||||
|
signals['valid'].value = 0
|
||||||
|
if ratio != 1:
|
||||||
|
await ClockCycles(signals['clk'], ratio - 1, rising=False)
|
||||||
|
|
||||||
@timeout(30, 'us')
|
@timeout(30, 'us')
|
||||||
async def test_replay(buf, in_ratio, out_ratio):
|
async def test_replay(buf, in_ratio, out_ratio):
|
||||||
buf.s_axis_valid.value = 0
|
buf.s_axis_valid.value = 0
|
||||||
|
@ -31,17 +53,13 @@ async def test_replay(buf, in_ratio, out_ratio):
|
||||||
|
|
||||||
async def send():
|
async def send():
|
||||||
for packet in packets:
|
for packet in packets:
|
||||||
for val, last in lookahead(packet):
|
await send_packet({
|
||||||
buf.s_axis_data.value = val
|
'clk': buf.clk,
|
||||||
buf.s_axis_valid.value = 1
|
'data': buf.s_axis_data,
|
||||||
buf.s_axis_last.value = last
|
'valid': buf.s_axis_valid,
|
||||||
while True:
|
'last': buf.s_axis_last,
|
||||||
await FallingEdge(buf.clk)
|
'ready': buf.s_axis_ready,
|
||||||
if buf.s_axis_ready.value:
|
}, packet, in_ratio)
|
||||||
break
|
|
||||||
buf.s_axis_valid.value = 0
|
|
||||||
if in_ratio != 1:
|
|
||||||
await ClockCycles(buf.clk, in_ratio - 1, rising=False)
|
|
||||||
|
|
||||||
async def recv(packet):
|
async def recv(packet):
|
||||||
async def handshake():
|
async def handshake():
|
||||||
|
|
Loading…
Reference in New Issue