我的一段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;但是,出现了以下错误:
错误: COMP96_0049: Multiplicador.vhd:(133,17):表达式中的语法错误。
错误: COMP96_0015: Multiplicador.vhd:(133,17):‘)预期。
错误: COMP96_0019: Multiplicador.vhd:(133,18):关键字‘18’预期。
错误: COMP96_0019: Multiplicador.vhd:(141,6):关键字'end‘预期。
错误: COMP96_0049: Multiplicador.vhd:(141,20):表达式中的语法错误。
错误: COMP96_0015: Multiplicador.vhd:(141,20):‘)预期。
错误: COMP96_0019: Multiplicador.vhd:(141,21):关键字‘21’预期。
错误: COMP96_0019: Multiplicador.vhd:(147,9):关键字'process‘预期。
错误: COMP96_0015: Multiplicador.vhd:(150,8):';‘预期。
错误: COMP96_0016: Multiplicador.vhd:(150,10):预期的设计单元声明。
但我找不到解决办法。错误在这一部分。
发布于 2014-09-21 08:03:23
在您的代码中可能有不止一个错误。仅仅显示带有报告语法错误的行并不总是足够的。有时,实际错误可能出现在前面的一行中。
if(grupo = '000' or grupo = '111') then 词法元素' (撇号)只能用于指示属性、表示限定表达式的目标或作为字符文字的一部分。
'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;https://stackoverflow.com/questions/25956190
复制相似问题