HDL中的组合部门

时间:2013-03-30 00:52:10

标签: vhdl verilog boolean-logic synthesis

如果我要实现纯粹的64位组合,我试图想出一种估算门数的方法。

我无法使用我的综合工具来生成组合的64位/ 64位整数除法。

1 个答案:

答案 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得出以下综合结果:

  • 推断131加法器/减法器
  • 推断65比较者
  • 推断出4036多路复用器

当使用Spartan 6架构时,这会导致6982个Slice LUT(当然还有0个FlipFlops!)