FPGA学习日记——04Verilog运算符

Verilog运算符

1、逻辑运算符

  • && 逻辑与
  • || 逻辑或
  • ! 逻辑非

其中&&、||优先级低于关系运算符,而!运算符高于算数运算符,因此

(a > b) && (x > y) 可以写成: a > b && x > y
(a == b) || (x == y) 可以写成: a == b || x == y
(!a) || (a > b) 可以写成:!a || a > b

为了增加程序可读性,一般使用括号

2、关系运算符

  • < 小于
  • > 大于
  • <= 小于等于
  • >= 大于等于

如果关系是真的(true)返回的值为1,如果关系是假的(false)返回的值位0。所有关系运算符优先级是一致的,都低于算数运算符,如

a < size - 1 等效于: a < (size - 1)
size - (1 < a) 不等效于: size - 1 < a //前者表示size,减了0或者1;后者表示size减1后再与a比较 

3、等式运算符

  • == 等于
  • != 不等于
  • === 全等
  • !== 不全等

全等(===)与等于(==)操作符差异在于,后者对于不定值x和高阻态z量的比较结果可能是不定值x;而前者能比较含有x和z的量,结果只有真或假两种状态,如下表所示

===01xz==01xz
01000010xx
10100101xx
x0010xxxxx
z0001zxxxx

4、移位运算符

  • << 左移
  • >> 右移

两种移位运算符都使用0来填补移出来的空位,如

a >> n //将a向右移动n位
b << n
4’b1001 << 1 = 5'b10010
4’b1001 << 2 = 6'b100100
1 << 6 = 32'b1000000
4'b1001 >> 1 = 4'b0100

5、位拼接运算符

  • {} 拼接运算符

该运算符能将多个数据按位拼接在一起,但需要指明数的宽度,如

//以下例子的表达式a, b均为常数表达式
{a, b[3:0], 3'b101}  //将这三个数据拼接在一起
{3{a}} //拼接运算符中可以使用重复法,相当于{a, a, a}
{a, {2{a, b}}} //拼接可以嵌套使用

6、运算符优先级

运算符优先级
! ~
* / %
+ -
<< >>
< <= > >=
== != === !==
&
^ ^~
|
&&
||
?:
  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

功成狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值