我想在1个周期(组合电路)中用VHDL分割两个数字(16位二进制)。分子是一个整数。分母是一个浮点数。结果应该是浮动的。我用什么算法来执行除法。
请帮忙
答案 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个时钟周期内完成吗?接近的唯一方法是使用查找表,但是你必须在输出上牺牲一些精度。