gpt4 book ai didi

verilog - 算术移位充当逻辑移位,无论有符号变量如何

转载 作者:行者123 更新时间:2023-12-02 16:59:55 27 4
gpt4 key购买 nike

我有一个这样声明的寄存器:

logic signed [15:0][2:0][15:0] registers;

当我将 2 的补数放入数组中并对数字进行算术移位时,它会进行逻辑移位:

registers[0][0] = 16'b1000000000000000;
registers[0][0] = registers[0][0]>>>2;

显然,如果数字没有符号,系统将进行逻辑移位而不是算术移位。然而,正如您可以清楚地看到的,“registers”肯定是经过签名的。

有人知道我在这里可能会错过什么吗?

谢谢!

最佳答案

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

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

关于verilog - 算术移位充当逻辑移位,无论有符号变量如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14197117/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com