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