EDA交通灯课程设计(带有测试平台testbench)精讲

上传人:jiups****uk12 文档编号:90719135 上传时间:2019-06-15 格式:DOC 页数:22 大小:1.71MB
返回 下载 相关 举报
EDA交通灯课程设计(带有测试平台testbench)精讲_第1页
第1页 / 共22页
EDA交通灯课程设计(带有测试平台testbench)精讲_第2页
第2页 / 共22页
EDA交通灯课程设计(带有测试平台testbench)精讲_第3页
第3页 / 共22页
EDA交通灯课程设计(带有测试平台testbench)精讲_第4页
第4页 / 共22页
EDA交通灯课程设计(带有测试平台testbench)精讲_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《EDA交通灯课程设计(带有测试平台testbench)精讲》由会员分享,可在线阅读,更多相关《EDA交通灯课程设计(带有测试平台testbench)精讲(22页珍藏版)》请在金锄头文库上搜索。

1、 EDA技术课程设计十字路口交通灯控制器设计学 院电气与信息工程专业电子信息工程班级0934111课程名称EDA技术学号0934111*姓名*俊豪指导教师*成绩评定一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。二、评分评分项目设计报告评分答辩评分平时表现评分合 计 (100分)任务完成情 况(20分)课程设计报告质量(40分)表达情况(10分)回答问题情 况(10分)工作态度与纪律(10分)独立工作能力(10分)得分课程设计成绩评定班级 0934111 姓名 学号 0934111成绩: 分(折合等级 )指导教师签字 年 月 日、目录一、设计题目1二、设计任务和要求1三

2、、EDA设计23.1、明确系统的功能,并进行逻辑抽象23.2、模块功能说明33.3、波形仿真及分析33.3.1、代码33.3.2、各模块rtl电路及功能仿真和时序仿真4四、硬件测试7五、实验困难问题及解决措施7参考文献9附录10前 言伴随着社会的发展以及人类生活水平的提高, EDA技术在电子信息、通信、自动、控制及计算机应用等领域的重要性日益突出。随着技术市场与人才市场对DEA需求的不断增加,交通的问题日益突出,单单依靠人力来指挥交通已经不可行了,所以设计交通灯来完成这个需求就显的越加迫切了。为了确保十字路口的行人和车辆顺利、畅通地通过,往往采用电子控制的交通信号来进行指挥。以下就是运用数字电

3、子设计出的交通灯:其中红灯亮,表示该条路禁止通行;黄灯亮表示停车;绿灯亮表示允许通行。一、设计题目十字路口交通灯控制器设计。二、设计任务和要求用EDA技术设计一个十字路口的交通信号灯控制器,控制A、B两条交叉道路上的车辆通行,具体要求如下:设计一个十字路口交通信号管理控制器。对于每个路口,可实现直行、停止、左转指示,并显示当前状态剩余时间1. 每个方向有直行红灯、直行绿灯、停行黄灯和左转绿灯共4个LED指示灯组成;2. 每个方向用两位数码管显示当前状态剩余时间;3. 系统复位后进入东西直行,南北禁行状态;4. 直行状态最后3秒内,绿灯闪烁状态;三、EDA设计由于本设计实验的功能较多,所以就采用

4、模块化设计。整个程序设计基于8种状态,如下表所示:交通灯状态转换表状态SS1S2S3S4S5S6S7S0A方向左拐a1黄灯ay绿灯ag黄灯ay红灯ar红灯ar红灯ar红灯ar亮灯时间10s4s20s4s33B方向红灯br红灯br红灯br红灯br左拐b1黄灯by绿灯bg黄灯by亮灯时间38s10s4s15s4s注释:系统复位后进入A方向直行绿灯,B方向直行红灯的状态即S3。A方向B方向监督图1 A、B方向示意图顶层模块控制模块分频模块计数模块显示模块译码模块 图2 整体模块示意图3.1、明确系统的功能,并进行逻辑抽象如图1本方案可实现在确定时刻,倒计数数字显示能够及时变化,红黄绿灯能准确变化,考

5、虑到实际应用,加入人工监督功能,通过改变频率来控制交通灯亮灭的时间的长短。本设计采用模块化设计,图2为本设计十字路口交通等系统的层次结构框图。3.2、模块功能说明 1.主控制模块(kongzhi):控制系统输入输出之间联系。 2.显示模块(xianshi):显示倒计时时间和工作状。其输出用来驱动4位共阴数码管,并显示倒计时时间(动态扫描)。 3.分频模块(fenpin):本系统动态扫描需要1KHZ的脉冲而系统时钟需要1HZ的脉冲,分频器主要为系统提供所需要的时钟脉冲。该模块将1KHZ的脉冲信号进行分频,产生周期为1hz的方波,作为系统时钟信号的倒计时闪烁信号。 4.译码模块(yima):根据控

6、制信号,驱动交通灯即LED的显示。 5.计数模块(jishu):用来设定A方向和B方向计时器的初值,并为显示模块提供倒计时时间。 6.顶层模块jiaotongdeng,连接各模块设计,使之成为一个有机体。前5个模块分别进行仿真测试,成功后把所有.vhdl文件包含在工程jiaotongdeng,实现模块化设计。3.3、波形仿真及分析3.3.1、代码见附录一。3.3.2、各模块rtl电路及功能仿真和时序仿真各模块分别建立工程文件,并进行功能仿真、时序仿真,前六个模块成功编译,得到正确仿真结果后,建立顶层模块。模块一:控制模块(kongzhi) 图3 控制模块(kongzhi)rtl图 图4 控制模

7、块(kongzhi)仿真图模块二:计时模块(jishi)图5 计时模块(jishi)rtl图 图6 计时模块(jishi)仿真图模块三:显示模块(xianshi)图7 显示模块(xianshi)rtl图图8 显示模块(xianshi)仿真图模块四:译码模块(yima)图9 译码模块(yima)rtl图图10 译码模块(yima)仿真图模块五:分频模块(fenpin)图11 分频模块(fenpin)rtl图图12 分频模块(fenpin)仿真图模块六:顶层模块图13 本设计整体rtl图四、硬件测试编程下载和硬件测试的步骤如下:1、 打开下载窗口。选择菜单“Tool“项的”programmer“,

8、便可打开下载窗口。2、 设置下载电缆。将ByteBlaster电缆的一端与微机的并行口相连,另一端10针插头与装有目标器件的PCB板上的插座相连。并在”Hardware Setup”中设置下载电缆。3、设置JTAG链。Altera器件基本都支持JTAG在系统编程方式,这种方式简单易行,不需要专门的编程器。4、选用模式NO.5,分配引脚,并编译后,把生成*.sof文件下载到基于Cyclone型GW48系列FPGA实验箱开发板上,成功查看结果,CLK时钟频率用1Hz,可通过实验箱上“键7”控制Reset全局复位。五、实验困难问题及解决措施在实验的过程中,编写主程序的时候,也遇到调试不成功的问题,主

9、要问题如下:在编写xianshi模块时,最后给输出信号赋值时,使用了进程语句,但是由于敏感列表不全,导致在仿真时其输出信号的值产生错误。解决措施就是通过逐个查看内部信号,由于敏感列表不全,致使有些时刻,最后赋值的进程语句没有启动,从而造成输出结果不全。在实现绿灯剩余时间小于三秒时开始闪烁功能时,遇到问题。具体表现在yima模块中。开始为了在绿灯状态,使绿灯在高、地电平间变换,所以就尝试使用时钟信号clk的上升沿和下降沿,其中上升沿时,绿灯高电平即亮,下降沿时绿灯熄灭。虽然这种方案在modelsim中仿真成功,但是在quartus进行综合出现错误,该综合软件综合不出此寄存器。经过多次试验,使用了

10、clk高低电平触发,不再使用其上升下降沿。在整个程序中有时在使用IF语句时,会因为考虑不完整造成实验结果出错。因为在IF语句中如果过没有ELSE语句,那么输出将默认保持前一个状态,这样很容易产生错误。总之经过查阅各种资料,成功的把程序调试了出来。在查阅试验箱说明书的情况下,完成了引脚的选定,并把程序下载到了试验箱里面,完成了实物的演示。参考文献1邹彦编.EDA技术与数字系统设计.北京:电子工业出版社.2007.2潘松,黄继业编.EDA技术与VHDL(第二版).北京:清华大学出版社.2007.3王锁萍编.电子设计自动化教程.成都:电子科技大学出版社.2000. 4徐志军,徐光辉编.CPLD/FP

11、GA的开发与应用.北京:电子工业出版社.2002 .5杨旭,刘盾等编.EDA技术基础与实验教程.北京:清华大学出版社.2010.七、附录附录一:本系统采用用硬件描述语言VHDL描述。分为五个模块,分别为控制模块、计时模块、显示模块、译码模块和分频模块,下面针对每个模块给出相应的程序:模块一:/*控制部分*/*定义输入输出端口*/library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity kongzhi is -实体部分; port ( clk,clr : in std_logic; at,bt

12、: in std_logic_vector(7 downto 0); s : out std_logic_vector(2 downto 0) );end kongzhi;architecture rtl of kongzhi is -结构体部分;signal q :std_logic_vector(2 downto 0);begin- main logicprocess (clk,clr,at,bt)beginif clr=1 then q=011; -系统复位后,系统的状态是A干道绿灯; B干道红灯; elsif (clkevent and clk =1) then if (at=x01) or (bt=x01) then -倒计时结束时,状态发生改变;q=q+1; else q=q; end if; end if;end process;s = q;end rtl;模块二:/*计时部分*/*为A,B方向设置初值 */library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishi is -实体部分 port ( clk, clr

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号