錯誤:Error (10522): VHDL Syntax error at CONT.vhd(136): experienced unexpected end-of-file ; expecting "end", or "(", or an identifier, or a sequential statement
程式:LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CONT IS
PORT(
ADD_SUB_SIGN:IN STD_LOGIC;
CONT_SIGN:IN BIT;
CHOS:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
AA2,AA1,AA0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
BB2,BB1,BB0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
CC2,CC1,CC0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
DD2,DD1,DD0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
);
END CONT;
ARCHITECTURE TWO OF CONT IS
SIGNAL AA2_POINTS:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL AA1_POINTS:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL AA0_POINTS:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL BB2_POINTS:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL BB1_POINTS:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL BB0_POINTS:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL CC2_POINTS:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL CC1_POINTS:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL CC0_POINTS:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL DD2_POINTS:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL DD1_POINTS:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL DD0_POINTS:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(ADD_SUB_SIGN,CONT_SIGN,CHOS)
BEGIN
IF(ADD_SUB_SIGN'EVENT AND ADD_SUB_SIGN='1')THEN
IF CONT_SIGN='1' THEN
CASE CHOS IS
WHEN "1000"=>
IF(AA2_POINTS="1001" AND AA1_POINTS="1001" AND AA0_POINTS="1001") THEN
AA0_POINTS<="0000";
AA1_POINTS<="0000";
AA2_POINTS<="0000";
ELSIF(AA2_POINTS/="1001" AND AA1_POINTS="1001" AND AA0_POINTS="1001")
THEN
AA0_POINTS<="0000";
AA1_POINTS<="0000";
AA2_POINTS<=AA2_POINTS+'1';
ELSIF(AA2_POINTS/="1001" AND AA1_POINTS/="1001" AND AA0_POINTS="1001") THEN
AA0_POINTS<="0000";
AA1_POINTS<=AA1_POINTS+'1';
AA2_POINTS<=AA2_POINTS;
ELSE
AA0_POINTS<=AA0_POINTS+'1';
AA1_POINTS<=AA1_POINTS;
AA2_POINTS<=AA2_POINTS;
END IF;
WHEN "0100"=>
IF(BB2_POINTS="1001" AND BB1_POINTS="1001" AND BB0_POINTS="1001")THEN
BB0_POINTS<="0000";
BB1_POINTS<="0000";
BB2_POINTS<="0000";
ELSIF(BB2_POINTS/="1001" AND BB1_POINTS="1001" AND BB0_POINTS="1001")
THEN
BB0_POINTS<="0000";
BB1_POINTS<="0000";
BB2_POINTS<=BB2_POINTS+'1';
ELSIF(BB2_POINTS/="1001" AND BB1_POINTS/="1001" AND BB0_POINTS="1001") THEN
BB0_POINTS<="0000";
BB1_POINTS<=BB1_POINTS+'1';
BB2_POINTS<=BB2_POINTS;
ELSE
BB0_POINTS<=BB0_POINTS+'1';
BB1_POINTS<=BB1_POINTS;
BB2_POINTS<=BB2_POINTS;
END IF;
WHEN "0010"=>
IF (CC2_POINTS="1001" AND CC1_POINTS="1001" AND CC0_POINTS="1001")THEN
CC0_POINTS<="0000";
CC1_POINTS<="0000";
CC2_POINTS<="0000";
ELSIF(CC2_POINTS/="1001" AND CC1_POINTS="1001" AND CC0_POINTS="1001")
THEN
CC0_POINTS<="0000";
CC1_POINTS<="0000";
CC2_POINTS<=BB2_POINTS+'1';
ELSIF(CC2_POINTS/="1001" AND CC1_POINTS/="1001" AND CC0_POINTS="1001") THEN
CC0_POINTS<="0000";
CC1_POINTS<=CC1_POINTS+'1';
CC2_POINTS<=CC2_POINTS;
ELSE
CC0_POINTS<=CC0_POINTS+'1';
CC1_POINTS<=CC1_POINTS;
CC2_POINTS<=CC2_POINTS;
END IF;
WHEN "0001"=>
IF (DD2_POINTS="1001" AND DD1_POINTS="1001" AND DD0_POINTS="1001")THEN
DD0_POINTS<="0000";
DD1_POINTS<="0000";
DD2_POINTS<="0000";
ELSIF(DD2_POINTS/="1001" AND DD1_POINTS="1001" AND DD0_POINTS="1001")
THEN
DD0_POINTS<="0000";
DD1_POINTS<="0000";
DD2_POINTS<=DD2_POINTS+'1';
ELSIF(DD2_POINTS/="1001" AND DD1_POINTS/="1001" AND DD0_POINTS="1001") THEN
DD0_POINTS<="0000";
DD1_POINTS<=DD1_POINTS+'1';
DD2_POINTS<=DD2_POINTS;
ELSE
DD0_POINTS<=DD0_POINTS+'1' ;
DD1_POINTS<=DD1_POINTS;
DD2_POINTS<=DD2_POINTS;
END IF;
WHEN OTHERS=>NULL;
END CASE;
ELSE
CASE CHOS IS
WHEN "1000"=>
IF(AA2_POINTS="0000" AND AA1_POINTS="0000" AND AA0_POINTS="0000")THEN
AA0_POINTS<="1001";
AA1_POINTS<="1001";
AA2_POINTS<="1001";
ELSIF(AA2_POINTS/="0000" AND AA1_POINTS="0000" AND AA0_POINTS="0000")THEN
AA0_POINTS<="1001";
AA1_POINTS<="1001";
AA2_POINTS<=AA2_POINTS-'1';
ELSIF(AA2_POINTS/="0000" AND AA1_POINTS/="0000" AND AA0_POINTS="0000")THEN
AA0_POINTS<="1001";
AA1_POINTS<=AA1_POINTS-'1';
AA2_POINTS<=AA2_POINTS;
ELSE
AA0_POINTS<=AA0_POINTS-'1';
AA1_POINTS<=AA1_POINTS;
AA2_POINTS<=AA2_POINTS;
END IF ;
uj5u.com熱心網友回復:
后面加上END CASE;
END IF;
END IF;
END PROCESS;
END TWO;
自己找出來了。
謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/22180.html
標籤:硬件使用
上一篇:STM32F103 SPI 讀取TLC3574 ADC芯片
下一篇:485總線上存在傳感器讀數不準確
