炼狱传奇-移位和位拼运算符之战

发布时间:2015-4-30 09:43    发布者:zxopen09
关键词: 至芯 , FPGA , 移位 , 培训
1. 移位运算符
移位运算符是双目运算符,将运算符左边的操作数左移或右移运算符右边的操作数指定的位数,用0来补充空闲位。如果右边操作数的值为X或Z,则移位结果为未知数X。
Verilog HDL中有两种移位运算符:<<(左逻辑移)和>>(右逻辑移)。
  例程1


    仿真


    从仿真图,可以看出,每次a都向左边移动移位,后面补充0,直到把逻辑1溢出,后面就一直为0了。每次b都向右边移动移位,前面补充0,直到把逻辑1溢出,就一直为0了。
    总结:移位运算符的使用时,左移可以看成是乘以2,右移可以看成是除以2。所以移位运算符用在计算中,代替乘法和除法。尤其是除法,使用移位的方式,可以节省资源。


2. 位拼运算符
    位拼运算符是将多个小的表达式合并形成一个大的表达式,用符号{}来实现多个表达式的连接运算,各个表达式之间用“,”隔开。
例程2


仿真图


从图中可以看出,输出从左向右,每次0变换一个位置,到最右边时就会放返回最左边继续循环,使用拼位的运算符,就会使程序编写起来变得简单了。


代码的意思就是,每次把最低位放到最高位,让前三位放到后面,这样逻辑“1”就实现了移位,形成了循环。


本文地址:https://www.eechina.com/thread-148747-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表