VHDL -1 rem 4 returns 3、为什么?
VHDL -1 rem 4 returns 3, why?
取下面的VHDL代码:
to_signed(-1, 32) rem to_signed(4, 32)
据我从各种来源了解到 this SO question 这应该会产生结果 -1,但它 returns 3,就像 mod
一样。为什么?
谢谢!
哦不,不是...
作为 MCVE:
library ieee;
use ieee.numeric_std.all;
entity rem_tb is
end rem_tb;
architecture arch of rem_tb is
begin
assert false report "Result : " & integer'image(to_integer(to_signed(-1, 32)
rem to_signed(4, 32))) severity NOTE;
end arch;
使用 ghdl 编译:
ghdl -a rem_tb.vhd
ghdl -e rem_tb
ghdl -r rem_tb
它回复
rem_tb.vhd:11:1:@0ms:(assertion note): Result : -1
所以...您使用的是哪个模拟器?该模拟器对 MCVE 有什么作用?
取下面的VHDL代码:
to_signed(-1, 32) rem to_signed(4, 32)
据我从各种来源了解到 this SO question 这应该会产生结果 -1,但它 returns 3,就像 mod
一样。为什么?
谢谢!
哦不,不是...
作为 MCVE:
library ieee;
use ieee.numeric_std.all;
entity rem_tb is
end rem_tb;
architecture arch of rem_tb is
begin
assert false report "Result : " & integer'image(to_integer(to_signed(-1, 32)
rem to_signed(4, 32))) severity NOTE;
end arch;
使用 ghdl 编译:
ghdl -a rem_tb.vhd
ghdl -e rem_tb
ghdl -r rem_tb
它回复
rem_tb.vhd:11:1:@0ms:(assertion note): Result : -1
所以...您使用的是哪个模拟器?该模拟器对 MCVE 有什么作用?