Vhdl 将标准逻辑向量输入转换为IEEE浮点型

Vhdl 将标准逻辑向量输入转换为IEEE浮点型,vhdl,xilinx,hdl,intel-fpga,Vhdl,Xilinx,Hdl,Intel Fpga,如何转换实体的标准逻辑向量输入 在IEEE浮点类型中,要在我的流程中执行一些操作吗? 我的实体需要接收a/D转换器的IEEE浮点。VHDL的浮点类型(real)是不可合成的(可能通过一些非常专业的工具除外),因此如果您有IEEE浮点形式的输入std_逻辑向量,您必须自己提取和处理所需的数据字段(符号、指数、尾数)(或者使用一个为您做这件事的库,知道这将消耗大量的硬件资源) 就我个人而言,如果可能的话,我会尽量避免使用浮点,而是坚持使用定点。VHDL默认没有浮点类型-它有实型,不可合成 然而,IE

如何转换实体的标准逻辑向量输入 在IEEE浮点类型中,要在我的流程中执行一些操作吗?
我的实体需要接收a/D转换器的IEEE浮点。

VHDL的浮点类型(real)是不可合成的(可能通过一些非常专业的工具除外),因此如果您有IEEE浮点形式的输入std_逻辑向量,您必须自己提取和处理所需的数据字段(符号、指数、尾数)(或者使用一个为您做这件事的库,知道这将消耗大量的硬件资源)


就我个人而言,如果可能的话,我会尽量避免使用浮点,而是坚持使用定点。

VHDL默认没有
浮点类型-它有
实型
,不可合成

然而,IEEE标准化的是完全可综合的


您必须先将
std_逻辑_向量
转换为
无符号
有符号
向量,然后转换为合适的浮点类型,不需要是IEEE-754定义的类型

您需要做什么?将来自ADC的整数数据转换为浮点?不是整数。来自AD的浮点值从IEEE形式的C到BCD形式的什么ADC产生浮点输出?问题不是这是不真实的,请看Martin的答案。@Josh抱歉,我很少在VHDL中使用浮点,以至于我忘记了类型叫
real
,而不是float。我仍然坚持我的观点,尽管应该避免在硬件中使用浮点,s因为它很难合成,往往需要大量资源,并且对于给定硬件算法的几乎所有感官实现都可以用定点替换。同意应尽可能避免。我的std_逻辑向量是如何转换的?如果我尝试_整数(到浮点数(有符号(我的std_逻辑向量)))我得到一个错误。我需要在我的_std_logic_vector中获取浮点数的整数值。错误(10779):浮点数处的VHDL错误。VHDL(4314):表达式不是常量错误(10657):浮点数处的VHDL子程序错误。VHDL(4314):无法详细说明对子程序“to _integer”的调用错误(10657):测试时的VHDL子程序错误。vhd(28):未能详细说明对子程序“to_integer”@Antônioveira的调用中的
my_std_logic_vector
格式是什么?如果它确实有符号,则只应将其转换为有符号-在您使用的语句中,to_浮点几乎没有意义。Hi@zennehoy。
my_std_logic_vector
是std_logic_vector中的
(32到1);
我想得到浮点数的所有数字,因为我想得到它们的整数部分。