VHDLFPGA交通灯.doc

上传人:聆听****声音 文档编号:8988987 上传时间:2023-05-16 格式:DOC 页数:7 大小:78.50KB
下载 相关 举报
VHDLFPGA交通灯.doc_第1页
第1页 / 共7页
VHDLFPGA交通灯.doc_第2页
第2页 / 共7页
VHDLFPGA交通灯.doc_第3页
第3页 / 共7页
VHDLFPGA交通灯.doc_第4页
第4页 / 共7页
VHDLFPGA交通灯.doc_第5页
第5页 / 共7页
VHDLFPGA交通灯.doc_第6页
第6页 / 共7页
VHDLFPGA交通灯.doc_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VHDLFPGA交通灯.doc

《VHDLFPGA交通灯.doc》由会员分享,可在线阅读,更多相关《VHDLFPGA交通灯.doc(7页珍藏版)》请在冰点文库上搜索。

VHDLFPGA交通灯.doc

《VHDL与数字系统设计》课程设计报告

(2014--2015年度第1学期)

名称:

VHDL与数字系统设计

题目:

交通灯控制器

院系:

电气与电子工程学院

班级:

电子1301

学号:

1131230106

学生姓名:

韩辉

指导教师:

高雪莲

设计周数:

2周

成绩:

日期:

2015年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,hold

flash:

outstd_logic;——输出变量flash,numa,numb,a,b

numa,numb:

outintegerrange0to25;

aR,aG,aY:

outstd_logic;

bR,bG,bY:

outstd_logic);

endcounter;——结束实体

architecturertlofcounteris——定义结构体

signalcountnum:

integerrange0to30;

begin

process(clock)

begin

ifreset='1'then——reset=1时保持原状态

countnum<=0;

elsifrising_edge(clock)then——检测时钟上升沿

ifcountnum=29then——计29秒自动跳回0

countnum<=0;

else

countnum<=countnum+1;——在前一秒的基础上加一秒

endif;

endif;

endprocess;

process(clock)

begin

ifrising_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';

else

numa<=30-countnum;——A路为红灯

aR<='1';

aG<='0';

aY<='0';

endif;

ifcountnum<=14then

numb<=15-countnum;——b路为红灯

bR<='1';

bG<='0';

bY<='0';

elsifcountnum<=24then

numb<=25-countnum;——B路为绿灯

bR<='0';

bG<='1';

bY<='0';

else

numb<=30-countnum;——B路为黄灯

bR<='0';

bG<='0';

bY<='1';

endif;

endif;

endprocess;——结束进程

end;

三.课程设计结论与总结

1.交通灯控制器的仿真波形图及其分析:

图1交通灯控制道路的仿真波形图一

图1为交通灯控制道路的仿真波形图,由图1分析可得以下结论:

(1)如图1中蓝色框内区域所示,当reset=1时,交通灯状态保持不变;当reset=0时,交通灯控制器正常运行,即道路A按照绿—黄—红变化,道路B按照红—绿—黄变化。

(2)如图1中绿色直线所示,道路A的绿灯持续时间为10S,之后跳变为黄灯,黄灯持续时间为5S;道路B的红灯持续时间为15S。

符合原设计方案。

图2交通灯控制道路的仿真波形图二

图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;

entitycounteris

port(clock,reset,control:

instd_logic;

flash:

outstd_logic;

numa,numb:

outintegerrange0to15;

aR,aG,aY:

outstd_logic;

bR,bG,bY:

outstd_logic);

endcounter;

aRchitecturertlofcounteris

signalcountnum:

integerrange0to30;

begin

process(clock)

begin

ifreset='1'then

countnum<=0;

elsifrising_edge(clock)then

ifcontrol='1'then

flash<='1';

else

flash<='0';

ifcountnum=29then

countnum<=0;

else

countnum<=countnum+1;

endif;

endif;

endif;

endprocess;

process(clock)

begin

ifrising_edge(clock)then

ifcontrol='1'then

aR<='1';

bR<='1';

aG<='0';

bG<='0';

aY<='0';

bY<='0';

else

ifcountnum<=9then

numa<=10-countnum;

aR<='0';

aG<='1';

aY<='0';

elsifcountnum<=14then

numa<=15-countnum;

aR<='0';

aG<='0';

aY<='1';

else

numa<=30-countnum;

aR<='1';

aG<='0';

aY<='0';

endif;

ifcountnum<=14then

numb<=15-countnum;

bR<='1';

bG<='0';

bY<='0';

elsifcountnum<=24then

numb<=25-countnum;

bR<='0';

bG<='1';

bY<='0';

else

numb<=30-countnum;

bR<='0';

bG<='0';

bY<='1';

endif;

endif;

endif;

endprocess;

end;

改进后的交通灯控制器的仿真波形图如下:

图3改进后的交通灯控制器的仿真波形图

图3为改进后的交通灯控制器的仿真波形图,由图3分析可得以下结论:

当control=1时,道路A、B的交通灯均为红色。

其他结论与未改进前相同,在此不再赘述。

6

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2