如何在保持VHDL符号的同时将实数转换为整数

时间:2015-10-27 10:18:46

标签: integer vhdl

我在VHDL代码中有一个变量是真实的,可以是正面的也可以是负面的。我使用以下将其转换为整数:

I_data_integer := integer(I_data_real);

问题是,如果 I_data_real 为负数,例如-523467.0 I_data_integer 的值仅为正数,即523467。我的要求是将实际值的符号传递给整数。

我使用的是Questasim 10.4c。请帮忙!!!

1 个答案:

答案 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。