基于FPGA的交通灯控制器设计_马艳亭 .pdfVIP

基于FPGA的交通灯控制器设计_马艳亭 .pdf

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

实验题目:基于FPGA的交通灯控制器设计

专业:集成电路设计与集成系统

班级:1203

姓名:马艳亭

学号

日期:2014年12月12日

一、功能描述:

输入为50MHz的时钟和复位信号,输出为红、绿、黄三个信号(高电平为

亮)。复位信号(高电平)有效,红、绿、黄灯灭;接着进行如下循环:绿灯亮

1分钟,黄灯闪烁10秒,红灯亮1分钟。在此基础上再加两个数码管,对倒计

时的数显示。

二、验证方案:

1.设计思路概述:

总体上分为三个大模块,即:顶层模块、控制模块、译码模块(包括显示模块)。

他们各自的作用分别如下:

顶层模块:此模块只做例化,即对底层的控制模块和译码模块进行例化,而不

做逻辑设计。

控制模块:此模块是本程序的主体,主要是控制各个灯颜色的转换,以及倒计

时时间输出。

译码模块:此模块主要有两个作用,控制黄灯闪烁以及对倒计时时间进行译码

输出。

2.总体设计框图及详细说明

程序总体设计框图如图:

下面将对所做的系统框图进行详尽说明:

首先,输入的50MHz的系统时钟和全局控制端reset,输出为个位数字的七段译

码,十位数字七段译码以及各个灯最后状态。然后由于系统时钟频率很大,第

一要进行分频,使其成为1Hz的时钟信号,第二利用分频后的时钟信号对电路进

行控制,开始先对状态跳转进行控制,用case语句控制三灯亮与灭,紧跟着进

行倒计时的过程,第三输出个位和十位上的数即可,要显示倒计时是很容易实现

的,直接用两个七段译码即可。七段数码管显示字段的示意图:

最后要控制黄灯的闪烁,还是要先产生分频时钟,作为控制端,控制模块各灯亮

与灭作为输入,即可产生黄灯闪烁的效果。

3.时序说明:主要的时序是在三个灯不同状态之间跳转,这也是本程序的关键,

他们之间的转换关系如下图所示。

顶层模块时序说明:加上时钟信号之后,首先用reset清零,然后控制模块会分

频产生分频时钟,根据分频时钟的高与低,会控制各个状态之间的跳转,译码模

块会同步通过数码管来显示倒计时数,并且会根据译码模块黄灯闪亮控制端来输

出各灯的具体状态。

控制模块框图:

时序说明:首先还是加上系统时钟之后,用reset清零,则计数器清零、所有灯

都不亮。但reset为1之后模块开始工作,首先是计数器开始计数,随之分频时

钟会根据计数器的变化而周期变化,绿灯会先亮60秒,之后黄灯也会亮(闪烁

在译码模块实现)10秒,然后就是红灯亮60秒,以后就是循环以上步骤的过程,

同时在循环过程中,倒计数的数会同步输出,各灯亮与灭状态也会同步输出。

译码模块框图:

此模块接受(系统时钟)sysclk_50MHz和(全局复位)reset的控制,均为上升

沿触发,当reset为高电平时,电路复位,重新开始工作。当reset为低电平时,

电路正常工作。

时钟上升沿触发,对[3:0]din_1s(显示器个位数据)进行译码,输出到

[6:0]led_data_1s(显示器个位数据的译码),;对[3:0]din_10s(显示器十位数

据)进行译码,输出到[6:0]led_data_10s(显示器十位数据的译码)。这两个

译码输出端口最终连接到硬件上去,实现7段LED数码管的显示。

时钟上升沿触发,对哪个灯亮进行译码输出,light_sel[2]将高电平传入到colour[2]

中,红灯开始亮,light_sel[0]将高电平传入到colour[0]中,绿灯开始亮。最高位

和最低位(分别控制绿灯和红灯)直接输出,中间位(控制黄灯)要再加上一个

时钟信号,使其闪烁。

四、设计代码:

moduletraffic_light(

sysclk_50MHz,//全局时钟,50MHz

reset,//全局时钟控制端

color,//控制绿黄红三灯亮或者闪烁

led_ctrl_1s,//个位七段译码

led_ctrl_10s,//十位七段译码

);

inputsysclk_50MHz;

inputreset;

output[2:0]color;

output[6:0]led_ctrl_1s;

output[6:0]led_ctrl_10s;

文档评论(0)

131****7890 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档