将参数从makefile传递给cocotb testbench

时间:2017-11-24 14:29:47

标签: makefile cocotb

给出cocotb/examples/dff/的D-FF示例。在不修改本地cocotb makefile的情况下,将参数从Makefile传递到cocotb testbench 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

2 个答案:

答案 0 :(得分:4)

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

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

MY_TB_ARGS=<whatver> make

并在$(MODULE).py中,通过

访问它们
import os
myTbArgs = os.environ['MY_TB_ARGS']

答案 1 :(得分:0)

我会做类似的事情

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

并通过 cocotb.plusargs

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