【问题标题】:Combinational division in HDLHDL中的组合划分
【发布时间】:2013-03-30 00:52:09
【问题描述】:

如果我要实现纯组合的 64 位除法,我正在尝试想出一种方法来估计门数。

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

【问题讨论】:

  • 我严重怀疑您是否想从 64 位除法中删除所有寄存器...
  • 显然有些综合工具实现了 / 而有些没有。我明白这将是巨大的。我只想知道有多大。

标签: vhdl verilog boolean-logic synthesis


【解决方案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 个 FlipFlop!)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多