📄 traffic_control.vhd
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY traffic_control IS
PORT(CLK:IN STD_LOGIC;
M1,M2,M3,M4,M5:IN STD_LOGIC;
N1,N2,N3,N4,N5:OUT STD_LOGIC;
MR,BR:OUT STD_LOGIC;
MY,BY:OUT STD_LOGIC;
MG,BG:OUT STD_LOGIC
);
END traffic_control;
ARCHITECTURE BEHAVE OF traffic_control IS
TYPE STATE_SPACE IS (S0,S1,S2,S3);
SIGNAL STATE:STATE_SPACE;
BEGIN
PROCESS(CLK)
BEGIN
IF(CLK'EVENT AND CLK='1')THEN
CASE STATE IS
WHEN S0=>IF M4='1' AND M5='0' THEN
STATE<=S1;
END IF;
WHEN S1=>IF M1='1'AND M5='1' THEN
STATE<=S2;
END IF;
WHEN S2=>IF M2='1' AND M3='0' THEN
STATE<=S3;
END IF;
WHEN S3=>IF M1='1' AND M3='1' THEN
STATE<=S0;
END IF;
END CASE;
END IF;
END PROCESS;
N1<='1' WHEN STATE=S1 OR STATE=S3 ELSE '0';
N2<='1' WHEN STATE=S2 ELSE '0';
N3<='1' WHEN STATE=S2 OR STATE=S3 ELSE '0';
N4<='1' WHEN STATE=S0 ELSE '0';
N5<='1' WHEN STATE=S0 OR STATE=S1 ELSE '0';
MR<='1' WHEN STATE=S2 OR STATE=S3 ELSE '0';
MY<='1' WHEN STATE=S1 ELSE '0';
MG<='1' WHEN STATE=S0 ELSE '0';
BR<='1' WHEN STATE=S0 OR STATE=S1 ELSE '0';
BY<='1' WHEN STATE=S3 ELSE '0';
BG<='1' WHEN STATE=S2 ELSE '0';
END BEHAVE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -