如果我要实现纯组合的 64 位除法,我正在尝试想出一种方法来估计门数。
我无法让我的综合工具生成组合的 64 位/64 位整数除法。
如果我要实现纯组合的 64 位除法,我正在尝试想出一种方法来估计门数。
我无法让我的综合工具生成组合的 64 位/64 位整数除法。
完全组合的 64 位/64 位分频器带来了巨大的设计。这将使用大量资源并导致速度成绩不佳。我建议用几个寄存器阶段而不是完全组合来实现除法。
但是,如果您想尝试,可以综合以下代码(因为“/”操作由numeric_std库提供)。使用综合工具检查所需的资源(建议在实体中使用 std_logic_vector 进行综合):
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.numeric_std.ALL;
entity divideComb is
Port ( a : in STD_LOGIC_VECTOR (63 downto 0);
b : in STD_LOGIC_VECTOR (63 downto 0);
c : out STD_LOGIC_VECTOR (63 downto 0));
end divideComb;
architecture Behavioral of divideComb is
begin
c<=std_logic_vector(signed(a)/signed(b));
end Behavioral;
上述代码使用 Xilinx ISE 13.4 得到以下综合结果:
当使用 Spartan 6 架构时,这会导致 6982 个 Slice LUT(当然还有 0 个 FlipFlops!)