《eda课程设计交通灯.doc》由会员分享,可在线阅读,更多相关《eda课程设计交通灯.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、EDA课程设计报告交通控制器姓 名: 小组成员: 专 业: 电子信息工程 指导老师: 龙 翔 设计日期: 年 月 日 一、设计功能:实现高速公路与乡间小路的交叉路口红绿灯的控制二、具体功能要求: 1、只有在小路上发现汽车时,高速公路上的交通灯才可能变成红灯。 2、当汽车行驶在小路上时,小路的交通灯保持为绿灯,但不能超过给定的延迟时间。 (注:这段时间定义为20秒时间) 3、高速公路灯转为绿灯后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定时间内保持高速公路绿灯。 (注:这段时间定义为60秒时间)4、原理框图如下:5、交通信号灯的4种状态如下表:ABCD高速交通灯绿(60秒)黄(5秒)
2、红(20秒)红(5秒)小道交通灯红红绿黄三、参考设计方案:状态发生器(两位二进制计数器)定时时间到检测电路预置数产生电路计时器 时间显示数据输出红黄绿灯输出控制电路(RYG) 红黄绿灯信号输出1秒时钟脉冲信号发生器 图2 交通信号灯控制器的原理框图采用VHDL语言输入的方式实现交通信号灯控制器秒脉冲信号发生器(进程P1和P2)状态寄存器(进程P6)计数器(进程P3、P4和P5)CLK 时间显示数据输出 次态发生器信号灯输出信号(进程P7) 信号灯输出 图3 交通信号灯控制器程序原理框图该程序由7个进程组成,进程P1和P2将CLK信号分频后产生1秒信号,进程P3、P4、P5构成两个带有预置数功能
3、的十进制计数器,其中P4产生允许十位计数器计数的控制信号。进程P6实现状态转换和产生状态转换的控制信号,进程P7产生次态信号和信号灯输出信号,以及每一个状态的时间值。计数器驱动脉冲如图所示:四、编写相应源程序:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED. ALL; ENTITY CONTRALZ IS PORT(CLK:IN STD_LOGIC; RA,GA,YA:OUT STD_LOGIC; TIMEAH,TIMEAL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END C
4、ONTRALZ; ARCHITECTURE BHV OF CONTRALZ IS TYPE RG IS (GREEN,RED,YELLOW2); BEGIN PROCESS(CLK) VARIABLE A:STD_LOGIC; VARIABLE TH,TL:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE STATE:RG; BEGIN IF CLKEVENT AND CLK=1 THEN CASE STATE IS WHEN GREEN=IF A=0 THEN TH:=0101; TL:=1001; A:=1; GA=1; RA=0; YAIF A=0 THEN
5、TH:=0001; TL:=1001; A:=1; RA=1; YA=0; GA=0; ELSE IF NOT(TH=0000AND TL=0001) THEN IF TL=0000 THEN TL:=1001; TH:=TH-1; ELSE TL:=TL-1; END IF; ELSE TH:=0000; TL:=0000; A:=0; RA=0; GAIF A=0 THEN TH:=0000; TL:=0101; A:=1; YA=1; GA=0; RA=0; ELSE IF NOT(TH=0000AND TL=0001) THEN IF TL=0000 THEN TL:=0101; TH
6、:=TH-1; ELSE TL:=TL-1; END IF; ELSE TH:=0000; TL:=0000; GA=0; RA=0; YA=0; A:=0; STATE:=RED; END IF; END IF; END CASE; END IF; TIMEAH=TH; TIMEALIF A=0 THEN TH:=0000; TL:=0100; A:=1; YB=1; GB=0; RB=0; CHUIF A=0THEN TH:=0001; TL:=1001; A:=1; GB=1; RB=0; YB=0; CHUIF A=0 THEN TH:=0101; TL:=0100; A:=1; RB
7、=1; YB=0; CHUIF A=0THEN TH:=0000; TL:=0100; A:=1; YB=1; GB=0; RB=0; CHU=1; ELSE IF NOT(TH=0000AND TL=0001) THEN IF TL=0000 THEN TL:=1001; TH:=TH-1; ELSE TL:=TL-1; END IF; ELSE TH:=0000; TL:=0000; A:=0; CHU=0; STATE:=RED; END IF; END IF; END CASE; END IF; TIMEAH=TH; TIMEAL=TL; END PROCESS; END BHV; 五
8、、对源程序进行编译及仿真1、对程序进行编译,结果如下图:2、用waveform对程序进行波形仿真,结果如下图:六、设计思路 在听完课程设计指导课前,我们对交通灯的程序设计思路基本上可以称得上是一片茫然,在听完课后虽然有个大致的思路,但还是不知道具体要怎么实施,于是我们开始去图书馆寻找参考书。在参考了书上一些已有的交通灯实验设计程序后,我们发现大部分的程序是用模块化设计,就是多进程的状态机设计,程序显得复杂繁琐。于是我们借着参考书理清思路,上网继续搜索资料、程序,选择了用单进程状态机表示交通灯的四个状态,选择用最简单的赋值法进行时间的赋值。七、设计及运行中遇到的问题及解决方法程序编译中,由于一些
9、小细节没有认真,漏掉的结束代码、错误的代码输入以及错误的分号添加,导致程序错误很多,经过同组同学的检查,再经过仔细观察分析,用Max+plus运行检查,一步步得到了正确的结果,程序得以正常运行。八、实验心得体会 通过这次课程设计,我们进一步加深了对电子设计自动化的了解。并进一步熟练了对maxplus2软件的操作。在编写程序的过程中,遇到了很多问题,使我们发现自己以前学习上存在的不足。通过与同学探讨,终于把问题都解决了,并加深了对交通灯原理和设计思路的了解。同时也掌握了做课程设计的一般流程,为以后的设计积累了一定的经验。做课程设计时,先查阅相关知识,把原理吃透,确定一个大的设计方向,在按照这个方
10、向分模块的把要实现的功能用流程图的形式展示。最后参照每个模块把输入和输出引脚设定,运用我们们所学的VHDL语言进行编程。总之,通过这次的设计,进一步了解了EDA技术,收获很大,对软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。九、参考文献EDA技术及应用实践 谭会生主编 湖南大学出版社数字电路实验与EDA技术 郭永贞主编 东南大学出版社EDA技术及应用 吴延海主编 西安电子科技大学出版社数字电路逻辑设计 欧阳星明主编 人民邮电出版社通过课程设计能提高学生对所学知识的综合应用能力,能全面检查并掌握所学内容,在这学期的课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,
11、在此过程中,我们通过查找资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,我们学会了很多学习的方法。通过本学期的这次的课程设计与几次实验,我学会了语言的一些基本用法,应用了原来不会或者不熟练的句型,如process进程,也学会了一些基本功能的实现方法,如分频,状态控制等。虽然这次实验遇到的问题不少,但是在老师以及同学的帮助下,我都顺利地解决了,并为将来的实践积累了宝贵的经验和教训。通过经常和老师、同学交流,以便及时发现自己在实验中的纰漏和不足,促进进步。EDA设计中程序调试最为重要,我在编完各模块程序之后,编译查错最初有很多错误,有输入错误,语法错误,通过反复的修改最终通过了编译。必须注意工程名和实体名的一致,在仿真无误的情况下把程序下载到是芯片中,进行硬件的调试。逻辑正确和仿真真确并不代表着实际实验的正确,通常情况下,要适当地调整逻辑以适应硬件。要特别注意仿真时出现的毛刺和偏差,到底是由于仿真设置不合理还是仿真结果确实有问题。这次课程设计虽然结束了,也留下了很多遗憾,因为由于时间的紧缺和许多课业的繁忙,并没有做到最好,但是,最起码我们没有放弃,它是我们的骄傲!相信以后我们会以更加积极地态度对待我们的学习、对待我们的生活。实验的顺利完成,与老师的热心指导是分不开的,最后十分感谢胡辉老师的认真负责的工作,让我受益匪浅!