我想在一个周期内(组合电路)将VHDL中的两个数字(16位二进制)相除。分子是一个整数。分母是一个浮点数。结果应为float。我应该使用什么算法来执行除法。
请帮帮忙
发布于 2013-10-04 03:46:06
下面是一个实体,它可以执行您想要的操作(如果我正确理解了问题的话):
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-03 22:28:58
我认为这是不可能的。你有什么理由需要在一个时钟周期内完成它吗?唯一接近的方法是使用查找表,但您必须牺牲输出的一些精度。
https://stackoverflow.com/questions/19161454
复制相似问题