Verilog中二等号==和三等号===的用法总结 您所在的位置:网站首页 alotalotof和lotsof三个的区别文库 Verilog中二等号==和三等号===的用法总结

Verilog中二等号==和三等号===的用法总结

2023-10-27 05:42| 来源: 网络整理| 查看: 265

在Verilog HDL语言中,存在着4中等式运算符:

== 等于!= 不等于=== 等于!= 不等于 注意:求反号,双等号,三等号之间不能有空格。 这四个运算符都是双目运算符,它要求有两个操作数。 ==和!=又称为逻辑等式运算符,其结果有两个操作数的值决定。由于操作数中某些为可能是不定值x和高阻值z。 而===和!==运算符则不同,它在对操作数进行比较时,对某些位的不定值x和高阻值z也进行比较,两个操作数必须完全一致,其结果才是1,否则为0。 ===和!==运算符常用于case表达式判别,所以又称为case等式运算符。 这四个等式运算符的优先级相同。

双等号等式运算符的真值表

==01xz010xx101xxxxxxxzxxxx双等号:等式两边有x或z,结果就为x。

三等号等式运算符

===01xz0100010100x0010z0001三等号:完全相等结果才为1,否则结果为0。 bresp或rresp为可能为x;条件判断中结果为x,会被转换为0;

以下条件中bresp为x时,判断条件并不完整:

if((bresp==2'b10)||(bresp==2'b11)) //当bresp为2'bxx时,不会报错,bug `uvm_fatal() else `uvm_info() if((bresp===2'b10)||(bresp===2'b11)) //当bresp为2'bxx时,不会报错,bug `uvm_fatal() else `uvm_info()

正确的判定条件如下(不考虑bresp为x0/x1/0x/1x的情况):

if((bresp===2'b10)||(bresp===2'b11)||(bresp===2'bxx)) //当bresp为2或3时,报错 `uvm_fatal() else `uvm_info()


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有