📄 autoled.vhd.bak
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY AUTOLED IS
PORT(CLK : IN STD_LOGIC;
STATUS : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
LED : OUT STD_LOGIC_VECTOR(5 DOWNTO 0));
END AUTOLED;
ARCHITECTURE run OF AUTOLED IS
BEGIN
T: PROCESS(CLK)
VARIABLE COUNT :STD_LOGIC_VECTOR(1 DOWNTO 0) :="00";
VARIABLE LIG : STD_LOGIC_VECTOR(5 DOWNTO 0);
BEGIN
IF CLK'EVENT AND CLK = '1' THEN
IF STATUS = "1111" --Trouble
THEN IF LIG = "111111"
THEN LIG := "000000";
ELSE LIG := "111111";
END IF;
ELSIF STATUS = "1100" --Brake
THEN LIG := "111111";
ELSIF STATUS = "0110" --Turn Left
THEN IF COUNT = "11"
THEN COUNT := "11";
ELSE COUNT := COUNT + '1';
END IF;
CASE COUNT IS
WHEN "00" => LIG := "000000";
WHEN "01" => LIG := "100000";
WHEN "10" => LIG := "110000";
WHEN "11" => LIG := "111000";
END CASE;
ELSIF STATUS = "1010" --Turn Right
THEN IF COUNT = "11"
THEN COUNT := "11";
ELSE COUNT := COUNT + '1';
END IF;
CASE COUNT IS
WHEN "00" => LIG := "000000";
WHEN "01" => LIG := "000001";
WHEN "10" => LIG := "000011";
WHEN "11" => LIG := "000111";
END CASE;
ELSE LIG := "000000"; --Normal
END IF;
END IF;
LED <= LIG;
END PROCESS;
END run;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -