之间有什么区别?

if (dataoutput[7:0] == 8'bx) begin


if (dataoutput[7:0] === 8'bx) begin

执行dataoutput = 52'bx后,第二个给出1,但是第一个给出0。为什么? (0或1是比较结果。)

最佳答案

Verilog中的某些数据类型(例如reg)是4状态。这意味着每个位可以是4个值之一:0,1,x,z。

使用“大小写相等”运算符===,将x进行比较,结果为1。

如前所述,对于==,比较结果不为0;相反,根据IEEE Std(1800-2009)第11.4.5节“相等运算符”,结果为x:

关于verilog - 在Verilog中==和===有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5927615/

10-13 00:31