Advertisement

Verilog区别在于“==”与“===”的不同作用

阅读量:

“===”和“==”不同体现在对含有不定制X和高阻态Z数据的处理中:

先说结论:

  • ==表示逻辑相等,在无x/z的情况下相同位输出1,在不同位输出0;当存在x/z时,则根据其余位的情况决定结果:若其余位相同,则结果为x;若其余位不同,则结果为0;
  • !=表示逻辑不等,在无x/z的情况下相同位输出0,在不同位输出1;当存在x/z时,则根据其余位的情况决定结果:若其余位相同,则结果为x;若其余位不同,则结果为1;
  • ===与!==分别代表逻辑全等与逻辑不全等,在处理方式上将x/z视为普通元素进行比较

本质:

===与!==将x/z按照普通元素看待,进行比较;

当无法识别x/z时,在其余各位相同的情况下(即x/z位上无法确定比较结果),本系统将该位置的结果设为x;反之则,在其余各位不同的情形下(即x/z位上能够直接判定比较结果不一致),将该位置的结果设为0

由于无法识别x/z,在这些位置上也无法确定比较结果时,则输出变量赋值为x;反之亦然,在其他各位不同时,则可以直接判定两者的比较结果不等,并将变量赋值为1。

1、“==”逻辑相等:

两个操作数逐位比较,不识别不定态‘x’或者高阻态’z’:

复制代码
 $displayb ( 4’b0011 == 4’b1010 ); // 0

    
 $display

全部评论 (0)

还没有任何评论哟~