如果我要实现纯粹的64位组合,我试图想出一种估算门数的方法。
我无法使用我的综合工具来生成组合的64位/ 64位整数除法。
答案 0 :(得分:1)
一个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!)