from caravel_cocotb.caravel_interfaces import test...
# caravel
a
from caravel_cocotb.caravel_interfaces import test_configure from caravel_cocotb.caravel_interfaces import report_test from caravel_cocotb.caravel_interfaces import UART from caravel_cocotb.caravel_interfaces import SPI import cocotb import random from cocotb.triggers import Timer from cocotb.result import TestFailure def dut_driver(dut): a = random.randrange(0, 2) b = random.randrange(0, 2) dut.a.value = a dut.b.value = b def dut_check(dut): if (dut.a.value and dut.b.value) != dut.y.value: print("AND Gate failed - not really possible..still.. result is incorrect: %s != 0" % str(dut.y)) else: dut.log.info("PASS!") @cocotb.test() # decorator to mark the test function as cocotb test @report_test # wrapper for configure test reporting files async def and_gate_test(dut): caravelEnv = await test_configure(dut) dut.log.info("Start of test!") dut.log.info("Drive random values in AND Gate!") for i in range(10): yield Timer(10000) dut_driver(dut) yield Timer(100) dut_check(dut)