Verilog里的逻辑和相等关系运算符问题

来源:互联网 发布:淘宝逛网 编辑:程序博客网 时间:2024/05/22 00:15
相等关系操作符
相等关系操作符有:
• = =(逻辑相等)

• != (逻辑不等)

• = = =(全等)

• != =(非全等)
如果比较结果为假,则结果为0;否则结果为1。在全等比较中,值x和z严格按位比较。
也就是说,不进行解释,并且结果一定可知。而在逻辑比较中,值x和z具有通常的意义,且
结果可以不为x。也就是说,在逻辑比较中,如果两个操作数之一包含x或z,结果为未知的
值(x)。
如下例,假定:
D a t a = 'b11x0;
A d d r = 'b11x0;
那么:
D a t a = = A d d r
不定,也就是说值为x,但:
D a t a = = = A d d r
为真,也就是说值为1。
如果操作数的长度不相等,长度较小的操作数在左侧添0补位,例如:
2'b10 = = 4'b0010
与下面的表达式相同:
4'b0010 = = 4'b0010
结果为真( 1)。
4.2.4 逻辑操作符
逻辑操作符有:
• && (逻辑与)
• || (逻辑或)
• !(逻辑非)
这些操作符在逻辑值0或1上操作。逻辑操作的结构为0或1。例如, 假定:
C r d = 'b0; //0为假
Dgs = 'b1; //1为真
那么:
C r d && D g s 结果为0 (假)
C r d || D g s 结果为1 (真)
! D g s 结果为0 (假)
对于向量操作, 非0向量作为1处理。例如,假定:
A B u s = 'b0110;
B B u s = 'b0100;
那么:
A B u s || B B u s 结果为1
A B u s && B B u s 结果为1
并且:
! A B u s 与! B B u s的结果相同。
结果为0。
如果任意一个操作数包含x,结果也为x。

!x 结果为x

阅读全文
0 0
原创粉丝点击