?? xskz.vhd
字號:
--顯示控制電路的VHDL源程序
--XSKZ.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY XSKZ IS
PORT(CLK:IN STD_LOGIC;
CLR:IN STD_LOGIC;
SET:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
LED:OUT STD_LOGIC_VECTOR(27 DOWNTO 0));
END ENTITY XSKZ;
ARCHITECTURE ART OF XSKZ IS
TYPE STATE IS(S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,S16,S17,S18,S19,
S20,S21,S22,S23,S24,S25,S26,S27,S28,S29,S30);
SIGNAL CURRENT_STATE:STATE;
SIGNAL FLOWER:STD_LOGIC_VECTOR(27 DOWNTO 0);
BEGIN
PROCESS(CLR,CLK,SET) IS
CONSTANT F1:STD_LOGIC_VECTOR(27 DOWNTO 0):="0000001000000100000010000001";
CONSTANT F2:STD_LOGIC_VECTOR(27 DOWNTO 0):="0000011000001100000110000011";
CONSTANT F3:STD_LOGIC_VECTOR(27 DOWNTO 0):="0000111000011100001110000111";
CONSTANT F4:STD_LOGIC_VECTOR(27 DOWNTO 0):="0001111000111100011110001111";
CONSTANT F5:STD_LOGIC_VECTOR(27 DOWNTO 0):="0011111001111100111110011111";
CONSTANT F6:STD_LOGIC_VECTOR(27 DOWNTO 0):="0111111011111101111110111111";
CONSTANT F7:STD_LOGIC_VECTOR(27 DOWNTO 0):="1111111111111111111111111111";
CONSTANT F13:STD_LOGIC_VECTOR(27 DOWNTO 0):="0000001000000100000010000001";
CONSTANT F12:STD_LOGIC_VECTOR(27 DOWNTO 0):="0000011000001100000110000011";
CONSTANT F11:STD_LOGIC_VECTOR(27 DOWNTO 0):="0000111000011100001110000111";
CONSTANT F10:STD_LOGIC_VECTOR(27 DOWNTO 0):="0001111000111100011110001111";
CONSTANT F9:STD_LOGIC_VECTOR(27 DOWNTO 0):="0011111001111100111110011111";
CONSTANT F8:STD_LOGIC_VECTOR(27 DOWNTO 0):="0111111011111101111110111111";
CONSTANT F14:STD_LOGIC_VECTOR(27 DOWNTO 0):="0111000000100000010010001111";
CONSTANT F15:STD_LOGIC_VECTOR(27 DOWNTO 0):="0111001000100100010000001110";
CONSTANT F16:STD_LOGIC_VECTOR(27 DOWNTO 0):="0111001000100100010010001001";
CONSTANT F17:STD_LOGIC_VECTOR(27 DOWNTO 0):="0111001000100100000010000111";
CONSTANT F18:STD_LOGIC_VECTOR(27 DOWNTO 0):="0110001000000100010010001111";
CONSTANT F19:STD_LOGIC_VECTOR(27 DOWNTO 0):="0001001000100100010010001111";
CONSTANT F24:STD_LOGIC_VECTOR(27 DOWNTO 0):="0111000000100000010010001111";
CONSTANT F23:STD_LOGIC_VECTOR(27 DOWNTO 0):="0111001000100100010000001110";
CONSTANT F22:STD_LOGIC_VECTOR(27 DOWNTO 0):="0111001000100100010010001001";
CONSTANT F21:STD_LOGIC_VECTOR(27 DOWNTO 0):="0111001000100100000010000111";
CONSTANT F20:STD_LOGIC_VECTOR(27 DOWNTO 0):="0110001000000100010010001111";
CONSTANT F25:STD_LOGIC_VECTOR(27 DOWNTO 0):="1110110000000000000000000000";
CONSTANT F26:STD_LOGIC_VECTOR(27 DOWNTO 0):="1110110111011100000000000000";
CONSTANT F27:STD_LOGIC_VECTOR(27 DOWNTO 0):="1110110111011111100110000000";
CONSTANT F28:STD_LOGIC_VECTOR(27 DOWNTO 0):="1110110111011111100111101110";
CONSTANT F29:STD_LOGIC_VECTOR(27 DOWNTO 0):="0000000000000000000000000000";
CONSTANT F30:STD_LOGIC_VECTOR(27 DOWNTO 0):="1110110111011111100111101110";
--花型的定義
BEGIN
IF CLR='1' THEN
CURRENT_STATE<=S0;
ELSIF RISING_EDGE(CLK) THEN
IF SET="000" THEN
CASE CURRENT_STATE IS
WHEN S0=>
FLOWER<="ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";
CURRENT_STATE<=S1;
WHEN S1=>
FLOWER<=F1;
CURRENT_STATE<=S2;
WHEN S2=>
FLOWER<=F2;
CURRENT_STATE<=S3;
WHEN S3=>
FLOWER<=F3;
CURRENT_STATE<=S4;
WHEN S4=>
FLOWER<=F4;
CURRENT_STATE<=S5;
WHEN S5=>
FLOWER<=F5;
CURRENT_STATE<=S6;
WHEN S6=>
FLOWER<=F6;
CURRENT_STATE<=S7;
WHEN S7=>
FLOWER<=F7;
CURRENT_STATE<=S1;
END CASE;
--花樣1
ELSIF SET="001" THEN
CASE CURRENT_STATE IS
--WHEN S0=>
-- FLOWER<="ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";
-- CURRENT_STATE<=S7;
WHEN S7=>
FLOWER<=F7;
CURRENT_STATE<=S8;
WHEN S8=>
FLOWER<=F8;
CURRENT_STATE<=S9;
WHEN S9=>
FLOWER<=F9;
CURRENT_STATE<=S10;
WHEN S10=>
FLOWER<=F10;
CURRENT_STATE<=S11;
WHEN S11=>
FLOWER<=F11;
CURRENT_STATE<=S12;
WHEN S12=>
FLOWER<=F12;
CURRENT_STATE<=S13;
WHEN S13=>
FLOWER<=F13;
CURRENT_STATE<=S7;
END CASE;
--花樣2
ELSIF SET="010" THEN
CASE CURRENT_STATE IS
WHEN S0=>
FLOWER<="ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";
CURRENT_STATE<=S14;
WHEN S14=>
FLOWER<=F14;
CURRENT_STATE<=S15;
WHEN S15=>
FLOWER<=F15;
CURRENT_STATE<=S16;
WHEN S16=>
FLOWER<=F16;
CURRENT_STATE<=S17;
WHEN S17=>
FLOWER<=F17;
CURRENT_STATE<=S18;
WHEN S18=>
FLOWER<=F18;
CURRENT_STATE<=S19;
WHEN S19=>
FLOWER<=F19;
CURRENT_STATE<=S14;
END CASE;
--花樣3
--ELSIF SET="011" THEN
CASE CURRENT_STATE IS
WHEN S0=>
FLOWER<="ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";
CURRENT_STATE<=S19;
WHEN S19=>
FLOWER<=F19;
CURRENT_STATE<=S20;
WHEN S20=>
FLOWER<=F20;
CURRENT_STATE<=S21;
WHEN S21=>
FLOWER<=F21;
CURRENT_STATE<=S22;
WHEN S22=>
FLOWER<=F22;
CURRENT_STATE<=S23;
WHEN S23=>
FLOWER<=F23;
CURRENT_STATE<=S24;
WHEN S24=>
FLOWER<=F24;
CURRENT_STATE<=S19;
END CASE;
--花樣4
ELSIF SET="100" THEN
CASE CURRENT_STATE IS
WHEN S0=>
FLOWER<="ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";
CURRENT_STATE<=S25;
WHEN S25=>
FLOWER<=F25;
CURRENT_STATE<=S26;
WHEN S26=>
FLOWER<=F26;
CURRENT_STATE<=S27;
WHEN S27=>
FLOWER<=F27;
CURRENT_STATE<=S28;
WHEN S28=>
FLOWER<=F28;
CURRENT_STATE<=S29;
WHEN S29=>
FLOWER<=F29;
CURRENT_STATE<=S30;
WHEN S30=>
FLOWER<=F30;
CURRENT_STATE<=S25;
END CASE;
--花樣5
ELSIF SET="101" THEN
CASE CURRENT_STATE IS
WHEN S0=>
FLOWER<="ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";
CURRENT_STATE<=S1;
WHEN S1=>
FLOWER<=F1;
CURRENT_STATE<=S2;
WHEN S2=>
FLOWER<=F2;
CURRENT_STATE<=S3;
WHEN S3=>
FLOWER<=F3;
CURRENT_STATE<=S4;
WHEN S4=>
FLOWER<=F4;
CURRENT_STATE<=S5;
WHEN S5=>
FLOWER<=F5;
CURRENT_STATE<=S6;
WHEN S6=>
FLOWER<=F6;
CURRENT_STATE<=S7;
WHEN S7=>
FLOWER<=F7;
CURRENT_STATE<=S8;
WHEN S8=>
FLOWER<=F8;
CURRENT_STATE<=S9;
WHEN S9=>
FLOWER<=F9;
CURRENT_STATE<=S10;
WHEN S10=>
FLOWER<=F10;
CURRENT_STATE<=S11;
WHEN S11=>
FLOWER<=F11;
CURRENT_STATE<=S12;
WHEN S12=>
FLOWER<=F12;
CURRENT_STATE<=S13;
WHEN S13=>
FLOWER<=F13;
CURRENT_STATE<=S14;
WHEN S14=>
FLOWER<=F14;
CURRENT_STATE<=S15;
WHEN S15=>
FLOWER<=F15;
CURRENT_STATE<=S16;
WHEN S16=>
FLOWER<=F16;
CURRENT_STATE<=S17;
WHEN S17=>
FLOWER<=F17;
CURRENT_STATE<=S18;
WHEN S18=>
FLOWER<=F18;
CURRENT_STATE<=S19;
WHEN S19=>
FLOWER<=F19;
CURRENT_STATE<=S20;
WHEN S20=>
FLOWER<=F20;
CURRENT_STATE<=S21;
WHEN S21=>
FLOWER<=F21;
CURRENT_STATE<=S22;
WHEN S22=>
FLOWER<=F22;
CURRENT_STATE<=S23;
WHEN S23=>
FLOWER<=F23;
CURRENT_STATE<=S24;
WHEN S24=>
FLOWER<=F24;
CURRENT_STATE<=S25;
WHEN S25=>
FLOWER<=F25;
CURRENT_STATE<=S26;
WHEN S26=>
FLOWER<=F26;
CURRENT_STATE<=S27;
WHEN S27=>
FLOWER<=F27;
CURRENT_STATE<=S28;
WHEN S28=>
FLOWER<=F28;
CURRENT_STATE<=S29;
WHEN S29=>
FLOWER<=F29;
CURRENT_STATE<=S30;
WHEN S30=>
FLOWER<=F30;
CURRENT_STATE<=S1;
END CASE;
END IF;
END IF;
END PROCESS;
LED<=FLOWER;
END ARCHITECTURE ART;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -