0

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

请帮忙

4

2 回答 2

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;
于 2013-10-03T19:46:05.837 回答
0

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

于 2013-10-03T14:28:58.193 回答