未定义系统任务或函数“$value$plusarg”-> 警告:Verilog
System task or function '$value$plusarg' is not defined -> Warning : Verilog
我正在尝试学习如何使用 $value$plusarg。我从某处获取了以下代码。
module test;
integer i, r;
initial begin
r = $value$plusarg("myint=%d", i);
$display("Value is %0d", i);
end
endmodule
当我尝试 运行 它时,我收到如下警告:
System task or function '$value$plusarg' is not defined.
我用过Modelsim。我用过的命令如下:
vlog test_genvar.v +define+myint="22"
vsim work.test
run -all
我不确定问题出在代码还是我使用的命令上。提前致谢:)
你有 1800-2012 LRM 的副本吗?如果你这样做了,你会发现你拼错了一些东西。
非常愚蠢的错误。系统任务名称是 $value$plusargs
而不是 $value$plusarg
(缺少 's'..!!!)。
此外,您可以使用 $test$plusargs
到 detect/test 给定的开关是否在 运行 时间可用。喜欢如下:
if($test$plusargs("myint"))
begin
$value$plusargs("myint=%d",i);
end
还有一件事,我正在使用 VCS,为了提供这些类型的开关,我只使用“./simv +myint=5”(当然 simv 是我的编译可执行文件)。所以,不需要 +define+myint=5
,直接 +myint=5
就可以了。
此外,这些是 运行 时间开关,而不是编译时间。所以,我认为他们应该使用 vsim
命令而不是 vlog
,但我不确定这一点。我想没什么大不了的。
您的代码可在 EDAPlayground here 获得,使用 VCS 进行模拟。仅供参考。
我正在尝试学习如何使用 $value$plusarg。我从某处获取了以下代码。
module test;
integer i, r;
initial begin
r = $value$plusarg("myint=%d", i);
$display("Value is %0d", i);
end
endmodule
当我尝试 运行 它时,我收到如下警告:
System task or function '$value$plusarg' is not defined.
我用过Modelsim。我用过的命令如下:
vlog test_genvar.v +define+myint="22"
vsim work.test
run -all
我不确定问题出在代码还是我使用的命令上。提前致谢:)
你有 1800-2012 LRM 的副本吗?如果你这样做了,你会发现你拼错了一些东西。
非常愚蠢的错误。系统任务名称是 $value$plusargs
而不是 $value$plusarg
(缺少 's'..!!!)。
此外,您可以使用 $test$plusargs
到 detect/test 给定的开关是否在 运行 时间可用。喜欢如下:
if($test$plusargs("myint"))
begin
$value$plusargs("myint=%d",i);
end
还有一件事,我正在使用 VCS,为了提供这些类型的开关,我只使用“./simv +myint=5”(当然 simv 是我的编译可执行文件)。所以,不需要 +define+myint=5
,直接 +myint=5
就可以了。
此外,这些是 运行 时间开关,而不是编译时间。所以,我认为他们应该使用 vsim
命令而不是 vlog
,但我不确定这一点。我想没什么大不了的。
您的代码可在 EDAPlayground here 获得,使用 VCS 进行模拟。仅供参考。