VHDL编译器错误

时间:2014-03-05 23:25:43

标签: vhdl

错误:HDLParsers:164 - “C:/。Xilinx / Counter / Main.vhd”第35行。解析错误,意外的ENTITY,期待COMMA或SEMICOLON

我不知道它指出了什么错误......我无法看清它的意思,有人可以为我澄清它。

----------------------------------------------------------------------------------
-- Company: 
-- Engineer: 
-- 
-- Create Date:    23:52:28 03/05/2014 
-- Design Name: 
-- Module Name:    Main - Behavioral 
-- Project Name: 
-- Target Devices: 
-- Tool versions: 
-- Description: 
--
-- Dependencies: 
--
-- Revision: 
-- Revision 0.01 - File Created
-- Additional Comments: 
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;




entity Main is
PORT(
        CLK: in std_logic;
        LED: out std_logic_vector (7 downto 0)
        );

end Main;


architecture Behavioral of Main is
signal counter: std_logic_vector (7 downto 0);
signal prescaler:  std_logic_vector( 22 downto 0);
begin

CounterProcess: process(CLK)
begin
if rising_edge(CLK) then
    if prescaler < "1111111111111111111111" then 
        prescaler <= prescaler + 1;
        else
            prescaler <= (others => '0'); 
            counter <= counter + 1;
    end if;
end if; 
end process;

LED <= counter; 

end Behavioral;

2 个答案:

答案 0 :(得分:2)

WRT:ERROR:HDLParsers:164 - “C:/。Xilinx / Counter / Main.vhd”第35行。解析错误,意外的ENTITY,期待COMMA或SEMICOLON

您读取此内容的方式是编译器在找到关键字“ENTITY”时死亡(出错)。它想找到一个“;” (正如大卫为你的案子解释的那样)或“,”。

答案 1 :(得分:1)

你错过了一个分号:

 use IEEE.STD_LOGIC_ARITH.ALL   

使用条款之后。

VHDL分析器在那里抱怨的原因是因为那是找到下一个词法标记的地方。注释对VHDL中的语言分析没有意义,可以清楚地看到是否删除了它们。令牌字符串:保留字ALL,保留字ENTITY,在词法分析期望分号结束use子句的地方。

从理论上讲,保留字ALL足以告诉你缺少分号或逗号作为下一个词汇标记。没有区分是解析器实现的线索。