【问题标题】:Verilog HDL Negate Monitor VariableVerilog HDL 否定监视器变量
【发布时间】:2012-11-21 15:50:18
【问题描述】:

从今天开始,我正在自学 Verilog HDL 并试图理解。我正在尝试以位形式显示通过逻辑图示例的变量的相反/否定。

module My_Implementation();
reg A,B,C,D;
wire F;

assign F = ((A&&(!B))||((!A)&&B))&&(C||(!D));

initial begin
    $monitor("A=%b A'=%b B=%b B'=%b C'=%b D=%b OUTPUT=%b",A,!A,B,!B,!C,D,F);
    #10     A=0; B=0; C=0; D=0;
    #10     A=1;
    #10     B=1;
    #10     C=1;
    #10     D=1;
    #10     A=0;
    #10     B=0;
    #10     C=0;
    #10     D=0;
    #10     $finish;
end

endmodule 

我尝试了多种组合来尝试显示否定变量,但我只得到“X”的输出。

【问题讨论】:

    标签: variables verilog hdl negate


    【解决方案1】:

    我复制并粘贴了您的示例,并使用我的模拟器运行它输出:

    A=x A'=x B=x B'=x C'=x D=x OUTPUT=x
    A=0 A'=1 B=0 B'=1 C'=1 D=0 OUTPUT=0
    A=1 A'=0 B=0 B'=1 C'=1 D=0 OUTPUT=1
    A=1 A'=0 B=1 B'=0 C'=1 D=0 OUTPUT=0
    A=1 A'=0 B=1 B'=0 C'=0 D=0 OUTPUT=0
    A=1 A'=0 B=1 B'=0 C'=0 D=1 OUTPUT=0
    A=0 A'=1 B=1 B'=0 C'=0 D=1 OUTPUT=1
    A=0 A'=1 B=0 B'=1 C'=0 D=1 OUTPUT=0
    A=0 A'=1 B=0 B'=1 C'=1 D=1 OUTPUT=0
    A=0 A'=1 B=0 B'=1 C'=1 D=0 OUTPUT=0
    

    如果我们在报告中添加时间,我们可以看到 x 发生在时间 0 之前,还没有声明任何内容。我预计会这样,一旦定义了所有输入,它就会解决。对于那些刚接触 Verilog 的人来说,x 意味着一个未知值可能值得注意。

    $monitor("%2t : A=%b A'=%b B=%b B'=%b C'=%b D=%b OUTPUT=%b",$realtime, A,!A,B,!B,!C,D,F);
    

    新输出:

     0 : A=x A'=x B=x B'=x C'=x D=x OUTPUT=x
    10 : A=0 A'=1 B=0 B'=1 C'=1 D=0 OUTPUT=0
    20 : A=1 A'=0 B=0 B'=1 C'=1 D=0 OUTPUT=1
    30 : A=1 A'=0 B=1 B'=0 C'=1 D=0 OUTPUT=0
    40 : A=1 A'=0 B=1 B'=0 C'=0 D=0 OUTPUT=0
    50 : A=1 A'=0 B=1 B'=0 C'=0 D=1 OUTPUT=0
    60 : A=0 A'=1 B=1 B'=0 C'=0 D=1 OUTPUT=1
    70 : A=0 A'=1 B=0 B'=1 C'=0 D=1 OUTPUT=0
    80 : A=0 A'=1 B=0 B'=1 C'=1 D=1 OUTPUT=0
    90 : A=0 A'=1 B=0 B'=1 C'=1 D=0 OUTPUT=0
    

    【讨论】:

    • 我调整了我的显示器以显示正确的时间线。但是,当我运行与您运行的代码相同的代码时。所有否定的变量仍然返回 x。这甚至是在 10、20、30 等初始未声明之后...可能是我正在使用的编译器吗?我目前正在使用iverilog。
    • 我认为它可能是您正在使用的编译器/模拟器,请尝试 assign F = ((A&&(B==0))||((A==0)&&B))&&(C||(D==0)); 或在您的监视器语句中尝试 !A(不是 A)尝试 ~A(反转 A)。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    相关资源
    最近更新 更多