2

给定来自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
4

2 回答 2

4

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

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

MY_TB_ARGS=<whatver> make

在 $(MODULE).py 中,通过

import os
myTbArgs = os.environ['MY_TB_ARGS']
于 2017-11-24T20:00:41.663 回答
0

我会做类似的事情

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

并通过cocotb.plusargs

>>>print(cocotb.plusargs)
{'my_arg1': '123', 'my_arg2': '456'}
于 2021-05-20T09:03:26.757 回答