我刚开始使用 cocotb,我对应该使用协程的一小段代码有疑问。
import cocotb
from cocotb.triggers import Timer
@cocotb.coroutine
def test(dut):
dut.a <= 1
dut.b <= 2
cocotb.log.info('test')
yield Timer(1, unit='ns')
@cocotb.test()
def add_corner(dut):
dut.uop <= 0b0
dut.src <= 0b01
test(dut)
yield Timer(1, units='ns')
dut._log.info('done')
模拟已创建并运行,但协程从未被调用。既不执行日志消息也不执行分配。
我使用 python 3.8 并测试了 repo 中包含的一些示例。axi_slave 测试工作正常,所以我假设我的设置工作正常。
有人猜测可能导致问题的原因吗?