找回密码
 注册
关于网站域名变更的通知
查看: 551|回复: 1
打印 上一主题 下一主题

转——移位和位拼运算符之战

[复制链接]
  • TA的每日心情
    开心
    2019-11-20 15:00
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2019-4-12 13:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    转——移位和位拼运算符之战
    " ?+ D0 B# J$ R8 C& z* h* K

    & P/ N& ~* i. e
    1. 移位运算符
    移位运算符是双目运算符,将运算符左边的操作数左移或右移运算符右边的操作数指定的位数,用0来补充空闲位。如果右边操作数的值为X或Z,则移位结果为未知数X。
    Verilog HDL中有两种移位运算符:<<(左逻辑移)和>>(右逻辑移)。
    例程1
    & `' w- i! g+ s2 m4 V, F& |8 R
    4 g8 v9 |& \. X% S3 q

    * z4 f4 |, D. F/ P * L) X3 J# Q- {1 m5 `9 P$ x; _' |
    仿真图$ @. J& C* Z! \% O

    ! T5 Q: h1 K; A' V9 m" [$ `) p1 u, o5 W/ z% T3 {
    从仿真图,可以看出,每次a都向左边移动移位,后面补充0,直到把逻辑1溢出,后面就一直为0了。每次b都向右边移动移位,前面补充0,直到把逻辑1溢出,就一直为0了。
    总结:移位运算符的使用时,左移可以看成是乘以2,右移可以看成是除以2。所以移位运算符用在计算中,代替乘法和除法。尤其是除法,使用移位的方式,可以节省资源。

    # o7 W0 G* V6 W' S* n) R6 H2 E
    1. 位拼运算符
        位拼运算符是将多个小的表达式合并形成一个大的表达式,用符号{}来实现多个表达式的连接运算,各个表达式之间用“,”隔开。
    例程2

    . s0 Q! U! ?1 f  _; L* b' X
    . X3 F; ~0 B4 V& U
    ' j6 ~0 z# i1 ~, N/ q; _
    仿真图
    ) Q2 L& V" T( I! Y4 z
    从图中可以看出,输出从左向右,每次0变换一个位置,到最右边时就会放返回最左边继续循环,使用拼位的运算符,就会使程序编写起来变得简单了。
    程序中代码的意思就是,每次把最低位放到最高位,让前三位放到后面,这样逻辑“1”就实现了移位,形成了循环。

    5 {4 B7 k7 {& L+ {6 M
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-31 10:49 , Processed in 0.118164 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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