0.Verilog的移位运算符分类
- 逻辑移位:>>/<<。逻辑左移右移代表不管符号位,整体做移动。
- 算数移位:>>>/<<<。算术左移右移代表保留符号位不动。
- 两者都是非循环的移位操作。
- 若移位赋值目标位数多于源数据,对于有符号数右移,先拿符号位填充多出的bit位再按照下面的移位运算方式进行运算。
- 对于无符号数,逻辑移位和算数移位的效果完全一致。空缺拿0来补充。
1.算数移位
- 算数右移(>>>)
- 当移位数据为有符号数,高位补符号位。
- 当移位数据为无符号数,高位补0。
- 算数左移(<<<)
- 有符号数与无符号数效果一致,空缺拿0来补充。
2.逻辑移位
- 逻辑右移(>>)
- 不论移位数据为有符号数、无符号数,高位补零。
- 逻辑左移(<<)
- 有符号数与无符号数效果一致,空缺拿0来补充。