加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Verilog中的逻辑运算

(2017-11-15 21:09:16)
分类: FPGA/CPLD

相等关系操作符有:
 ==
(逻辑相等)
 != (逻辑不等)

 ===(全等)

 !==(非全等)
如果比较结果为假,则结果为0;否则结果为1。在全等比较中,值xz严格按位比较。而在逻辑比较中,值xz具有通常的意义,且结果可以不为x。也就是说,在逻辑比较中,如果两个操作数之一包含xz,结果为未知的值(x)。如下例

假定:
Data = 'b11x0;
Addr = 'b11x0;
那么:Data == Addr
不定,也就是说值为x,但:
Data === Addr
为真,也就是说值为1

如果操作数的长度不相等,长度较小的操作数在左侧添0补位,例如:
2'b10 == 4'b0010
与下面的表达式相同:
4'b0010 = = 4'b0010
结果为真( 1)。

逻辑操作符有:
&& (
逻辑与)
 || (
逻辑或)
 
(逻辑非)
这些操作符在逻辑值01上操作。逻辑操作的结构为01。例如, 假定:
Crd = 'b0; //0
为假
Dgs = 'b1; //1
为真
那么:
Crd && Dgs
结果为0 ()
Crd || Dgs
结果为1 ()
Dgs 结果为0 ()
对于向量操作, 0向量作为1处理。例如,假定:
ABus = 'b0110;
BBus = 'b0100;
那么:
ABus || BBus
结果为1
ABus && BBus
结果为1
! ABus
! BBus的结果都为0

如果任意一个操作数包含x,结果也为x

!x 结果为x

0

阅读 收藏 喜欢 打印举报/Report
后一篇:初学Verilog
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有