我在VHDL代码中有一个变量是真实的,可以是正面的也可以是负面的。我使用以下将其转换为整数:
I_data_integer := integer(I_data_real);
问题是,如果 I_data_real 为负数,例如-523467.0
I_data_integer 的值仅为正数,即523467
。我的要求是将实际值的符号传递给整数。
我使用的是Questasim 10.4c。请帮忙!!!
答案 0 :(得分:0)
代码中的其他地方是否会出现错误?这是我刚试过的测试:
entity RealTest is
end RealTest;
architecture Behavioral of RealTest is
signal value_real : real := -523467.0;
signal value_integer : integer;
begin
process
begin
report "real: " & real'image(value_real);
value_integer <= integer(value_real);
wait for 0 ns;
report "integer: " & integer'image(value_integer);
wait;
end process;
end Behavioral;
在ModelSim中:
vcom RealTest.vhd
vsim RealTest
运行1 ns
输出:
**注:真实:-5.234670e + 005
时间:0 ns迭代次数:0实例:/ realtest
**注意:整数:-523467
时间:0 ns迭代:1实例:/ realtest
这似乎运作正常。我正在运行ModelSim 10.4c。