当从控制台获得三个输入时,我想知道如何检查和警告'用户可能尚未初始化寄存器。
这样做我正在尝试:
flag = $value$plusargs("a=%b", a);
if (flag != 0 && flag != 1) begin
$display("a might not be initialized");
end
flag = $value$plusargs("b=%b", b);
flag = $value$plusargs("c=%b", c);
#1 $display("a=%b b=%b c=%b z=%b", a, b, c, z);
然而,由于我的知识有限,我很难搞清楚要做什么。当我运行没有参数的编译代码时,我得到:
a = x,b = x,c = x,z = x;
但没有警告,即使标志(a)显然不是1而不是0
答案 0 :(得分:0)
flag
在命令行中找到$value$plusargs
并设置+a=value
的值,则 a
返回true(1)。所以你想要
if (flag == 0) begin
$display("a might not be initialized");
您可以一步完成此操作
if ( !$value$plusargs("a=%b", a) ) begin
$display("a might not be initialized");
如果您使用SystemVerilog,则可以使用$warning()
代替$display()
。
答案 1 :(得分:0)
要与未知值进行比较,您应该使用!==或===代替!=和==