VHDL:递归n位比较器

时间:2019-12-28 10:39:39

标签: recursion vhdl

我必须递归在VHDL中创建一个n位比较器(相对于n = 2 ** k)。由于必要的章节是在圣诞节后完成的,所以我没有讲义。我的想法是使用如下通用声明: 我以为可以使用通用语句,如下所示:

entity comperator is
    generic (k: integer := 0);
    port(a, b: std_logic_vector(2**k-1 downto 0);
         c: out std_logic_vector (1 downto 0));
end;

architecture recursive of comperator is 
  signal e,d: std_logic_vector(1 downto 0);

begin
    p2: if k /= 0 generate
      d1 : entity comperator
           port map (a(2**k-1 downto 2**(k-1)), b(2**k-1 downto 2**(k-1)), d);

我用testbench进行了模拟,但是得到了奇怪的错误报告,如下所示: “ sem_parenthesis_name:无法处理IIR_KIND_COMPONENT_INSTANTIATION_STATEMENT(design.vhd:19:11)”

如果需要孔代码: https://www.edaplayground.com/x/2RuY

我不知道为什么代码不起作用。有人知道吗?

礼物, 盒子里有什么

1 个答案:

答案 0 :(得分:-2)

我发现了错误,现在可以解决。如果有人遇到相同或相似的问题,请参见以下指向正常工作源代码的链接: https://www.edaplayground.com/x/2RuY

相关问题