From 6800b85a854e124a78081ae6161066474a810b81 Mon Sep 17 00:00:00 2001 From: Sean Anderson Date: Wed, 24 Aug 2022 12:16:43 -0400 Subject: [PATCH] tb: Move print_list_at/compare_lists to util These functions will be useful for other tests. Refactor them out into utility functions. Signed-off-by: Sean Anderson --- tb/pmd.py | 13 +++---------- tb/util.py | 12 ++++++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/tb/pmd.py b/tb/pmd.py index 2708fd6..d2eee2b 100644 --- a/tb/pmd.py +++ b/tb/pmd.py @@ -10,10 +10,7 @@ from cocotb.clock import Clock from cocotb.regression import TestFactory from cocotb.triggers import RisingEdge, Timer -from .util import timeout - -def print_list_at(l, i): - print(' ' * max(50 - i, 0), *l[max(i - 50, 0):i+50], sep='') +from .util import compare_lists, print_list_at, timeout BITS = 1000 @@ -76,14 +73,10 @@ async def test_rx(pmd, delays): best_off = off print(f"best offset is {best_off} correlation {best_corr/(len(ins) - best_off)}") - for idx, (i, o) in enumerate(zip(ins[best_off:], outs)): - if i != o: - print(idx) - print_list_at(ins, idx + best_off) - print_list_at(outs, idx) - assert False + compare_lists(ins[best_off:], outs) # There will be a few bits at the end not recorded because signal_detect # isn't delayed like the data signals + print(best_corr, len(ins), best_off) assert best_corr > len(ins) - best_off - 10 rx_tests = TestFactory(test_rx) diff --git a/tb/util.py b/tb/util.py index 59c06c7..9ff972f 100644 --- a/tb/util.py +++ b/tb/util.py @@ -110,3 +110,15 @@ async def send_recovered_bits(clk, data, valid, bits, valids): await FallingEdge(clk) except StopIteration: pass + +def print_list_at(l, i): + print(' ' * max(50 - i, 0), *l[max(i - 50, 0):i+50], sep='') + +def compare_lists(ins, outs): + assert outs + for idx, (i, o) in enumerate(zip(ins, outs)): + if i != o: + print(idx) + print_list_at(ins, idx) + print_list_at(outs, idx) + assert False, "Differring bit"