Verilog操作符

操作符优先级表
在这里插入图片描述
Verilog中的大小(size)与符号
Verilog根据表达式中变量的长度对表达式的值自动地进行调整;
Verilog自动截断或扩展赋值语句中右边的值以适应左边变量的长度;
当一个负数赋值给无符号变量如reg时,Verilog自动完成二进制补码计算;
算术运算符
加(+)、减(-)、乘(×)、除(÷)和模(%);
注意integer和reg类型在算术运算时的差别:integer是有符号数,而reg是无符号数;
将负数赋值给reg或其它无符号变量使用2的补码算术;如果操作数的某一位是x或z,则结果为x;在整数除法中,余数舍弃;模运算中使用第一个操作数的符号;
按位操作符
~ 非(not)
& 与(and)
| 或(or)
^ 异或(xor)
~^ 同或(xnor)
^~ 同或(xnor)
当两个操作数位数不同时,位数少的操作数零扩展到相同位数。
逻辑操作符
! 非(not)
&& 与(and)
|| 或(or)
!与的区别:!为逻辑反;为位反;逻辑反的结果为1,0或x;位反的结果与操作数的位数相同
逻辑操作符的结果为一位1,0或x;
逻辑操作符只对逻辑值运算;
如操作数为全0,则其逻辑值为false;
如操作数有一位为1,则其逻辑值为true;
若操作数只包含0、x、z,则逻辑值为x;
一元归约操作符
&、|、、~和^~的归约操作符只有一个;
对操作数的所有位进行位操作;结果只有一位,可以是0,1,X。
移位操作符
,>>逻辑右移;<<逻辑左移;
移位操作符对其左边的操作数进行向左或向右的位移位操作;
移位操作符对其左边的操作数进行向左或向右的位移位操作;
第二个操作数(移位位数)是无符号数;若第二个操作数是x或z则结果为x
关系操作符
,> 大于、< 小于、>= 大于等于和<= 小于等于
其结果是1’b1、1’b0、1bx;
相等操作符
= 赋值操作符,将等式右边表达式的值拷贝到左边;
= = 逻辑等,!=逻辑不等
其结果是1’b1、1’b0或1’bx。
在这里插入图片描述
= = = case等(Case等只能用于行为描述,不能用于RTL描述)
===相同(case等)、!==不相同(case不等)
综合工具不支持
在这里插入图片描述
条件操作符
条件操作符的语法为:
= ? <true_expression>:<false_expression>
如果条件值为x或z,则结果可能为x或z
级联操作符
可以从不同的矢量中选择位并用它们组成一个新的矢量,用于位的重组和矢量构造;
在级联和复制时,必须指定位数,否则将产生错误;级联时不限定操作数的数目,在操作符符号{ }中,用逗号将操作数分开。
复制
{ {} },复制一个变量或在{ }中的值;前两个{ 符号之间的正整数指定复制次数。

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值