')'预计. - VHDL

Adr*_*nni 0 vhdl

我的一段VHDL代码是:

                133 if(grupo = '000' or grupo = '111') then -- 0

                134 elsif(grupo = '001' or grupo = '010') then -- 1

                135 elsif(grupo = '011') then -- 2

                136 elsif(grupo = '100') then -- -2

                137 elsif(grupo = '101' or grupo = '110') then  -- -1

                138 end if;
Run Code Online (Sandbox Code Playgroud)

但是,这个错误来了:


错误:COMP96_0049:Multiplicador.vhd:(133,17):表达式中的语法错误.

错误:COMP96_0015:Multiplicador.vhd:(133,17):')'预期.

错误:COMP96_0019:Multiplicador.vhd:(133,18):关键字'然后'预期.

错误:COMP96_0019:Multiplicador.vhd:(141,6):预期关键字'结束'.

错误:COMP96_0049:Multiplicador.vhd:(141,20):表达式中的语法错误.

错误:COMP96_0015:Multiplicador.vhd:(141,20):')'预期.

错误:COMP96_0019:Multiplicador.vhd:(141,21):关键字'然后'预期.

错误:COMP96_0019:Multiplicador.vhd:(147,9):预期关键字"进程".

错误:COMP96_0015:Multiplicador.vhd:(150,8):';' 预期.

错误:COMP96_0016:Multiplicador.vhd:(150,10):预期的设计单位声明.


但我找不到解决方案.错误在于此部分.

use*_*120 9

您的代码中可能存在多个错误.只显示报告语法错误的行并不总是足够的.有时,实际错误可能在前一行.

 if(grupo = '000' or grupo = '111') then 
Run Code Online (Sandbox Code Playgroud)

词汇元素'(撇号)仅可用于指示属性,指示限定表达式的目标或作为字符文字的一部分.

'000'等等都不是.属性名称是标识符,用于指定应将聚合视为类型的类型名称.

这些是否应该使用括号?("000","111"等)

您没有提供足够的示例代码来重现错误.

这成功地分析了:

entity multiplicador is
end entity;

library ieee;
use ieee.std_logic_1164.all;

architecture que of multiplicador is
    signal grupo:   std_logic_vector(2 downto 0);
begin
UNLABLED:
    process (grupo)
    begin
        if (grupo = "000" or grupo = "111") then -- 0

        elsif(grupo = "001" or grupo = "010") then -- 1

        elsif(grupo = "011") then -- 2

        elsif(grupo = "100") then -- -2

        elsif(grupo = "101" or grupo = "110") then  -- -1

        end if;
    end process;
end architecture;
Run Code Online (Sandbox Code Playgroud)