移位器
| 库: | 运算器 |
| 引入版本: | 2.3.0 |
| 外观: |
|
行为
该组件包含两个输入:data 与 dist,以及一个输出端。输出结果为将 data 按 dist 指定的位数进行移位后的值。data 与输出具有相同的位宽。组件支持以下几种移位类型:
- 逻辑左移:将 data 中的所有位向高位方向移动 dist 位,低位补 0。例如,11001011 逻辑左移 2 位得到 00101100(最高两位被丢弃)。
- 逻辑右移:将 data 中的所有位向低位方向移动 dist 位,高位补 0。例如,11001011 逻辑右移 2 位得到 00110010(最低两位被丢弃)。
- 算术右移:将 data 中的所有位向低位方向移动 dist 位,高位用原最高位的值进行填充。例如,11001011 算术右移 2 位得到 11110010。
- 循环左移:将 data 中的所有位向高位方向移动 dist 位,移出的高位重新回绕到低位。例如,11001011 循环左移 2 位得到 00101111。
- 循环右移:将 data 中的所有位向低位方向移动 dist 位,移出的低位重新回绕到高位。例如,11001011 循环右移 2 位得到 11110010。
注意:如果 dist 输入中包含悬空位或错误位,则由于无法确定移位距离,输出将全部为错误值。
引脚
- 西侧上端(输入,位宽与“数据位宽”一致)
- 需要进行移位操作的数据输入 data。
- 西侧下端(输入,位宽按规则计算)
- 移位距离输入 dist,表示对 data 进行移位的位数。该输入的位宽应为能表示从 0 到“数据位宽减 1”的最小位数,即 ⌈log₂(数据位宽)⌉。例如,当数据位宽为 8 时,需要 3 位;当为 9 时,需要 4 位。
- 东侧(输出,位宽与“数据位宽”一致)
- 按指定移位类型和移位距离得到的结果。
属性
当组件被选中或正在放置时,Alt-0 到 Alt-9 可修改其 数据位宽 属性。
- 数据位宽
- data 输入端及输出端的位宽。
- 移位类型
- 指定移位方式,可选:逻辑左移、逻辑右移、算术右移、循环左移或循环右移。
手形工具行为
无
文本工具行为
无
返回 库参考手册