EDA大作业题 目: 交通灯 代码详见http://blog.csdn.net/a350203223/article/details/36061631
一、 设计要求
设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,绿灯,黄灯,红灯的持续时间分别是40、5和45秒。当东西或南北两路中任一道上出现特殊情况,例如有消防车,警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆停止通行,红灯全亮,时钟停止计时,且其数字在闪烁。当特殊运行状态结束后,管理系统恢复原来的状态,继续正常运行。
二、 题目分析与整体构思
(1)该交通灯控制器应具备的功能
设东西和南北方向的车流量大致相同,因此红、黄、绿灯的时长也相同,定为红灯45sec,黄灯5sec,绿灯40sec,同时用数码管指示当前状态(红、黄、绿)剩余时间。另外,设计一个紧急状态,当紧急状态出现时,两个方向都禁止通行,指示红灯。紧急状态解除后,重新计数并指示时间。
(2) 实现方案
一 从题目中计数值与交通灯的亮灭的关系如图(1)所示
三、实验结果和分析
3.1 实验使用的仪器设备
电脑一台,EDA实验仪等。
3.2 测试结果分析
1.系统电路图画好后,先进性波形仿真,波形仿真图如下:
2.EDA实验仪采用的是ACEX1K系列中的EP1K30TC44-3 芯片,所以在选择芯片时,应选对芯片。
3.引脚设定(Assign—Pin/Location/Chip)
4.保存,再次编译,注意是否有警告和错误。
5.无误后,连接试验箱与电脑。
6.打开实验板电源,下载编程,执行Max+PlusⅡ—Programmer—Configure(注意下载口的选择――ByteBlaster 口,下载过程中要等到数码管显示变为0且稳定后再进行操作),验证结果是否正确。
四﹑硬件电路设计
(1)下图为交通灯控制器的顶层文件连接图
(2)分频器
分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路。该分频器实现的是50M分频,将50M赫兹的时钟信号分频成一赫兹的时钟信号,且为方波。
(3)控制器设计
控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的分位译码电路。此外,当检测到特殊情况(HOLD=‘0’)发生时,无条件点亮红灯的二极管。本控制器可以有两种设计方法,一种是利用时钟烟的下降沿读取前级计数器的计数值,然后作出反应;另一种则是将本模块设计成纯组合逻辑电路,不需要时钟驱动。这两种方法各有所长,必须根据所用器件的特性进行选择:比如有些FPGA有丰富的寄存器资源,而且可用与组合逻辑的资源则相对较少,那么使用第一种方法会比较节省资源;而有些CPLD的组合逻辑资源则比较多,用第二种方法可能更好。
这里需要的计数器的计数范围为0-89。计到89后,下一个时钟沿回复到0,开始下一轮计数。此外,当检测到特殊情况(HOLD=‘0’)发生时,计数器暂停计数,而系统复位信号RESET则使计数器异步清零。
(4)数码转换器
因为控制器输出的到计时数值可能是1位或者2位十进制数,所以可以用八位BCD码来显示,由于二进制码与八位BCD码的高低位之间需要转换,可对输入的二进制数的转换成的BCD码的高四位进行直接赋值,低四位则根据差值来加或减。
(5)闪烁器设计
根据HOLD的值来进行操作,当HOLD=‘0’时,全部的灯转为红灯,闪烁的时间显示为FFFF与暂停时的时间交替显示,这个可以由当前data和八位clk的与相或。
五﹑设计创新
1﹑ 模块化编程,模块化接线,再编译总原理图,思路比较清楚。
2﹑ 可以比较容易的改变红绿灯的时间。
3﹑有的模块可以供其它任务通用。
结束语
本次课程设计是按照先找系统原型,确定实验要求,然后综合出系统框图,按照系统框图设计各个模块,最后综合起来进行的。这也是做综合设计的基本方法。本次试验的彩灯控制器主要程序是设计其变化花型,比较灵活,可任意添加,非常实用。
在实验过程中,我也遇到了一些问题。但在自己的思考和同学的帮助下得到了圆满的解决。通过这次做EDA课程设计我发现自己的看法有点太片面了。课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。最后终于做完了,有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。
整个课程设计过程我都认真地完成了,对此,我总结了以下几点:
第一,通过本次课程设计,我熟悉和掌握了课程设计的基本方法和步骤,提高了综合实验能力。
第二,本次课程设计加深了我对EDA技术的进一步深入理解。熟悉了VHDL程序编写和原理图输入法的优缺点,为我以后更好地运用MAX+Plus II奠定了良好的基础。
第三,通过这次课程设计,使我受益颇多。了解到课程实习设计是开端,连接是关键,测试是必须。既巩固了课堂上学到的理论知识,又掌握了常用集成电路芯片的使用。在此基础上学习了数字系统设计的基本思想和方法,学会了科学地分析实际问题,通过查资料、分析资料及请教老师和同学等多种途径,独立解决问题。同时,也培养了我认真严谨的态度。
EDA设计我感觉程序调试最重要,试验软件、硬件熟悉其次。我在编完各模块程序之后,编译查错最初有三十几个错误,有输入错误、语法错误。一遍一遍的变异查错,直到没有错误。必须注意工程名和实体名一致,不然一般会出错。在没有错误之后可以进行波型仿真。若与理想的不同,再查看程序,有无原理上的编辑错误或没有查出的输入错误。都通过可以进行管脚配对,把程序烧入芯片,在实物机上看结果,从显示中得出还需改正的地方,再去改程序。必须注意没改一次都要编译,重新烧入。
本文详细介绍了使用EDA技术设计一个十字路口交通灯控制器的过程,包括设计要求、方案实现、实验结果分析和硬件电路设计。设计考虑了正常状态下的红绿灯周期和紧急情况下的特殊运行状态。通过实验验证了设计的正确性,并强调了模块化编程和灵活调整时间的优点。

5273

被折叠的 条评论
为什么被折叠?



