错误(10500):big_adder.vhd(24)附近文本“”的VHDL语法错误;期待“)”或“,”

问题描述 投票:0回答:1

我在quartus上得到关于语法错误的错误,但无法找到它:该程序是8位的通用加法器

     LIBRARY ieee;
     USE ieee.std_logic_1164.all;

     ENTITY big_adder IS
     PORT (a, b: IN STD_LOGIC_VECTOR(31 DOWNTO 0);
     cin: IN STD_LOGIC;
     sum: OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
     cout: OUT STD_LOGIC);
     END big_adder;

     ARCHITECTURE big_adder OF big_adder IS
     SIGNAL carry: STD_LOGIC_VECTOR(8 DOWNTO 0);

     COMPONENT carry_lookahead_adder IS
     PORT (a, b: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
     cin: IN STD_LOGIC;
     sum: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
     cout: OUT STD_LOGIC);
     END COMPONENT;

     BEGIN
     carry(0) <= cin;
     gen_adder: FOR i IN 1 TO 8 GENERATE
        adder: carry_lookahead_adder PORT MAP(a(4*i–1 DOWNTO 4*i–4), b(4*i–1 DOWNTO 4*i–4), carry(i–1), sum(4*i–1 DOWNTO 4*i–4), carry(i));
     END GENERATE;
     cout <= carry(8);
     END big_adder;big_adder;
quartus
1个回答
0
投票

除最后一行外,语法看起来有效

     END big_adder;big_adder;

你必须删除其中一个“big_adder;”。

一个人的暗示:你应该训练自己从第1天开始编写干净的代码!

© www.soinside.com 2019 - 2024. All rights reserved.