如何在verilog中检查未知寄存器

时间:2017-10-30 03:34:02

标签: verilog

当从控制台获得三个输入时,我想知道如何检查和警告'用户可能尚未初始化寄存器。

这样做我正在尝试:

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

2 个答案:

答案 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)

要与未知值进行比较,您应该使用!==或===代替!=和==