LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
USE ieee.std_logic_unsigned.all;
ENTITY COUNTDOWN IS
PORT(
CLK:IN std_logic;
LED_ABIT: std_logic_vector(7 downto 0);
LED_SEGUNIT:std_ulogic_vector(7 downto 0);
LED_SEGDECADE:std_ulogic_vector(7 downto 0);
reset : in std_logic
);
END ENTITY COUNTDOWN;
ARCHITECTURE TWO OF COUNTDOWN IS
SIGNAL COUNTDECADE: INTEGER RANGE 0 TO 6;
SIGNAL COUNTUNIT:INTEGER RANGE 0 TO 9;
SIGNAL COUNT:INTEGER RANGE 0 TO 60;
SIGNAL COUNT1:std_logic_VECTOR(1 downto 0);
SIGNAL ABIT: std_logic_VECTOR(1 downto 0);
SIGNAL NUM:INTEGER RANGE 0 TO 60;
BEGIN
PROCESS(CLK)
BEGIN
if reset = '0' then --???
--state <= s0;
COUNTDECADE<=6;
COUNTUNIT<=0;
ELSIF CLK'EVENT AND CLK=1 THEN
COUNT<=COUNT+1;
COUNT1<=COUNT1+1;
IF(COUNT=1) THEN
COUNTDECADE<=5;
COUNTUNIT<=9;
ELSIF(COUNTUNIT=9) then
COUNTUNIT<=0;
COUNTDECADE<=COUNTDECADE-1;
END IF;
END IF;
END PROCESS;
ABIT <= COUNT(1 DOWNTO 0);
LED_ABIT <= "00000001" WHEN ABIT = 0 ELSE --位選掃描信號譯碼
"00000010" WHEN ABIT = 1 ELSE
LED_SEGDECADE<= "00000110"when COUNTDECADE=1 ELSE
"01011011"when COUNTDECADE=2 ELSE
"01001111"when COUNTDECADE=3 ELSE
"01100110"when COUNTDECADE=4 ELSE
"01101101"when COUNTDECADE=5 ELSE
"01111101"when COUNTDECADE=6 ELSE
LED_SEGUNIT<= "01111111" WHEN COUNTUNIT = 0 ELSE
"00000110" WHEN COUNTUNIT = 1 ELSE
"01011011" WHEN COUNTUNIT = 2 ELSE
"01001111" WHEN COUNTUNIT = 3 ELSE
"01100110" WHEN COUNTUNIT = 4 ELSE
"01101101" WHEN COUNTUNIT = 5 ELSE
"01111101" WHEN COUNTUNIT = 6 ELSE
"00000111" WHEN COUNTUNIT = 7 ELSE
"01111111" WHEN COUNTUNIT = 8 ELSE
"01101111" WHEN COUNTUNIT = 9 ELSE
END TWO;
軟體報錯最后一行出錯expecting "(",or an identifier("end" is a reserved keyword), or unary operator
求大佬解救!!!
uj5u.com熱心網友回復:
還有一個問題!
uj5u.com熱心網友回復:
朋友,錯誤資訊很明確啊,在“END TWO"前少了一個”;“,你最后的when else陳述句不完整啊!找個when else的陳述句例子仔細對比一下如何結束吧轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/112859.html
標籤:其他硬件開發
上一篇:cd啟動系統真的安全嗎
