首页>>科技 >>内容

什么是移位运算符号的意思,什么是移位运算符

发布时间:2023-09-24 10:58:19编辑:温柔的背包来源:

很多朋友对什么是移位运算符号的意思,什么是移位运算符不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

什么是移位运算符号的意思,什么是移位运算符

数字硬件建模系统Verilog- shift运算符已经更新了几个星期,更新了SV核心的自定义类型和包内容,接下来是RTL表达式和运算符。移位运算符将向量的位向右或向左移位指定的次数。SystemVerilog有按位和算术移位运算符,如表5-18所示。表5-18:RTL建模的移位运算符

通过移动位,向量的位只向右或向左移动指定的次数,移出向量的位会丢失。移入的新比特被零填充。例如,操作8 ' b11000101 2将产生值8'b00010100。无论移位后的值是有符号的还是无符号的,按下移位位都会执行相同的操作。

算术左移对有符号和无符号表达式执行与按位右移相同的操作。算术右移对无符号和有符号表达式执行不同的运算。如果要移位的表达式是无符号的,算术右移的行为与按位右移相同,即输入位用零填充。如果表达式是带符号的,算术右移将通过用符号位的值填充每个输入位来保持带符号的值。图5-11显示了这些移位操作是如何将向量的位移位2位的。

图5-11:按位与算术移位运算——将值向左或向右移位2个位图5-11:按位与算术移位运算——将值向左或向右移位2位,将综合移位运算移动固定的次数。固定次数的移位操作只需要重新布线总线的位,“输入位”接地。不需要逻辑门来实现固定移位。例5-11说明了一个简单的二分频组合逻辑模型,其中除法是通过将一个8位总线向右移位一位来实现的。例5-11:使用移位运算符:通过右移一位除以二。

图5-12显示了如何合成固定数字的右移。综合编译器将缓冲器放置在模块的输入和输出上,但是不使用任何额外的门来执行操作。图5-12:例5-11综合结果:移位运算符,向右移位1位固定次数,也可以用连接运算表示。下面两行代码在功能上是相同的。两种类型的移位操作将被集成到相同的布线硬件中,并且一种类型没有优于另一种类型的优势。

运动的次数是可变的。可变数量的移位操作代表桶形移位器的功能,但是具体实现将取决于特定目标库中可用的门级功能。一些目标器件可能具有针对该器件优化的预建桶形移位器,而其他器件可能需要集成以从较低级别的门构建桶形移位器。

桶形移位器的一个应用是乘以(向左移位)或除以(向右移位)2的幂。例如,向左移动一位会使值乘以二。向左移动2位,将一个值乘以4。例5-12显示了变量左移操作的代码示例。例5-12:使用移位运算符:向左移位,乘以2的幂。

本例中的$ciog2系统函数用于计算base2exp输入端口的宽度。此函数返回log2值的上限(分数向上舍入到下一个整数)。这个函数是计算一个值需要多少位的便捷方法。图5-13说明了如何整合模型。原理图是将移位功能映射和优化到特定器件之前的“中间合成结果”。通用“左移位逻辑”组件表示未映射的移位操作。

图5-13:综合结果中的通用左移组件“例如,5-12:移位运算符,变量左移”的两个输入的位数相同。base2exp输入的未使用高位连接到地。当将通用左移分量映射到特定的目标实现时,可以删除这些未使用的比特。移位运算符可用于乘以或除以2的幂以外的值。下面的例子移动向量七次。

卡丁移位可以在硬件中实现非二次移位。例如,通过链接4位左移器、2位左移器和1位左移器,运算可以完成7次左移。

让合成器完成它的工作!综合使工程师能够在抽象层面进行设计,并专注于功能,而不会陷入实施细节或过于关注特定ASIC或FPGA的功能。综合编译器将抽象的功能模型转化为目标ASIC或FPGA的有效实现。虽然可以在更详细的级别模拟桶形移位行为,但这样做通常没有好处。

现代综合编译器使用移位运算符来识别抽象RTL模型中的桶移位行为,并将在目标设备中生成该函数的最佳实现。根据设备中可用的标准单元、LUT或门阵列,这种实现对于不同的目标设备可能不同。

以上知识分享希望能够帮助到大家!