首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Verilog中==和===有什么不同?

在Verilog中==和===有什么不同?
EN

Stack Overflow用户
提问于 2011-05-08 21:07:55
回答 4查看 111K关注 0票数 39

它们之间的区别是什么:

代码语言:javascript
复制
if (dataoutput[7:0] == 8'bx) begin

代码语言:javascript
复制
if (dataoutput[7:0] === 8'bx) begin 

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-09 01:35:42

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

使用“大小写相等”操作符,===,x进行比较,结果是1。

对于==,正如您所说的,比较的结果不是0;相反,根据IEEE标准(1800-2009)第11.4.5节“相等运算符”,结果是x:

对于逻辑相等和逻辑不等运算符(==和!=),如果由于操作数中的未知或高阻抗位,关系不明确,则结果应为1位未知值(X)。

票数 36
EN

Stack Overflow用户

发布于 2011-05-08 21:58:37

在Verilog中:

  • ==测试逻辑相等性(测试1和0,其他所有测试结果均为x)
  • ===测试4状态逻辑相等性(测试1、0、z和x)
票数 22
EN

Stack Overflow用户

发布于 2014-12-09 11:34:24

用于比较位(0或1)的== ===用于比较所有4个状态(0,1,x,z)

==可以合成到硬件中(x-nor门),但===不能合成,因为x不是数字中的有效逻辑电平,它实际上具有介于0和1之间的电压。z本身也不是任何逻辑,它表明电路断开。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5927615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档