我知道这个问题已经回答了一段时间,但所有这些答案都是针对相应代码的。 这就是我再次提出这个问题的原因。为什么我会收到此错误以及如何解决此问题。 我正在尝试制作一个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;
感谢您的帮助!
答案 0 :(得分:0)
在您的代码中,最后的ELSE缺少终止的END IF。
这是针对先前的ELSE IF,它是对应的IF,必须具有END IF;声明。