近文字"过程"预期" IF"

时间:2016-12-18 12:36:04

标签: vhdl hdl quartus

我知道这个问题已经回答了一段时间,但所有这些答案都是针对相应代码的。 这就是我再次提出这个问题的原因。为什么我会收到此错误以及如何解决此问题。 我正在尝试制作一个8位向上/向下计数器。

错误:

  

错误(10500):文本附近UpDownCounter.vhd(30)的VHDL语法错误   " PROCESS&#34 ;;期待"如果"

LIBRARY IEEE;
USE  IEEE.STD_LOGIC_1164.all;
USE  IEEE.STD_LOGIC_ARITH.all;      -- needed for arithmetic increment
USE  IEEE.STD_LOGIC_UNSIGNED.all;

ENTITY UpDownCounter IS
port( inA, inB : IN STD_LOGIC ;
        Max_count: IN std_logic_vector(7 DOWNTO 0);
        result : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END UpDownCounter;

Architecture behavior of UpDownCounter is
signal internal_result : STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
result <= internal_result;
    PROCESS(inA, inB)
        BEGIN
            IF (inA'EVENT and inA = '1') THEN
                IF internal_count < Max_count THEN
                    internal_result <= internal_result + 1;
                END IF;
            ELSIF (inB'EVENT and inB = '1') THEN
                        -- Check for maximum count
                IF internal_count > Max_count THEN
                    internal_result <= internal_result - 1;
                END IF;
            ELSE                
                    internal_result <= "00000000";
    END PROCESS;    
END behavior;   

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在您的代码中,最后的ELSE缺少终止的END IF。

这是针对先前的ELSE IF,它是对应的IF,必须具有END IF;声明。