欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于FPGA的交通灯控制系统的设计毕业论文.doc

    • 资源ID:3938441       资源大小:1.57MB        全文页数:35页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于FPGA的交通灯控制系统的设计毕业论文.doc

    基于FPGA的交通灯控制系统的设计摘 要传统的交通灯控制系统主要由单片机或PLC构成,这种基于小规模集成电路的交通灯控制系统,电路元件多、接线复杂、故障率高、可靠性低。本设计采用FPGA器件来设计一个实用的交通灯控制系统。该系统的可靠性、准确性较高,能够在确定的时间内使红黄绿路灯正确的变化,且倒计时显示能正确的显示时间。该交通灯控制系统采用Verilog HDL语言编程,为了简化设计,采用模块化编程的思想,并用MAX + plus仿真软件进行编译仿真,将程序下载到FPGA器件进行测试验证。基于FPGA的硬件系统运行正确,能够实现交通灯的控制要求。该系统具有体积小、功耗低、价格便宜、安全可靠,维护和升级方便的优点,具有较好的应用前景。在该交通灯控制系统中,采用了ALTERA公司推出的MAX7000系列的产品EPM7032LC44-6作为这个系统的可编程逻辑器件。同时还用了4个LED数码管,6个发光二极管,一个固定开关,一个点动开关等。交通灯系统中,能够保证在确定的时间,倒计数数字显示能够及时变化,红黄绿灯能准确的反应。关键词: 交通灯控制系统 FPGA Verilog HDL MAX + plusThe traffic light control system design based on FPGA ABSTRACT The traditional traffic light control system mainly by the PLC or a microcontroller, such small-scale integrated circuits based on the traffic light control system, circuit components, wiring complex, high failure rate, low reliability. This design uses FPGA devices to design a practical traffic light control system. The system's reliability, high accuracy, to determine the time Yellow-green to red lights correct change, and the countdown show to display the correct time. The traffic light control system using Verilog HDL language, in order to simplify the design, the idea of modular programming, and with MAX + plus simulation software to build simulation procedures will be downloaded to the FPGA device to test verification. FPGA-based hardware system running correctly, can achieve the traffic lights control requirements. The system is small in size, low power consumption, cheap, safe, reliable, easy to maintain and upgrade the merits of the application has good prospects. At the traffic light control system, using the company introduced the MAX7000 ALTERA series of products EPM7032LC44-6 as the system of programmable logic devices. At the same time also spent four LED digital control, six light-emitting diode, a fixed switch, a switch point, and so on. Traffic signal system, to ensure that the established time, inverted count figures to make timely changes in Yellow green accurate response. Key words: The traffic light control system FPGA Verilog HDL MAX + plus目 录一 概述11.1课题的来源、意义1 1.2课题的研究目标、内容及方法手段11.2.1课题的研究目标、内容11.2.2课题的研究方法及手段1二 交通灯控制系统的原理介绍22.1交通灯控制系统基本原理与系统框图22.1.1系统基本原理22.1.2交通灯控制系统框图22.2 交通灯控制系统的软硬件介绍32.2.1 FPGA的简介32.2.2 Verilog HDL介绍42.2.3 MAX+plusII介绍42.2.4 器件的选择4三 交通灯控制系统的程序设计63.1 主控模块63.2 55秒倒计时模块73.3 5秒倒计时模块83.4倒计时时间选择驱动模块93.5倒计时时间选择模块10 3.6 1KHZ时钟信号模块113.7 1HZ技术时钟信号模块123.8倒计时时间数据多路选择模块123.9 动态选择驱动模块143.10显示数据多路选择模块143.11显示数据译码模块153.12顶层电路15四 结论17谢辞18参考文献19附录20一 概述1.1课题的来源、意义 交通灯控制系统是数字电路的经典问题,传统的设计方法基于中、小规模集成电路进行,电路元件多、接线复杂、故障率高、可靠性低。电子设计自动化EDA(Electronic Design Automation)技术的发展,在线可编程逻辑器件(In system Program-Programmable Logic Device简称ISP-PLD)的出现,使实验室中制作专用集成电路成为可能。我们使用现场可编程门阵列/复杂可编程逻辑器件FPGA/CPLD(Field Programmable Gate Array/Complex Programmable Logic Device),用Verilog HDL语言 进行以交通灯控制器的设计,用对应的工具软件(本文用MAX+plus II)对FPGA/CPLD芯片“下载”形成专用集成电路,由于不存在人工接线的问题,所以故障率低、可靠性好。 随着电子技术的不断更新,数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。推动该潮流迅猛向前的引擎就是电子设计自动化EDA(Electronic Design Automation)技术的发展EDA技术就是以计算机为工具,在EDA软件平台上,对用硬件描述语言HDL完成的设计文件自动地逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化逻辑布局布线、逻辑仿真,直至对于特定目标芯片进行适配编译、逻辑映射和编程下载等。1.2课题的研究目标、内容及方法手段1.2.1课题的研究目标、内容该交通灯控制系统采用MAX + plus软件及Verilog HDL语言进行编程,用FPGA器件实现硬件系统。该系统能精确地实现红黄绿灯的规律变化,正确控制路口车辆的通行。1.2.2课题的研究方法及手段 该系统采用Verilog HDL语言进行程序设计,并用MAX + plus仿真软件进行程序的编译和仿真,然后用下载线将程序下载到FPGA器件中。本课题采用自顶向下设计思想进行设计,自顶而下(top to down)的层次化设计方法在现代EDA设计中有着明显的优势,越来越受到设计者的欢迎。对于一个复杂的设计系统,运用层次化设计方法,使设计课题进一步细化,分块设计,条理清晰。另外,在调试时可采用逆向调试方式,即从模块调试向总体调试方向开展调试工作,使设计中出现的问题在模块级就能发现,及时处理,这样就会使一个复杂的设计变得容易调试,缩短了设计时间。层次化设计方法:开始设计时,先设计出一个顶层总框图(一般称之为顶层图),该框图是由若干个具有特定功能的源模块组成。下一步是对这些不同功能的模块进行设计,产生这些模块的原理图文件或Verilog源文件。对于有些功能复杂的模块,全部使用元件库中的元器件设计仍显复杂,因此还可以将该模块继续化分为若干个功能子模块,这样就形成模块套模块的层次化设计方法。这种方法也称之为自顶向下的系统设计方法。 二 交通灯控制系统的原理介绍 2.1交通灯控制系统基本原理与系统框图2.1.1 系统基本原理 交通灯系统中,能够保证在确定的时刻,倒计数数字显示能够及时变化,红黄绿灯能准确变化。系统要求:在绿灯亮了55s后将变化为黄灯再亮5s,然后实现十字路口的纵横路放行与禁行的切换控制。2.1.2 交通灯控制系统框图 根据2.1.1对交通灯系统的功能描述,设计如图2-1所示的交通灯系统电路框图。 图2-1 交通灯系统电路框图图中,两组共4个数码管来显示倒计时时间,用6个发光二极管来代替实际生活中的红黄绿交通信号灯,考虑到实际电路的需要,分别在可编程逻辑器件与数码管以及发光二极管之间放上限流电阻,以避免数码管以及发光二极管由于电流过大而烧坏,当然也不能加太大电阻,以避免数码管以及发光二极管的亮度不够。固定开关SW1实现交通警察人为监督交通秩序和无人自动控制交通秩序之间的切换,默认为高电平,即默认为开关置于高电平端,为自动控制模式,开关置于低电平端时为人为监督控制模式。点动开关SW2用于整个系统的总复位,如系统出现故障时,就需要总复位,当然一般情况下,用可编程逻辑器件实现的交通灯系统,只要系统设计的合理,软件设计的可靠,不会出现故障,除非意外的操作或操作不当。2.2 交通灯控制系统的软硬件介绍2.2.1 FPGA的简介FPGA现场可编程门阵列器件通常由布线资源围绕的可编程单元构成阵列,又由可编程I/O单元围绕阵列构成整个芯片。排成阵列的逻辑单元由布线通道中的可编程连线连接起来实现一定的逻辑功能。一个FPGA可能包含有静态存储单元,它们允许内连的模式在器件被制造以后再被加载或修改。FPGA是由掩膜可编程门阵列和可编程逻辑器件演变而来的,将它们的特性结合在一起,使得FPGA既有门阵列的高逻辑密度和通用性,又有可编程逻辑器件的用户可编程特性。目前,FPGA的逻辑功能块在规模和实现逻辑功能的能力上存在很大差别。有的逻辑功能块规模非常小,仅含有只能实现倒相器的两个晶体管;而有的逻辑功能块则规模比较大,可以实现任何五输入逻辑函数的查找表结构。据此可把FPGA分为两大类,即细粒度和粗粒度。细粒度逻辑块是与半定制门阵列的基本单元相同,它由可以用可编程互连来连接的少数晶体管组成,规模都比较小,主要优点是可用的功能块可以完全被利用;缺点是采用它通常需要大量的连线和可编程开关,实现对速度变慢。由于近年来工艺不断改进,芯片集成度不断提高,加上引入硬件描述语言(HDL)的设计方法,不少厂家开发出了具有更高级程度的细粒度结构的FPGA。例如,XILINX公司的采用Micro Via技术的一次编程反熔丝结构的XC8100系列,它的逻辑功能块规模较小,而粗粒度功能块规模较大并且功能较强。从构成它的可编程逻辑块和可编程互连资源来看,主要有两种逻辑块的构造。其一是查找表类型;其二是多路开关类型,由此形成两种FPGA的结构。第一种是具有可编程内连线的通道型门阵列。它采用分段互连线,利用不同长度的多种金属线经传输管将各种逻辑单元连接起来。布线延时是累加的、可变的,并且与通道有关。第二种是具有类似PLD可编程逻辑块阵列的固定内连布线,采用连续互连线,利用相同长度的金属线实现逻辑块单元之间的互连,布线延时是固定的,并且可预料。目前流行的现场可编程门阵列/复杂可编程逻辑器件FPGA/CPLD(Field Programmable GaArray/Complex Programmable Logic Device)在EDA基础上得到了广泛应用,由于可以通过软件编程对该器件硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一特性极大地改变了传统数字系统的设计方法、设计过程、乃至设计观念。在设计过程中,设计者可根据需要,随时改变器件的内部逻辑功能和管脚的信号方式。而管脚定义的灵活性,能大大减轻电路图设计和电路板设计的工作量和难度,同时,这种基于可编程逻辑器件芯片的设计大大减少了系统芯片的数量,缩小了系统的体积,提高了系统的可靠性。对于FPGA/CPLD器件,常用的硬件描述语言有VHDL和Verilog等。2.2.2 Verilog HDL介绍Verilog HDL是硬件描述语言的一种,用于数字电子系统设计。设计者可用它进行各种级别的逻辑设计,可用它进行数字逻辑系统的仿真验证、时序分析、逻辑综合。它是目前应用最广泛的一种硬件描述语言。Verilog HDL和VHDL都是用于逻辑设计的硬件描述语言,其共同的特点在于:能形式化的抽象表示电路的行为和结构;支持逻辑设计中层次与范围的描述;可借用高级语言的精巧结构来简化电路行为的描述;具有电路仿真与验证机制以保证设计的正确性;支持电路描述由高层到低层的综合转换;硬件描述与实现工艺无关;便于文档管理;易于理解和设计重用。由于Verilog HDL早在1983年就已推出,至今已有20年的应用历史,因而拥有更广泛的设计群体,成熟的资源也远比VHDL丰富。与VHDL相比,Verilog HDL的更大优点为:它是一种非常容易掌握的硬件描述语言,只要有C语言的编程基础,通过20学时的学习,再经过一段时间的实际操作,一般可在2-3个月内掌握这种设计技术。而掌握VHDL设计技术就比较困难。2.2.3 MAX+plusII介绍 MAX+plusII是开发ALTERA公司FPGA产品(包括MAX和FLEX系列)的软件工具。利用MAX+plusII提供的设计环境和设计工具,可以灵活高效的完成各种数字电路设计,非常实用。MAX+plus被誉为业界最易用易学的EDA软件,它支持原理图、VHDL和Verilog语言文本文件,以及波形与EDIF等格式的文件作为设计输入。MAX+plusII具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果。MAX+plusII具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果。在设计一项工程时,首先利用EDA工具软件MAX+plus中的文本编辑器,将其用文本方式(VHDL程序方式)表达出来,再通过MAX+plus转换为实际可用的电路网表,并用此网表对FPGA/CPLD进行布线,最后进行功能仿真和时序仿真,得到所需的设计效果。2.2.4器件的介绍与选择该系统选用了ALTERA公司推出的MAX7000系列的可编程逻辑器件EPM7032LC44-6。MAX7000系列器件采用先进的0.8um CMOS EPROM技术制造。它是高密度、高性能的CMOS EPLD器件。MAX7000中有可编程连线阵列()、I/O控制,并且编程具有保密性,另外还增加了可编程速度/功率控制和电压摆率的控制。系统选用4个数码管来显示倒计时时间,用6个发光二极管来替代实际生活中的红黄绿交通信号灯,考虑到实际电路的需要,分别在可编程逻辑器件与数码管以及发光二极管之间放上限流电阻,以避免数码管及发光二极管由于电流过大而烧坏,当然也不能加太大电阻,以避免数码管及发光二极管的亮度不够,因此,一般选330-1K。用一个固定开关SW1实现交通警察认为监督交通秩序和无人自动控制交通秩序之间的切换。用一个点动开关SW2用于整个系统的总复位。三 交通灯控制系统的程序设计 鉴于模块化的设计方法,首先将系统分为11个小的容易实现的模块来分别设计仿真。分别有以下11个模块: (1) 主控模块CONTROL:控制系统输入与输出之间的联系。 (2) 55秒倒计时模块COUNTER55:倒计时55秒,55秒为绿灯点亮时间。 (3) 5秒倒计时模块COUNTER05:倒计时5秒,5秒为黄灯点亮时间。 (4) 倒计时时间选择驱动模块SCAN:驱动倒计时时间长短选择模块电路。 (5) 倒计时时间选择模块CONTERSELECT:选择不同的倒计时时间。 (6) 1KHZ时钟信号模块FDIV1KHZ:通过分频得到1KHZ的时钟信号。 (7) 1HZ计数时钟信号模块FDIV1HZ:通过分频得到1HZ的时钟信号。 (8) 倒计时时间数据多路选择模块DATAMUX:倒计时时间数据分时送入后级用 于显示。 (9) 动态选择驱动模块DISPSELECT:驱动动态选择数码管进行分时显示。 (10) 显示数据多路选择模块DISPMUX:显示数据的分时选择。 (11) 显示数据译码模块DISPDECODER:4位码译成8位数码管的显示数据。 下边将分别讨论各个模块的具体实现过程,最后讨论由这些模块构成的顶层电路TOP。3.1 主控模块CONTROL 该模块主要完成根据外部输入信号Reset、SW控制输出,用于控制交通灯的信号Red1、Red2、Yellow2、Green1、Green2。这中间包含了必要的内部模块之间的信号EN_in(来自倒计时时间选择驱动模块SCAN)。 该模块的模块框图如图3-1(a)所示: 图3-1(a) 主控模块CONTROL的模块框图 该模块定义输入端口定义如下: RST:总体复位,用于复位整个系统。复位后,系统将恢复到原始状态。 SW1:模式选择,用于选择自动模式和人为监督模式。其中,SW1=1时为自动模 式,系统不需要人为控制,自动按照预先设定的方式来控制交通灯,主要过程为十字马路的一个方向(设定为方向1)绿灯亮时,另一个方向(设定为方向2)红灯亮。计数55秒后,方向1的绿灯熄灭黄灯亮,再计数5秒后,方向1的黄灯熄灭红灯亮,同时方向2的绿灯亮,然后方向2重复方向1的过程,这样就实现了无人自动控制交通灯。SW1=0时为人为监督模式,交通灯将不再工作,交通秩序将完全在交通警察的控制下进行。 EN_in:控制红黄绿灯切换的驱动使能信号。用于自动模式中状态的切换选择。其中EN_in=00时,方向2红灯亮,方向1绿灯亮;EN_in=01时,方向2红灯亮,方向1黄灯亮;EN_in=10时,方向2绿灯亮,方向1红灯亮;EN_in=11时,方向2黄灯亮,方向1红灯亮。 该模块定义输出端口如下: Red1:方向1上的红灯。 Red2:方向2上的红灯。 Yellow1:方向1上的黄灯。 Yellow2:方向2上的黄灯。 Green1:方向1上的绿灯。 Green2:方向2上的绿灯。 在MAX + plus软件中编译和波形仿真后得到的波形如图3-1(b)所示。 图3-1(b) 主控模块的仿真波形 从图3-1(b)可以简单的检查主控模块CONTROL设计的逻辑上的正确性,同时也可以看到一些简单的延时信息。3.2 55秒倒计时模块COUNTER55 该模块主要完成55秒倒计时,控制红灯的点亮时间。实际中在1分钟内还要有绿到黄灯的转换以提醒车辆与行人,所以选择了55秒作为绿灯的点亮时间。该模块的模块框图如图3-2(a)所示: 图3-2(a) 55秒倒计时模块COUNTER55的模块框图该模块定义输入端口如下: C_CLK:计数时钟信号,计数器的全局计数时钟。经过分频后,这个时钟信号频率为1HZ的方波信号,在时钟的上升沿,计数器响应。 RST:计数器复位信号,低电平复位。复位后,计数器恢复原始状态。即为全零状态,这时输出数值为55。默认RST为高电平,工作在计数状态。 C_EN:计数器的使能信号,在时钟信号下,在这个信号为高电平时,计数器才工作与计数状态,否则,计数器工作于保持状态。该模块定义输出端口如下: D_OUT1:计数器的高位输出,经过译码后,就可以作为倒计时时间显示的高位。 D_OUT0:计数器的低位输出,经过译码后,就可以作为倒计时时间显示的低位。 C_OUT:计数器计数到时脉冲输出,当计数器计数到设定时间时,就会产生一个脉冲信号,用于驱动状态的改变。在MAX + plus软件中编译和波形仿真后得到的波形如图3-2(b)所示。 图3-2(b) 55秒倒计时模块COUNTER55仿真波形 从图3-2(b)可以简单的检查55秒倒计时模块COUNTER55设计的逻辑上的正确性,同时也可以看到一些简单的延时信息。3.3 5秒倒计时模块COUNTER05该模块主要完成5秒倒计时,控制黄灯的点亮时间。实际中在1分钟内还要有红到黄灯的转换以提醒车辆与行人,所以选择了55秒作为红灯的点亮时间后,黄灯的点亮时间必定是5秒。该模块的模块框图如图3-3(a)所示: 图3-3(a) 5秒倒计时模块COUNTER05的模块框图 该模块定义输入端口如下: C_CLK:计数时钟信号,计数器的全局计数时钟。经过分频后,这个时钟信号为频率为1HZ的方波信号,在时钟的上升沿,计数器响应。 RST:计数器复位信号,低电平复位。复位后,计数器恢复原始状态。即为全零状态,这时输出数值为05.默认RST为高电平,工作在计数状态。 C_EN:计数器的使能信号,在时钟信号下,在这个信号为高电平时,计数器才工作与计数状态,否则,计数器工作与保持状态。该模块定义输出端口如下: D_OUT1:计数器的高位输出,经过译码后,就可以作为倒计时时间显示的高位,通常情况下为0。 D_OUT0:计数器的低位输出,经过译码后,就可以作为倒计时时间显示的低位。 C_OUT:计数器计数到时脉冲输出,当计数器计数到设定时间时,就会产生一个脉冲信号,用于驱动状态的改变。在MAX + plus软件中编译和波形仿真后得到的波形如图3-3(b)所示。图3-3(b) 5秒倒计时模块COUNTER05的仿真波形3.4 倒计时时间选择驱动模块SCAN该模块主要完成倒计时时间长短选择的功能,输入信号来自两个倒计时模块COUNTER55和COUNTER05,当倒计数完成时产生一个脉冲用于驱动此模块产生00,01,10,11序列来驱动倒计时时间选择模块COUNTERSELECT。该模块的模块框图如图3-4(a)所示: 图3-4(a) 倒计时时间选择驱动模块SCAN的模块框图该模块定义输入端口如下: EN_in1:高位驱动信号,来源与55秒倒计时的信号,当计数器计时完成后,产生这个脉冲来驱动状态的改变。 EN_in0:低位驱动信号,来源与5秒倒计时的信号,当计数器计时完成后,产生这个脉冲来驱动状态的改变。该模块定义输出端口如下: SDATA:状态输出,输出当前状态。由于选择不同的倒计时时间的长短。在MAX + plus软件中编译和波形仿真后得到的波形如图3-3(b)所示。 图3-4(b) 倒计时时间选择驱动模块SCAN的仿真波形3.5 倒计时时间选择模块COUNTERSELECT 该模块主要完成55秒倒计时与5秒倒计时之间的选择功能,在实际中因为存在着红灯到黄灯再转换为绿灯的这样的一个变化过程,而红黄绿灯的点亮时间不相同,一般是绿黄两灯的点亮时间刚好等于红灯,其中,绿灯亮55秒,黄灯亮5秒,红灯亮60秒。该模块的模块框图如图3-5(a)所示: 图3-5(a) 倒计时时间选择模块COUNTERSELECT 的模块框图该模块定义输入端口如下: D_IN:状态变化输入信号,主要是“00,01,10,11”四种状态的变化,与倒计时时间长短的选择信号同步。该模块定义输出端口如下: D_OUT1:时间选择高位输出,用于选择驱动55秒倒计时计时器。分别在状态输入“00,10”这两种状态时,即对应绿灯点亮时间,输出高电平,使能55秒倒计时计数器。 D_OUT0:时间选择低位输出,用于选择驱动5秒倒计时计时器。分别在状态输入“01,11”这两种状态时,即对应黄灯点亮时间,输出高电平,使能5秒倒计时计数器。在MAX + plus软件中编译和波形仿真后得到的波形如图3-5(b)所示。图3-5(b) 倒计时时间选择模块COUNTERSELECT 的仿真波形3.6 1KHZ时钟信号模块FDIV1KHZ 该模块主要完成从开发试验板上10MHZ的全局时钟信号经过分频得到1KHZ的时钟信号,即完成一个10000分频的分频器。分频器的设计是时序设计的比较基础的知识,在实际系统中用得很多,设计过程与计数器的设计很类似。 该模块的模块框图入图3-6(a)所示: 图3-6(a) 1KHZ时钟信号模块FDIV1KHZ的模块框图该模块定义输入端口如下: CLK_IN:时钟输入信号,来源于全局时钟信号10MHZ的外部输入。该模块定义输出端口如下: CLK_OUT:时钟输出信号,经过分频后输出1KHZ的时钟信号,用于数码管的动态显示。在MAX + plus软件中编译和波形仿真后得到的波形如图3-6(b)所示。 图3-6(b) 1KHZ时钟信号模块FDIV1KHZ的仿真波形3.7 1HZ计数时钟信号模块FDIV1HZ该模块主要完成从模块FDIV1KHZ中的1KHZ时钟信号经过分频得到1HZ的计数时钟信号,即完成一个1000分频的分频器。设计过程与模块6的设计过程基本相同。该模块的模块框图如图3-7(a)所示: 图3-7(a)1HZ计数时钟信号模块FDIV1HZ的模块框图 该模块定义输入端口如下: CLK_IN:时钟输入信号,来源于全局时钟信号1KHZ的外部输入。该模块定义输出端口如下: CLK_OUT:时钟输出信号,经过分频后输出1HZ的时钟信号,用于驱动秒级的计时器。在MAX + plus软件中编译和波形仿真后得到的波形如图3-7(b)所示。 图3-7(b) 1HZ计数时钟信号模块FDIV1HZ的仿真波形3.8 倒计时时间数据多路选择模块DATAMUX该模块主要完成两组不同倒计时时间数据的选择输出到后续显示模块。该模块的模块框图如图3-8(a)所示: 图3-8(a) 倒计时时间数据多路选择模块DATAMUX的框图该模块定义输入端口定义: D_IN3:4位BCD码输入信号3,来源于5秒倒计时计时器的高位BCD码输出,取值范围为0-5。 D_IN2:4位BCD码输入信号2,来源于5秒倒计时计时器的低位BCD码输出,取值范围为0-9。 D_IN1:4位BCD码输入信号1,来源于55秒倒计时计时器的高位BCD码输出,取值通常为0。 D_IN0:4位BCD码输入信号0,来源于55秒倒计时计时器的低位BCD码输出,取值范围为0-5。 SEL:状态选择输入信号,用于在不同状态下选择不同的计时器的输出数值作为这个模块的输出。该模块定义输出端口定义: D_OUT1:输出高位BCD码,在SEL的驱动使能下分别选择D_IN1或者D_IN3,当SEL=“00”或“10”时选择D_IN1;当SEL=“01”或“11”时选择D_IN3。 D_OUT0:输出低位BCD码,在SEL的驱动使能下分别选择D_IN0或者D_IN2,当SEL=“00”或“10”时选择D_IN0;当SEL=“01”或“11”时选择D_IN2。在MAX + plus软件中编译和波形仿真后得到的波形如图3-8(b)所示。图3-8(b) 倒计时实际数据多路选择模块DATAMUX的仿真波形3.9 动态显示驱动模块DISPSELECT 该模块主要完成倒计时数码管的动态显示。动态显示即分时显示,但是时间间隔的选择既要保证人眼看起来是同时显示,既不会出现两位数字的断续显示,又要保证不会覆盖显示数字,即不会出现上个数字与下个数字之间的显示过快使得人眼来不及分辨。该模块模块框图如图3-9(a)所示: 图3-9(a) 动态显示驱动模块DISPSELECT的模块框图该模块定义输入端口如下: CLK:动态选择循环时钟信号,此信号为1KHZ的时钟信号。该模块定义输出端口如下: D_OUT:动态选择循环输出信号,在1KHZ时钟信号的驱动下,产生“01”,“10”序列,用于选择数码管,以达到动态显示。 在MAX + plus软件中编译和波形仿真后得到的波形如图3-9(b)所示。 图3-9(b) 动态显示驱动模块DISPSELECT的仿真波形3.10 显示数据多路选择模块DISPMUX 该模块主要完成数码管显示数据的分时选择,以实现分时动态显示。该模块的模块框图如图3-10(a)所示: 图3-10(a) 显示数据多路选择模块DISPMUX的框图 该模块定义输入端口如下: SEL:状态输入信号,用于分时选择输入信号到输出端口。 D_IN1:显示数据高位输入信号,为4位BCD码。 D_IN0:显示数据低位输入信号,为4位BCD码。 该模块定义输出端口如下: D_OUT:显示数据输出,在SEL的驱动下,分别选择D_IN0与D_IN1。当SEL=“01”时,选择D_IN0;当SEL=“10”时,选择D_IN1;其余情况下输出为“00”。 在MAX + plus软件中编译和波形仿真后得到的波形如图3-10(b)所示。 图3-10(b) 显示数据多路选择模块DISPMUX的仿真波形3.11 显示数据译码模块DISPDECODER 该模块主要完成4位BCD码到8位BCD码数码管显示数据的译码,译码后的8位数据分别对应数码管的数据段A、B、C、D、E、F、G、DP。 该模块的模块框图如图3-11(a)所示: 图3-11(a) 显示数据译码模块DISPDECODER的模块 该模块定义输入端口如下: DATA_IN:4位BCD码输入信号。 该模块定义输出端口如下: DATA_OUT:8位数码管显示数据输出信号,用于显示数据。 在MAX + plus软件中编译和波形仿真后得到的波形如图3-11(b)所示。 图3-11(b) 显示数据译码模块DISPDECODER的仿真波形3.12 顶层电路TOP 到此,各个模块都已经设计和仿真完毕。需要将这些小模块连接起来完成整个系统的设计,即进行顶层电路的设计。 顶层电路的设计又有几种常用的方法,在Verilog HDL设计中主要有两种:一是用与模块设计一样的方式,即用Verilog HDL 语言来编程写模块电路的连接关系,主要是输入与输出的连接,从而设计出顶层电路;二是利用电路原理图的设计方式,这种设计方式,与通常情况下的基于分立电路的原理图设计基本类似,这种方法简洁二明了。因此,我选择了 第二种方式,即基于原理图的设计。 顶层电路如图3-12所示: 图3-12 顶层电路的接线图四 结 论 通过程序仿真,可以看出各个模块功能都得到实现。在这个交通灯的系统设计中,能够保证在确定的时间,倒计数数字显示能够及时变化,红黄绿灯能准确的变化。在绿灯亮了55秒后变化为黄灯亮5秒,然后实现了十字路口纵横路放行与禁行的切换控制。参考文献1 刘宝琴,张芳兰,田立生等.ALTERA可编程逻辑器件及其应用.北京:清华大学出版社,19952 赵雅兴.FPGA原理、设计与应用.天津大学出版社,19983 夏宇闻.Verilog数字系统设计教程.北京航空航天大学出版社,20034 李广军等著.可编程ASIC设计与应用.成都:电子科技大学出版社

    注意事项

    本文(基于FPGA的交通灯控制系统的设计毕业论文.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开