您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > VHDLFPGA交通灯
《VHDL与数字系统设计》课程设计报告(2014--2015年度第1学期)名称:VHDL与数字系统设计题目:交通灯控制器院系:电气与电子工程学院班级:电子1301学号:1131230106学生姓名:韩辉指导教师:高雪莲设计周数:2周成绩:日期:2015年1月日课程课程设计报告1一、课程设计的目的与要求1.设计目的(1)熟悉MAXPLUS2/QuartusII软件,掌握软件的VHDL程序输入、程序编译和程序仿真操作;(2)学习利用VHDL语言设计交通灯控制器电路程序。2.设计要求:根据设计正文提出的交通灯控制器功能,实现交通灯控制器设计。(1)分析交通灯控制器的基础功能(见设计正文),在此基础上完善该交通灯控制器功能。(2)根据提出的真值表编写相应的VHDL程序。(3)对编写的程序说明其实现的功能和编程思路,描述程序中出现的端口含义。二、设计正文1.设计思路:设计一个交通灯控制器,该控制器包括两组红黄绿灯(A组和B组)。它们的变化顺序采用实际红绿灯变化顺序,变化时长设置:红灯15秒,绿灯10秒,黄灯5秒。(便于最终仿真结果的观察)2.交通灯控制器的源程序:libraRyieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;——包含库和程序包entitycounteris——定义实体port(clock,reset,hold:instd_logic;——输入变量clock,reset,holdflash:outstd_logic;——输出变量flash,numa,numb,a,bnuma,numb:outintegerrange0to25;aR,aG,aY:outstd_logic;bR,bG,bY:outstd_logic);endcounter;——结束实体architecturertlofcounteris——定义结构体signalcountnum:integerrange0to30;beginprocess(clock)beginifreset='1'then——reset=1时保持原状态countnum=0;elsifrising_edge(clock)then——检测时钟上升沿ifcountnum=29then——计29秒自动跳回0countnum=0;课程课程设计报告2elsecountnum=countnum+1;——在前一秒的基础上加一秒endif;endif;endprocess;process(clock)beginifrising_edge(clock)then——检测时钟上升沿ifcountnum=9then——A路为绿灯numa=10-countnum;aR='0';aG='1';aY='0';elsifcountnum=14then——A路为黄灯numa=15-countnum;aR='0';aG='0';aY='1';elsenuma=30-countnum;——A路为红灯aR='1';aG='0';aY='0';endif;ifcountnum=14thennumb=15-countnum;——b路为红灯bR='1';bG='0';bY='0';elsifcountnum=24thennumb=25-countnum;——B路为绿灯bR='0';bG='1';bY='0';课程课程设计报告3elsenumb=30-countnum;——B路为黄灯bR='0';bG='0';bY='1';endif;endif;endprocess;——结束进程end;三.课程设计结论与总结1.交通灯控制器的仿真波形图及其分析:图1为交通灯控制道路的仿真波形图,由图1分析可得以下结论:(1)如图1中蓝色框内区域所示,当reset=1时,交通灯状态保持不变;当reset=0时,交通灯控制器正常运行,即道路A按照绿—黄—红变化,道路B按照红—绿—黄变化。(2)如图1中绿色直线所示,道路A的绿灯持续时间为10S,之后跳变为黄灯,黄灯持续时间为5S;道路B的红灯持续时间为15S。符合原设计方案。图1交通灯控制道路的仿真波形图一图2交通灯控制道路的仿真波形图二课程课程设计报告4图2为交通灯控制道路的仿真波形图,由图2分析可得以下结论:上一周期道路A的5S黄灯结束后跳变为红灯,并持续15S;上一周期道路B的15S红灯结束后跳变为绿灯,并持续10S,而后又变为黄灯,持续5S。之后的周期继续循环往复。2.课程设计的总结与改进方案考虑到道路在偶遇突发状况的特殊情况,可以考虑在交通灯控制系统中加入特殊控制信号control,其作用为:当道路遇到突发状况时,control=1,此时要求道路A、B均为红灯;在无突发状况时,control=0,交通灯按原方案运行。改进后的交通灯控制器的源程序如下:(红色字体为修改部分)libraRyieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycounterisport(clock,reset,control:instd_logic;flash:outstd_logic;numa,numb:outintegerrange0to15;aR,aG,aY:outstd_logic;bR,bG,bY:outstd_logic);endcounter;aRchitecturertlofcounterissignalcountnum:integerrange0to30;beginprocess(clock)beginifreset='1'thencountnum=0;elsifrising_edge(clock)thenifcontrol='1'thenflash='1';elseflash='0';ifcountnum=29thencountnum=0;else课程课程设计报告5countnum=countnum+1;endif;endif;endif;endprocess;process(clock)beginifrising_edge(clock)thenifcontrol='1'thenaR='1';bR='1';aG='0';bG='0';aY='0';bY='0';elseifcountnum=9thennuma=10-countnum;aR='0';aG='1';aY='0';elsifcountnum=14thennuma=15-countnum;aR='0';aG='0';aY='1';elsenuma=30-countnum;aR='1';aG='0';aY='0';endif;ifcountnum=14then课程课程设计报告6numb=15-countnum;bR='1';bG='0';bY='0';elsifcountnum=24thennumb=25-countnum;bR='0';bG='1';bY='0';elsenumb=30-countnum;bR='0';bG='0';bY='1';endif;endif;endif;endprocess;end;改进后的交通灯控制器的仿真波形图如下:图3为改进后的交通灯控制器的仿真波形图,由图3分析可得以下结论:当control=1时,道路A、B的交通灯均为红色。其他结论与未改进前相同,在此不再赘述。图3改进后的交通灯控制器的仿真波形图
本文标题:VHDLFPGA交通灯
链接地址:https://www.777doc.com/doc-2866353 .html