我最近在stackoverflow上遇到了this answer。
使用Verilog,一旦进行部分选择,结果就是无符号的。在零件选择上使用
$signed
系统任务使其签名。
这种方法是否可合成(即系统任务$signed
)
如果它不可合成,是否有不同的方法对像a <= a>>>2
这样的变量执行算术移位(当a
除以4时,这应该给出商数)。
它当然是可综合的。您的特定工具是否支持它是另一个问题。
您还可以在SystemVerilog中使用强制转换。
res = signed'(registers[0][0]) >>> 2;