Verilog中可综合的算术移位

Verilog中可综合的算术移位,verilog,bit-shift,Verilog,Bit Shift,我最近遇到了stackoverflow 使用Verilog,一旦你选择了一部分,结果是无符号的。使用所选零件上的$signed系统任务对其进行签名 此方法是否可合成(即系统任务$signed) 如果它不可合成,是否有其他方法对变量执行算术移位,如a>>2(这应该给出a除以4时的商)。它当然是可合成的。您的特定工具是否支持它是另一个问题 您还可以使用内置SystemVerilog res = signed'(registers[0][0]) >>> 2; 我将使用Vivado。

我最近遇到了stackoverflow

使用Verilog,一旦你选择了一部分,结果是无符号的。使用所选零件上的
$signed
系统任务对其进行签名

此方法是否可合成(即系统任务
$signed


如果它不可合成,是否有其他方法对变量执行算术移位,如
a>>2
(这应该给出
a
除以4时的商)。

它当然是可合成的。您的特定工具是否支持它是另一个问题

您还可以使用内置SystemVerilog

res = signed'(registers[0][0]) >>> 2;

我将使用Vivado。目标是Xilinx Zedboard,因此它应该支持它