我必须递归在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
我不知道为什么代码不起作用。有人知道吗?
礼物, 盒子里有什么
答案 0 :(得分:-2)
我发现了错误,现在可以解决。如果有人遇到相同或相似的问题,请参见以下指向正常工作源代码的链接: https://www.edaplayground.com/x/2RuY