我复制并粘贴了您的示例,并使用我的模拟器运行它输出:
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