mirror of
https://github.com/fpganinja/taxi.git
synced 2026-08-29 16:15:03 -07:00
apb: Update testbenches to use cocotb.parametrize
Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
@@ -20,7 +20,6 @@ import pytest
|
||||
import cocotb
|
||||
from cocotb.clock import Clock
|
||||
from cocotb.triggers import RisingEdge, Timer
|
||||
from cocotb.regression import TestFactory
|
||||
|
||||
from cocotbext.axi import ApbBus, ApbMaster, ApbRam
|
||||
|
||||
@@ -57,6 +56,15 @@ class TB(object):
|
||||
await RisingEdge(self.dut.clk)
|
||||
|
||||
|
||||
def cycle_pause():
|
||||
return itertools.cycle([1, 1, 1, 0])
|
||||
|
||||
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
("backpressure_inserter", [None, cycle_pause]),
|
||||
)
|
||||
async def run_test_write(dut, data_in=None, idle_inserter=None, backpressure_inserter=None):
|
||||
|
||||
tb = TB(dut)
|
||||
@@ -88,6 +96,11 @@ async def run_test_write(dut, data_in=None, idle_inserter=None, backpressure_ins
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
("backpressure_inserter", [None, cycle_pause]),
|
||||
)
|
||||
async def run_test_read(dut, data_in=None, idle_inserter=None, backpressure_inserter=None):
|
||||
|
||||
tb = TB(dut)
|
||||
@@ -115,6 +128,11 @@ async def run_test_read(dut, data_in=None, idle_inserter=None, backpressure_inse
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
("backpressure_inserter", [None, cycle_pause]),
|
||||
)
|
||||
async def run_stress_test(dut, idle_inserter=None, backpressure_inserter=None):
|
||||
|
||||
tb = TB(dut)
|
||||
@@ -151,20 +169,6 @@ async def run_stress_test(dut, idle_inserter=None, backpressure_inserter=None):
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
def cycle_pause():
|
||||
return itertools.cycle([1, 1, 1, 0])
|
||||
|
||||
|
||||
if getattr(cocotb, 'top', None) is not None:
|
||||
|
||||
for test in [run_test_write, run_test_read, run_stress_test]:
|
||||
|
||||
factory = TestFactory(test)
|
||||
factory.add_option("idle_inserter", [None, cycle_pause])
|
||||
factory.add_option("backpressure_inserter", [None, cycle_pause])
|
||||
factory.generate_tests()
|
||||
|
||||
|
||||
# cocotb-test
|
||||
|
||||
tests_dir = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
@@ -20,7 +20,6 @@ import pytest
|
||||
import cocotb
|
||||
from cocotb.clock import Clock
|
||||
from cocotb.triggers import RisingEdge, Timer
|
||||
from cocotb.regression import TestFactory
|
||||
|
||||
from cocotbext.axi import ApbBus, ApbMaster, AxiLiteBus, AxiLiteRam
|
||||
|
||||
@@ -61,7 +60,16 @@ class TB(object):
|
||||
await RisingEdge(self.dut.clk)
|
||||
|
||||
|
||||
async def run_test_write(dut, data_in=None, idle_inserter=None, backpressure_inserter=None):
|
||||
def cycle_pause():
|
||||
return itertools.cycle([1, 1, 1, 0])
|
||||
|
||||
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
("backpressure_inserter", [None, cycle_pause]),
|
||||
)
|
||||
async def run_test_write(dut, idle_inserter=None, backpressure_inserter=None):
|
||||
|
||||
tb = TB(dut)
|
||||
|
||||
@@ -92,7 +100,12 @@ async def run_test_write(dut, data_in=None, idle_inserter=None, backpressure_ins
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
async def run_test_read(dut, data_in=None, idle_inserter=None, backpressure_inserter=None):
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
("backpressure_inserter", [None, cycle_pause]),
|
||||
)
|
||||
async def run_test_read(dut, idle_inserter=None, backpressure_inserter=None):
|
||||
|
||||
tb = TB(dut)
|
||||
|
||||
@@ -119,6 +132,11 @@ async def run_test_read(dut, data_in=None, idle_inserter=None, backpressure_inse
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
("backpressure_inserter", [None, cycle_pause]),
|
||||
)
|
||||
async def run_stress_test(dut, idle_inserter=None, backpressure_inserter=None):
|
||||
|
||||
tb = TB(dut)
|
||||
@@ -155,20 +173,6 @@ async def run_stress_test(dut, idle_inserter=None, backpressure_inserter=None):
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
def cycle_pause():
|
||||
return itertools.cycle([1, 1, 1, 0])
|
||||
|
||||
|
||||
if getattr(cocotb, 'top', None) is not None:
|
||||
|
||||
for test in [run_test_write, run_test_read, run_stress_test]:
|
||||
|
||||
factory = TestFactory(test)
|
||||
factory.add_option("idle_inserter", [None, cycle_pause])
|
||||
factory.add_option("backpressure_inserter", [None, cycle_pause])
|
||||
factory.generate_tests()
|
||||
|
||||
|
||||
# cocotb-test
|
||||
|
||||
tests_dir = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
@@ -20,7 +20,6 @@ import pytest
|
||||
import cocotb
|
||||
from cocotb.clock import Clock
|
||||
from cocotb.triggers import RisingEdge, Timer
|
||||
from cocotb.regression import TestFactory
|
||||
|
||||
from cocotbext.axi import ApbBus, ApbMaster
|
||||
|
||||
@@ -61,7 +60,16 @@ class TB(object):
|
||||
await RisingEdge(self.dut.a_clk)
|
||||
|
||||
|
||||
async def run_test_write(dut, port=0, data_in=None, idle_inserter=None):
|
||||
def cycle_pause():
|
||||
return itertools.cycle([1, 1, 1, 0])
|
||||
|
||||
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
("port", [0, 1]),
|
||||
)
|
||||
async def run_test_write(dut, port=0, idle_inserter=None):
|
||||
|
||||
tb = TB(dut)
|
||||
|
||||
@@ -90,7 +98,12 @@ async def run_test_write(dut, port=0, data_in=None, idle_inserter=None):
|
||||
await RisingEdge(dut.a_clk)
|
||||
|
||||
|
||||
async def run_test_read(dut, port=0, data_in=None, idle_inserter=None):
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
("port", [0, 1]),
|
||||
)
|
||||
async def run_test_read(dut, port=0, idle_inserter=None):
|
||||
|
||||
tb = TB(dut)
|
||||
|
||||
@@ -117,7 +130,11 @@ async def run_test_read(dut, port=0, data_in=None, idle_inserter=None):
|
||||
await RisingEdge(dut.a_clk)
|
||||
|
||||
|
||||
async def run_test_arb(dut, data_in=None, idle_inserter=None):
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
)
|
||||
async def run_test_arb(dut, idle_inserter=None):
|
||||
|
||||
tb = TB(dut)
|
||||
|
||||
@@ -145,6 +162,10 @@ async def run_test_arb(dut, data_in=None, idle_inserter=None):
|
||||
await RisingEdge(dut.a_clk)
|
||||
|
||||
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
)
|
||||
async def run_stress_test(dut, idle_inserter=None):
|
||||
|
||||
tb = TB(dut)
|
||||
@@ -180,28 +201,6 @@ async def run_stress_test(dut, idle_inserter=None):
|
||||
await RisingEdge(dut.a_clk)
|
||||
|
||||
|
||||
def cycle_pause():
|
||||
return itertools.cycle([1, 1, 1, 0])
|
||||
|
||||
|
||||
if getattr(cocotb, 'top', None) is not None:
|
||||
|
||||
for test in [run_test_write, run_test_read]:
|
||||
|
||||
factory = TestFactory(test)
|
||||
factory.add_option("idle_inserter", [None, cycle_pause])
|
||||
factory.add_option("port", [0, 1])
|
||||
factory.generate_tests()
|
||||
|
||||
factory = TestFactory(run_test_arb)
|
||||
factory.add_option("idle_inserter", [None, cycle_pause])
|
||||
factory.generate_tests()
|
||||
|
||||
factory = TestFactory(run_stress_test)
|
||||
factory.add_option("idle_inserter", [None, cycle_pause])
|
||||
factory.generate_tests()
|
||||
|
||||
|
||||
# cocotb-test
|
||||
|
||||
tests_dir = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
@@ -14,12 +14,13 @@ import logging
|
||||
import os
|
||||
import random
|
||||
|
||||
import cocotb
|
||||
import cocotb_test.simulator
|
||||
import pytest
|
||||
|
||||
import cocotb
|
||||
from cocotb.clock import Clock
|
||||
from cocotb.regression import TestFactory
|
||||
from cocotb.triggers import RisingEdge, Timer
|
||||
|
||||
from cocotbext.axi import ApbBus, ApbMaster, ApbRam
|
||||
|
||||
|
||||
@@ -63,9 +64,26 @@ class TB(object):
|
||||
await RisingEdge(self.dut.clk)
|
||||
|
||||
|
||||
async def run_test_write(
|
||||
dut, data_in=None, idle_inserter=None, backpressure_inserter=None, s=0, m=0
|
||||
):
|
||||
s_cnt = 1
|
||||
m_cnt = 1
|
||||
|
||||
if getattr(cocotb, "top", None) is not None:
|
||||
s_cnt = len(cocotb.top.s_apb)
|
||||
m_cnt = len(cocotb.top.m_apb)
|
||||
|
||||
|
||||
def cycle_pause():
|
||||
return itertools.cycle([1, 1, 1, 0])
|
||||
|
||||
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
("backpressure_inserter", [None, cycle_pause]),
|
||||
("s", range(min(s_cnt, 2))),
|
||||
("m", range(min(m_cnt, 2))),
|
||||
)
|
||||
async def run_test_write(dut, idle_inserter=None, backpressure_inserter=None, s=0, m=0):
|
||||
tb = TB(dut)
|
||||
|
||||
byte_lanes = tb.apb_master[s].byte_lanes
|
||||
@@ -102,9 +120,14 @@ async def run_test_write(
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
async def run_test_read(
|
||||
dut, data_in=None, idle_inserter=None, backpressure_inserter=None, s=0, m=0
|
||||
):
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
("backpressure_inserter", [None, cycle_pause]),
|
||||
("s", range(min(s_cnt, 2))),
|
||||
("m", range(min(m_cnt, 2))),
|
||||
)
|
||||
async def run_test_read(dut, idle_inserter=None, backpressure_inserter=None, s=0, m=0):
|
||||
tb = TB(dut)
|
||||
|
||||
byte_lanes = tb.apb_master[s].byte_lanes
|
||||
@@ -131,6 +154,11 @@ async def run_test_read(
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
("backpressure_inserter", [None, cycle_pause]),
|
||||
)
|
||||
async def run_stress_test(dut, idle_inserter=None, backpressure_inserter=None):
|
||||
tb = TB(dut)
|
||||
|
||||
@@ -176,28 +204,6 @@ async def run_stress_test(dut, idle_inserter=None, backpressure_inserter=None):
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
def cycle_pause():
|
||||
return itertools.cycle([1, 1, 1, 0])
|
||||
|
||||
|
||||
if getattr(cocotb, "top", None) is not None:
|
||||
s_cnt = len(cocotb.top.s_apb)
|
||||
m_cnt = len(cocotb.top.m_apb)
|
||||
|
||||
for test in [run_test_write, run_test_read]:
|
||||
factory = TestFactory(test)
|
||||
factory.add_option("idle_inserter", [None, cycle_pause])
|
||||
factory.add_option("backpressure_inserter", [None, cycle_pause])
|
||||
factory.add_option("s", range(min(s_cnt, 2)))
|
||||
factory.add_option("m", range(min(m_cnt, 2)))
|
||||
factory.generate_tests()
|
||||
|
||||
factory = TestFactory(run_stress_test)
|
||||
factory.add_option("idle_inserter", [None, cycle_pause])
|
||||
factory.add_option("backpressure_inserter", [None, cycle_pause])
|
||||
factory.generate_tests()
|
||||
|
||||
|
||||
# cocotb-test
|
||||
|
||||
tests_dir = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
@@ -14,12 +14,13 @@ import logging
|
||||
import os
|
||||
import random
|
||||
|
||||
import cocotb
|
||||
import cocotb_test.simulator
|
||||
import pytest
|
||||
|
||||
import cocotb
|
||||
from cocotb.clock import Clock
|
||||
from cocotb.regression import TestFactory
|
||||
from cocotb.triggers import RisingEdge, Timer
|
||||
|
||||
from cocotbext.axi import ApbBus, ApbMaster, ApbRam
|
||||
|
||||
|
||||
@@ -59,9 +60,23 @@ class TB(object):
|
||||
await RisingEdge(self.dut.clk)
|
||||
|
||||
|
||||
async def run_test_write(
|
||||
dut, data_in=None, idle_inserter=None, backpressure_inserter=None, m=0
|
||||
):
|
||||
m_cnt = 1
|
||||
|
||||
if getattr(cocotb, "top", None) is not None:
|
||||
m_cnt = len(cocotb.top.m_apb)
|
||||
|
||||
|
||||
def cycle_pause():
|
||||
return itertools.cycle([1, 1, 1, 0])
|
||||
|
||||
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
("backpressure_inserter", [None, cycle_pause]),
|
||||
("m", range(min(m_cnt, 2))),
|
||||
)
|
||||
async def run_test_write(dut, idle_inserter=None, backpressure_inserter=None, m=0):
|
||||
tb = TB(dut)
|
||||
|
||||
byte_lanes = tb.apb_master.byte_lanes
|
||||
@@ -98,9 +113,13 @@ async def run_test_write(
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
async def run_test_read(
|
||||
dut, data_in=None, idle_inserter=None, backpressure_inserter=None, m=0
|
||||
):
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
("backpressure_inserter", [None, cycle_pause]),
|
||||
("m", range(min(m_cnt, 2))),
|
||||
)
|
||||
async def run_test_read(dut, idle_inserter=None, backpressure_inserter=None, m=0):
|
||||
tb = TB(dut)
|
||||
|
||||
byte_lanes = tb.apb_master.byte_lanes
|
||||
@@ -127,6 +146,11 @@ async def run_test_read(
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
("backpressure_inserter", [None, cycle_pause]),
|
||||
)
|
||||
async def run_stress_test(dut, idle_inserter=None, backpressure_inserter=None):
|
||||
tb = TB(dut)
|
||||
|
||||
@@ -172,26 +196,6 @@ async def run_stress_test(dut, idle_inserter=None, backpressure_inserter=None):
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
def cycle_pause():
|
||||
return itertools.cycle([1, 1, 1, 0])
|
||||
|
||||
|
||||
if getattr(cocotb, "top", None) is not None:
|
||||
m_cnt = len(cocotb.top.m_apb)
|
||||
|
||||
for test in [run_test_write, run_test_read]:
|
||||
factory = TestFactory(test)
|
||||
factory.add_option("idle_inserter", [None, cycle_pause])
|
||||
factory.add_option("backpressure_inserter", [None, cycle_pause])
|
||||
factory.add_option("m", range(min(m_cnt, 2)))
|
||||
factory.generate_tests()
|
||||
|
||||
factory = TestFactory(run_stress_test)
|
||||
factory.add_option("idle_inserter", [None, cycle_pause])
|
||||
factory.add_option("backpressure_inserter", [None, cycle_pause])
|
||||
factory.generate_tests()
|
||||
|
||||
|
||||
# cocotb-test
|
||||
|
||||
tests_dir = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
@@ -20,7 +20,6 @@ import pytest
|
||||
import cocotb
|
||||
from cocotb.clock import Clock
|
||||
from cocotb.triggers import RisingEdge, Timer
|
||||
from cocotb.regression import TestFactory
|
||||
|
||||
from cocotbext.axi import ApbBus, ApbMaster
|
||||
|
||||
@@ -52,7 +51,15 @@ class TB(object):
|
||||
await RisingEdge(self.dut.clk)
|
||||
|
||||
|
||||
async def run_test_write(dut, data_in=None, idle_inserter=None):
|
||||
def cycle_pause():
|
||||
return itertools.cycle([1, 1, 1, 0])
|
||||
|
||||
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
)
|
||||
async def run_test_write(dut, idle_inserter=None):
|
||||
|
||||
tb = TB(dut)
|
||||
|
||||
@@ -80,7 +87,11 @@ async def run_test_write(dut, data_in=None, idle_inserter=None):
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
async def run_test_read(dut, data_in=None, idle_inserter=None):
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
)
|
||||
async def run_test_read(dut, idle_inserter=None):
|
||||
|
||||
tb = TB(dut)
|
||||
|
||||
@@ -106,6 +117,10 @@ async def run_test_read(dut, data_in=None, idle_inserter=None):
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
@cocotb.test()
|
||||
@cocotb.parametrize(
|
||||
("idle_inserter", [None, cycle_pause]),
|
||||
)
|
||||
async def run_stress_test(dut, idle_inserter=None):
|
||||
|
||||
tb = TB(dut)
|
||||
@@ -141,19 +156,6 @@ async def run_stress_test(dut, idle_inserter=None):
|
||||
await RisingEdge(dut.clk)
|
||||
|
||||
|
||||
def cycle_pause():
|
||||
return itertools.cycle([1, 1, 1, 0])
|
||||
|
||||
|
||||
if getattr(cocotb, 'top', None) is not None:
|
||||
|
||||
for test in [run_test_write, run_test_read, run_stress_test]:
|
||||
|
||||
factory = TestFactory(test)
|
||||
factory.add_option("idle_inserter", [None, cycle_pause])
|
||||
factory.generate_tests()
|
||||
|
||||
|
||||
# cocotb-test
|
||||
|
||||
tests_dir = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
Reference in New Issue
Block a user