Ошибка (10500): синтаксическая ошибка VHDL в big_adder.vhd(24) рядом с текстом ""; ожидая ")" или ","

Я получаю эту ошибку в 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;

1 ответ

Синтаксис выглядит верным, кроме последней строки

     END big_adder;big_adder;

Вы должны удалить один из "big_adder;"

Один личный совет: вы должны научиться писать чистый код с первого дня!

Другие вопросы по тегам