VHDL分区(int / float)

时间:2013-10-03 14:08:46

标签: math floating-point binary vhdl division

我想在1个周期(组合电路)中用VHDL分割两个数字(16位二进制)。分子是一个整数。分母是一个浮点数。结果应该是浮动的。我用什么算法来执行除法。

请帮忙

2 个答案:

答案 0 :(得分:1)

这是一个实现你想要的实体(如果我理解正确的话):

library ieee;
use ieee.numeric_std.all;
use ieee.float_pkg.all;

entity integer_by_float_division is
    port (
        numerator: in signed(15 downto 0);
        denominator: in signed(15 downto 0);
        result: out float(6 downto -9)
   );
end;

architecture rtl of integer_by_float_division is
    subtype float16 is float(6 downto -9);
    signal numerator_float: float16;
    signal denominator_float: float16;
begin
    numerator_float <= to_float(numerator, numerator_float);
    denominator_float <= to_float(denominator, denominator_float);
    result <= numerator_float / denominator_float;
end;

答案 1 :(得分:0)

我不认为这是可能的。有什么理由需要在1个时钟周期内完成吗?接近的唯一方法是使用查找表,但是你必须在输出上牺牲一些精度。