0

我正在使用 Altera de0 nano soc FPGA。我有以定点类型存储的小数点数字(5 到 -27)(数字始终为正数)。我把它放到标准逻辑向量(32位),并通过Avalon接口发送到soc FPGA的HPS。但我不知道如何将这个接收到的数字解码回(c 语言)中的 c 浮点数。这个怎么做?

我用了fixed_pkg

library ieee_proposed;
USE ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee_proposed.float_pkg.ALL;
use ieee_proposed.fixed_pkg.ALL;
use ieee_proposed.fixed_float_types.ALL;
4

1 回答 1

0

假设您一对一映射ufixed(5 downto -27)std_logic_vector(31 downto 0)然后通过 Avalon 总线发送它。

#include <math.h>

double ConvertToFloatingPoint(unsigned long inputValue)
{
    return (double)inputValue / pow((double)2, 27);
}

即 22.8125 (ufixed) => 3061841920 (unsigned std_logic_vector) =over bus=> 3061841920 (unsigned long) => 22.8125 (double)

于 2017-07-25T09:51:45.040 回答