将参数从 makefile 传递到 cocotb testbench
Pass argument from makefile to cocotb testbench
给定 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框架指定了目标testbench。
这意味着您也可以使用环境将参数传递给 $(MODULE).py。即,启动 make 为:
MY_TB_ARGS=<whatver> make
在 $(MODULE).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'}
给定 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框架指定了目标testbench。
这意味着您也可以使用环境将参数传递给 $(MODULE).py。即,启动 make 为:
MY_TB_ARGS=<whatver> make
在 $(MODULE).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'}