IEEE Float类型转换为std_logic_vector

时间:2011-09-20 08:40:12

标签: floating-point vhdl

我有一个2 D矩阵,其中每个元素应该是64位std_logic_vector。

现在我想将某些值存储到矩阵中,如下面所示。我怎么做? 例如:

type a is array (0 to 10,0 to 10) of std_logic_vector(63 downto 0);
signal a1: a;
a1(0,0) <= std_logic_vector( to_float64(12.23) );

基本上我不知道如何将float64转换为std_logic_vector。

我正在使用ieee_proposed中的float_pkg库。

1 个答案:

答案 0 :(得分:4)

为什么不这样做:

type aftype is array (0 to 10,0 to 10) of float64;
signal af: aftype;

然后没有转换。

就转化而言,to_float函数需要一种类型来了解如何格式化real输入:

signal f : float64;
f <= to_float(12.34, f);
-- or
af(0,0) <= to_float(12.34,f);

如果您必须拥有std_logic_vector,则可以使用包中的to_std_logic_vector(别名为to_slv):

a1(0,0) <= to_slv(to_float(12.34,f));