集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 980|回复: 2

一些常用运算符的学习总结

[复制链接]
zxopenhl 发表于 2017-2-14 16:38:04 | 显示全部楼层 |阅读模式
1、缩减运算符:
      缩减运算符是单目运算符,也有与或非运算。其与或非运算规则类似于位运算符的与或非运算规则,但其运算过程不同。位运算是对操作数的相应位进行与或非运算,操作数是几位数则运算结果也是几位数。而缩减运算符则不同,缩减运算是对单个操作数进行与或非递推运算,最后的运算结果是一位的二进制数。缩减运算的具体运算过程是这样的:第一步将操作数的第一位与第二位进行与或非运算,第二步将运算结果与第三位进行与或非运算,以此类推,直到最后一位。例如:
        reg [3:0] B;
        reg C;
        C=&B;
相当于
        C=((B[0]&B[1])&B[2])&B[3];

2、移位运算符:
        移位运算符是双目运算符,将运算符左边的操作数左移或右移指定的位数,用0来补充空闲位。如果右边的操作数的值为X或Z,则移位结果为未知数X。在应用移位运算符时,一定要注意它的这个特性,那就是空闲位用0来填充,也就是说,一个二进制数不管原数值是多少,只要一直移位,最终全部会变成0.
        逻辑左移:<<
        逻辑右移:>>
总结:移位运算符使用时,左移一位可以看成乘以2,右移一位可以看成除以2.所以移位运算符用在计算中,代替乘法和除法。尤其是除法,使用移位的方式,可以节省资源。且使用的前提是数据位宽要进行拓展,不然就全部是0了。

3、位拼运算符:
      位拼运算符是将多个小的表达式合并形成一个大的表达式,用符号{}来实现多个表达式的连接运算,各个表达式之间用“,”隔开。位拼运算符是比较常用的一种运算符,不但可以进行简单的数据拼接,更可以用来执行移位操作,而且数据永远是循环的,不会丢失,用途非常广泛。
例:led_out<={led_out[0],led[3:1]};//实现流水
解释:每次把最低位放到最高位,让前三位放在后面,这样逻辑就实现了移位,形成了循环。
星宇 发表于 2017-2-14 16:38:37 | 显示全部楼层
初学者的必备知识
大鹏 发表于 2017-2-14 16:47:57 | 显示全部楼层
讲的挺详细的,刚开始还很迷茫,看了之后就懂了,给楼主大赞
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-6 01:12 , Processed in 0.057291 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表