⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 traffic_control.vhd

📁 该程序是用一片HDPLD和若干外围电路实现的十字路口交通控制器,其中包含顶层图形文件和源文件以及仿真波形
💻 VHD
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY traffic_control IS
	PORT(
		clk:IN STD_LOGIC;
		c1,c2,c3:OUT STD_LOGIC;
		w1,w2,w3:IN STD_LOGIC;
		r1,r2:OUT STD_LOGIC;
		y1,y2:OUT STD_LOGIC;
		g1,g2:OUT STD_LOGIC;
		reset:IN STD_LOGIC);
END traffic_control;
	
ARCHITECTURE arc_traffic_control OF traffic_control IS
	TYPE STATE_SPACE IS(S0,S1,S2,S3);
	SIGNAL state:STATE_SPACE;
	BEGIN
		PROCESS(clk)
		BEGIN
			IF reset = '1' THEN
				state <= S0;
			ELSIF (clk 'EVENT AND clk = '1') THEN
				CASE state IS
					WHEN S0 =>
						IF w1 = '1' THEN
							state <= S1;
						END IF;
					WHEN S1 =>
						IF w2 = '1' THEN
							state <= S2;
						END IF;
					WHEN S2 =>
						IF w3 = '1' THEN
							state <= S3;
						END IF;
					WHEN S3 =>
						IF w2 = '1' THEN
							state <= S0;
						END IF;
				END CASE;
			END IF;
		END PROCESS;
		
		c1 <= '1' WHEN state = S0 ELSE '0';
		c2 <= '1' WHEN state = S1 OR state = S3 ELSE '0';
		c3 <= '1' WHEN state = S2 ELSE '0';
		r1 <= '1' WHEN state = S1 OR state = S0 ELSE '0';
		y1 <= '1' WHEN state = S3 ELSE '0';
		g1 <= '1' WHEN state = S2 ELSE '0';
		r2 <= '1' WHEN state = S2 OR state = S3 ELSE '0';
		y2 <= '1' WHEN state = S1 ELSE '0';
		g2 <= '1' WHEN state = S0 ELSE '0';
	END arc_traffic_control;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -