logo资料库

交通灯控制器.docx

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
Exercise 8 交通灯控制器 201800800659 通信一班 杨珺博 实验八报告 201800800659 通信一班 杨珺博 (一) 实验任务 学校拟在校园中繁忙的学术路(A)和文化路(C)的十字路口安装交通灯, 每条路上安装一组红黄绿交通灯来控制交通。还分别在两条路上安装了两个传感 器 TA 和 TC,当路上有人时,传感器输出 1,没人输出 0。采用 VHDL 的有限状态 机来设计一个交通灯控制器 Controller,要求实现以下控制功能: 1.按下复位键 RST 时,学术路上的绿灯亮,文化路上的红灯亮。 2.每隔 5 秒钟,控制器检查学术路传感器的输出。 3.若学术路上有人,灯不改变;若学术路上没人,则此路变为黄灯亮并保持 5 秒钟,然后变成红灯亮,同时文化路上变为绿灯亮。 4.此状态下,每隔 5 秒钟,控制器检查文化路是否有人。若有人,保持绿灯亮; 若没人,则此路变为黄灯亮并保持 5 秒钟,然后变成红灯亮,同时学术路上变为 绿灯亮。 5.状态机采用周期为 5 秒的时钟信号。 (二)设计思路 利用有限状态机实现不同情况下信号灯的变化。将信号灯的三种颜色通过三 维向量表示,从高到低按照红黄绿的顺序排列。 即红色=“100”=4; 黄色=“010”=2; 绿色=“001”=1,可使结果更加清晰 利用时序电路中时钟信号的周期来控制间隔时间 使用 case 语句和 if 语句来描述各个状态下信号灯的颜色情况
Exercise 8 交通灯控制器 201800800659 通信一班 杨珺博 (三)实验步骤 VHDL 代码: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY Controller IS PORT (TA, TC, RST, clk:IN STD_LOGIC; lightA,lightC:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));--将信号灯的三种颜色按红黄绿 END ENTITY Controller; ARCHITECTURE one OF Controller IS TYPE Crl_ST IS (S0,S1,S2,S3); SIGNAL c_st, next_state:Crl_ST; BEGIN 的顺序定义为向量 --定义状态符号 --将现态和次态定义为新的数据类型 c_st REG: PROCESS(RST,clk) BEGIN --主控时序进程 IF RST = '0' THEN c_st <= S0; --检测异步复位信号,复位后回到初态 s0 ELSIF clk = '1' AND clk'EVENT THEN c_st <= next_state; END IF; END PROCESS REG; COM:PROCESS(c_st,TA,TC) BEGIN --主控组合进程 CASE c_st IS WHEN s0 => lightA <= "001"; --初态 A 路绿灯亮,C 路红灯亮 lightC <= "100"; IF TA='1' THEN next_state<=s0; ELSE next_state<=s1; END IF; --A 路有人时灯不变 WHEN s1 => lightA <= "010"; --A 路没人时,A 路灯变黄,C 路不变 lightC <= "100"; next_state<=s2; WHEN s2 => lightA <= "100"; --A 路黄灯亮 5 秒后 A 路变红灯,同时 C 路变绿灯 lightC <= "001"; IF TC='1' THEN next_state<=s2; ELSE next_state<=s3; END IF; --C 路有人时灯不变 WHEN s3 => lightA <= "100"; --C 路没人时,C 路灯变黄,A 路不变 lightC <= "010"; next_state<=s0; --C 路有人时,回到初态 WHEN OTHERS => NULL; END CASE; END PROCESS COM; END ARCHITECTURE one;
Exercise 8 交通灯控制器 201800800659 通信一班 杨珺博 RTL 网表: 状态转换图: 1 2 3 4 5 6 (注:红色=“100”=4; 黄色=“010”=2; 绿色=“001”=1) 4) 4) 4) 由波形图可得,当 RST=0 时,此时复位,A 路绿灯亮,C 路红灯亮。(1 当 RST=1 时: 1:clk 上升沿到来检验 TA 传感器的值,为 1,说明 A 路有人,信号灯颜色不变; (1 2:clk 上升沿再次到来,检验得 TA 值为 0,A 路无人,A 路信号灯变黄,C 路不 变;(2 3:A 路黄灯维持 5 秒后,A 路变为红灯,C 路变为绿灯;(4 4:此状态下,TC 变为 1,C 路有人,信号灯不变;(4 1) 5:TC 为 0,C 路无人,C 路信号灯变黄,A 路不变;(4 6:C 路黄灯维持 5 秒后,C 路变为红灯,A 路变为绿灯,回到初态(1 1) 2) 4)
Exercise 8 交通灯控制器 201800800659 通信一班 杨珺博 (四)实验总结 本设计采用 VHDL 有限状态机,体现出其巨大的优越性,它能够克服纯硬件数 字系统顺序方式控制不灵活的缺点,可根据控制信号按照预先设定的状态进行顺 序进行的,容易利用现成的 EDA 工具进行优化设计,且系统性能稳定,告诉可靠。 此次实验在确立总体与其实现功能的前提下,分层次设计,一开始由于经验不足, 耗费较长时间,有些地点还需要进一步改善。
分享到:
收藏