文档介绍:实验二:十字路口交通管理器的设计
交通管理器的功能:
交通管理器控制甲、乙两道的红、黄、绿三色灯,指挥车辆和行人安全通行。管理器由控制器和受其控制的三个定时器以及6个交通管理灯组成。三个定时器分别确定甲道和乙道通行时间以及公共的停车(黄灯燃亮)时间,这三个定时器采用以秒信号为时钟的计数器来实现。
算法流程图
甲道禁止乙道通行
W1=1?
甲道禁止乙道停车
W2=1?
甲道通行乙道禁止
W3=1?
甲道停车乙道禁止
W2=1?
设计输入
顶层输入图形如下:
控制器源文件:
LIBRARY IEEE;
USE ;
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 a 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 s