ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:58.70KB ,
资源ID:6580648      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6580648.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA的智能交通灯控制器.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于FPGA的智能交通灯控制器.docx

1、基于FPGA的智能交通灯控制器数字逻辑课程设计报告题目:基于FPGA的智能交通灯控制器课程名称: 数字逻辑课程设计专业班级: 学 号: 姓 名: 报告日期: 计算机科学与技术学院1.实验目的通过 Verilog 的编程,深入了解并掌握可编程芯片的使用技术,完成规定的设计 任务,加强对数字逻辑 课程所学知识的理解, 培养学生创造性思维能力和独 立解决实际问题的能力。2.实验内容用 Verilog 代码 实现智能交通灯信号控制器设计,具体内容及要求如下:( 1) 在主干道与次干道公路十字交叉路口, 为确保人员、 车辆安全、 迅速地通 过,在交叉路口的每个入口处设置了红、绿、黄三色信号灯。红灯禁止通

2、行;绿 灯允许通行;黄灯亮则给行驶中的车辆有时间行驶到禁行线之外。(2) 主干道和次干道公路十字交叉路口都安装了车辆检测传感器( C),要求如 下:(A) 在每日的早、晚高峰时段,双边 “ CN”主干道通行时间是次干道 通行时间的 2 倍;(B) 全天主、次干道有车一方有优先通行权;(3) 主干道公路路口安装有人员通过请求按钮( PQ), 旦有请求信息,控制 器应给与放行。(4) Online控制信号由交通控制中心发出,(Online=1) 一旦它有效,则主干道 放行,十字交叉路口控制器 “失效 ”, Online=0 十字交叉路口控制器恢复控制权。(6)在每次由绿灯亮变成红灯亮的转换过程中间

3、, 要亮5s时间的黄灯作为过渡。( 7)用“开关 ”代替传感器 作为人员通过请求和车辆是否到来的信号。 用红、绿、 黄三种颜色的发光二极管作交通灯。( 8)要求显示时间,倒计时。3.实验环境PC个人计算机、ISE14.2软件、Adept软件、开发板Basys2、USB下载线4.实验设计方案4.1输入输出与引脚分配说明4.1.1输入信号:PQ,人员请求信号一一接板子“ E2”开关ONLINE,控制中心接管信号接“ N3”SET,控制器开关一一接“ P11”RST,复位开关一一接“ L3”RUSH,高峰判断开关接“ F3”CM,主道车辆传感器一一接“ G3”CC,支道车辆传感器一一接“ B4”CL

4、K,系统时钟一一接“ B8”4.1.2输出信号:2:0 ML, ML02 主道绿、黄、红灯分别接“ G1、P4、N4”2:0 CL , CL01 支道绿、黄、红灯一一分别接“ P7、M11、M5”6:0 a_to_g,七段数码管接口 a_to_g06分别接 “M12、L13、P12、N11、N14、H12、L14 ”3:0 an,四选一控制接口 an04分别接“ F12、J12、M13、K144.2模块图4.2.1模块层级图顶层模块422模块1 时钟生成模块423模块2.控制模块【1】输入信号in put wire clkls,近似1s的时钟信号in put wire PQ,人员请求信号in

5、put wire ONLINE,控制中心请求信号in put wire SET,控制器开关信号in put wire RST,复位信号in put wire RUSH,高峰信号in put wire CM,主道车辆检测信号in put wire CC,支道车辆检测信号【2】输出信号output reg 2:0 ML,主道信号灯接口output reg 2:0 CL,支道信号灯接口output 7:0 ACOUNT,存放主道两个时间数字的 8421码output 7:0 BCOUNT,存放支道两个时间数字的 8421码(ACOUNT、BCOUNT整合到顶层文件 b15:0中,方便调用七段显示模块

6、)3】 模块内部流程图424模块3.七段显示模块【1】显示原理使用同步扫描电路,对4位数码管的控制端口进行扫描,每一个时刻只有一 个数码管亮,只要设置足够快的频率扫描,由于眼睛的视觉停留效应,就会使得 显示结果达到4位同时亮的效果。【2】输入信号in put wire 15:0 x,存放了主、支道时间数字的 4*4位8421码in put wire RST,复位信号in put wire CLK,扫描时钟信号(传入的是 clk_scar)【3】输出信号output reg6:0 a_to_g,接七段数码管引脚output reg3:0 a n, 接选择显示引脚【4】流程图5.实验步骤与观察记录

7、找到相关资料, 确认大致结构为自顶向下式设计, 开始编写 verilog 代码。语 法错误检查无错误之后进行引脚分配, 然后下载到板子上进行测试。 开始结果不 符合预期,就回到 verilog 代码进行修改调试,再重复上面步骤,直到实现某个 模块功能。然后逐步增加功能,调试、修改、测试,渐渐趋于完整。6.实验过程分析、处理和讨论6.1 时钟的生成由于系统时钟周期过短,不利于实际红绿灯的控制,所以必须生成另外的时 钟。采用系统时钟驱动某个寄存器变量自增,然后取该变量某一位的变化作为 新的时钟。而新的时钟又分为“红绿灯控制时钟(clkl)”和“扫描时钟(clk_scan, 用于七段数码管显示) ”

8、。6.2 绿黄红灯循环亮和 RUSH (高峰)的实现方法经借鉴,采用的方法是: 先把主道和支道的红、黄、绿灯亮的“秒数”分别存在 6 个寄存器变量中, 以方便后面的调用,即预置秒数。加上判断 RUSH 请求信号分别预置秒数。按 钮红、黄、绿灯点亮与否各用1个bit位控制。循环亮的方法就是用一个 case语 句和有关判断来实现。6.3控制器开关按钮(SET)、复位按钮(RST)的设定用一个变量en的值对应以上两开关打开与否,然后用 case语句处理不同按 钮工作的情况。6.4人员请求(PQ)、控制中心请求(ONLINE )、主(支)道优先通行的简 单实现思路这些功能的实现开始也是用变量 en 的

9、值控制,这样的话一旦出现 PQ 或 ONLINE 请求灯会突变,不符合实际要求。所以改放在“主干道(支道)控制系 统”这一 always过程中,用if语句进行判断。7.实验方案的改进意见在 PQ 请求和 ONLINE 请求的理解上,开始出现了偏差,所以在后面修改起 来有点不顺,思路显得略微混乱。而且最后发现有个bug,就是当PQ和ONLINE 同时按下又复位后不会按正常情况倒计时。 方案自顶向下的设计使得模块之间的 功能清晰明了, 但是第二个主模块中还容纳了各种请求判断, 它们中的有些放到 另外模块中也许更好。8.心得体会最主要的是对 verilog 语言的理解的深入。 为了做实验不得不查阅有关的教 程。在这个过程中,起码知道了什么是“阻塞赋值”个“非阻塞赋值”和它们的 区别,以及case语句的运用,能使功能很方便地实现,代码也易读。verilog语言是硬件设计语言,所以不像 C语言,对算法精妙性探索要求更 高。 Verilog 语言设计中,更主要的是逻辑上的合理性和连贯性,以及变量和硬 件之间的联系,有时候小小地修改一个变量的属性可能就让 warning全部消失了。 不知道如此表达是否合适,这是我的理解。交通灯贴近生活,特别是在这个学车潮席卷的时代,所以设计交通灯控制 系统感到很亲切。估计以后看到马路上的交通灯就会心潮澎湃。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1