将参数从makefile传递到cocotb测试平台



给定来自cocotb/examples/dff/的D-FF示例。在不修改本机 cocotb makefile 的情况下将参数从Makefile传递到 cocotb 测试平台dff_cocotb.py的正确方法是什么?

我试图修改cocotb/examples/dff/tests/Makefile的第30行:

sim:
$(MODULE).py testarg

分别

sim: $(MODULE).py
$(MODULE).py:
$(MODULE).py testarg

这不起作用并显示错误消息:

usage: cocotb [-h] test
cocotb: error: too few arguments

嗯。看起来 Makefile 启动了模拟器,模拟器又通过 VPI 钩子将 cocotb 调用到模拟器中。 如果我理解正确,它通过环境变量为 cocotb 框架指定目标测试平台。

这意味着您也可以使用环境将参数传递给 $(MODULE).py。 即,启动制作为:

MY_TB_ARGS=<whatver> make

并在 $(模块).py 中,通过以下方式访问它们

import os
myTbArgs = os.environ['MY_TB_ARGS']

我会做类似的事情

make PLUSARGS="+my_arg1=123 +my_arg2=456"

并通过cocotb.plusargs访问它

>>>print(cocotb.plusargs)
{'my_arg1': '123', 'my_arg2': '456'}

最新更新