Math VHDL中的除法(int/float)

Math VHDL中的除法(int/float),math,floating-point,binary,vhdl,division,Math,Floating Point,Binary,Vhdl,Division,我想用VHDL在1个周期(组合电路)中划分两个数字(16位二进制)。分子是一个整数。分母是一个浮点数。结果应该是浮动的。我使用什么算法进行除法 请帮助我,我认为这是不可能的。是否有任何理由需要在1个时钟周期内完成?接近的唯一方法是使用查找表,但您必须牺牲输出的一些精度 这里有一个实体可以做你想做的事(如果我理解正确的话): ieee库; 使用ieee.numeric_std.all; 使用ieee.float_pkg.all; 实体整数除以浮点数除法为 港口( 分子:有符号(15到0); 分母:

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


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

这里有一个实体可以做你想做的事(如果我理解正确的话):

ieee库;
使用ieee.numeric_std.all;
使用ieee.float_pkg.all;
实体整数除以浮点数除法为
港口(
分子:有符号(15到0);
分母:有符号(15到0);
结果:向外浮动(6向下至-9)
);
结束;
采用浮点除法实现整数除法的rtl体系结构
子类型float16是float(6到-9);
信号分子浮点数:浮点数16;
信号分母_float:float16;
开始

分子_是我项目的一部分,我需要在每个步骤中进行除法。所以我不能给除法更多的时间。你的时钟频率是多少?你需要在一个周期内除法,还是每个周期完成一次除法?许多浮点除法器都是流水线的,因此它们可以在每个周期产生一个结果,而不会使周期时间长到足以在一个周期内进行除法。时钟周期有多长?我认为OP在说“float”时表示“IEEE754单精度”,所以分母和out可能需要是
float32
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;