毕业设计(论文)基于FPGA的数字频率计的设计_第1页
毕业设计(论文)基于FPGA的数字频率计的设计_第2页
毕业设计(论文)基于FPGA的数字频率计的设计_第3页
毕业设计(论文)基于FPGA的数字频率计的设计_第4页
毕业设计(论文)基于FPGA的数字频率计的设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要传统的交通灯控制系统主要由单片机或plc构成,这种基于小规模集成电路的交通灯控制系统,电路元件多、接线复杂、故障率高、可靠性低。本设计采用fpga器件来设计一个实用的交通灯控制系统。该系统的可靠性、准确性较高,能够在确定的时间内使红黄绿路灯正确的变化,且倒计时显示能正确的显示时间。该交通灯控制系统采用verilog hdl语言编程,为了简化设计,采用模块化编程的思想,并用max + plus仿真软件进行编译仿真,将程序下载到fpga器件进行测试验证。基于fpga的硬件系统运行正确,能够实现交通灯的控制要求。该系统具有体积小、功耗低、价格便宜、安全可靠,维护和升级方便的优点,具有较好的应用

2、前景。在该交通灯控制系统中,采用了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 main

3、ly 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 systems reliability, high

4、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 bui

5、ld 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 o

6、f 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 s

7、witch 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课题的

8、研究方法及手段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.1

9、0显示数据多路选择模块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(fiel

10、d programmable gate array/complex programmable logic device),用verilog hdl语言 进行以交通灯控制器的设计,用对应的工具软件(本文用max+plus ii)对fpga/cpld芯片“下载”形成专用集成电路,由于不存在人工接线的问题,所以故障率低、可靠性好。 随着电子技术的不断更新,数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。推动该潮流迅猛向前的引擎就是电子设计自动化eda(electronic design automation)技术的发展eda技术就是以计算机为工具,在eda软件平台上,对用硬件描述语言h

11、dl完成的设计文件自动地逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化逻辑布局布线、逻辑仿真,直至对于特定目标芯片进行适配编译、逻辑映射和编程下载等。1.2课题的研究目标、内容及方法手段1.2.1课题的研究目标、内容该交通灯控制系统采用max + plus软件及verilog hdl语言进行编程,用fpga器件实现硬件系统。该系统能精确地实现红黄绿灯的规律变化,正确控制路口车辆的通行。1.2.2课题的研究方法及手段 该系统采用verilog hdl语言进行程序设计,并用max + plus仿真软件进行程序的编译和仿真,然后用下载线将程序下载到fpga器件中。本课题采用自顶向下设计思想进行设计,自

12、顶而下(top to down)的层次化设计方法在现代eda设计中有着明显的优势,越来越受到设计者的欢迎。对于一个复杂的设计系统,运用层次化设计方法,使设计课题进一步细化,分块设计,条理清晰。另外,在调试时可采用逆向调试方式,即从模块调试向总体调试方向开展调试工作,使设计中出现的问题在模块级就能发现,及时处理,这样就会使一个复杂的设计变得容易调试,缩短了设计时间。层次化设计方法:开始设计时,先设计出一个顶层总框图(一般称之为顶层图),该框图是由若干个具有特定功能的源模块组成。下一步是对这些不同功能的模块进行设计,产生这些模块的原理图文件或verilog源文件。对于有些功能复杂的模块,全部使用元

13、件库中的元器件设计仍显复杂,因此还可以将该模块继续化分为若干个功能子模块,这样就形成模块套模块的层次化设计方法。这种方法也称之为自顶向下的系统设计方法。 二 交通灯控制系统的原理介绍 2.1交通灯控制系统基本原理与系统框图2.1.1 系统基本原理 交通灯系统中,能够保证在确定的时刻,倒计数数字显示能够及时变化,红黄绿灯能准确变化。系统要求:在绿灯亮了55s后将变化为黄灯再亮5s,然后实现十字路口的纵横路放行与禁行的切换控制。2.1.2 交通灯控制系统框图 根据2.1.1对交通灯系统的功能描述,设计如图2-1所示的交通灯系统电路框图。 图2-1 交通灯系统电路框图图中,两组共4个数码管来显示倒计

14、时时间,用6个发光二极管来代替实际生活中的红黄绿交通信号灯,考虑到实际电路的需要,分别在可编程逻辑器件与数码管以及发光二极管之间放上限流电阻,以避免数码管以及发光二极管由于电流过大而烧坏,当然也不能加太大电阻,以避免数码管以及发光二极管的亮度不够。固定开关sw1实现交通警察人为监督交通秩序和无人自动控制交通秩序之间的切换,默认为高电平,即默认为开关置于高电平端,为自动控制模式,开关置于低电平端时为人为监督控制模式。点动开关sw2用于整个系统的总复位,如系统出现故障时,就需要总复位,当然一般情况下,用可编程逻辑器件实现的交通灯系统,只要系统设计的合理,软件设计的可靠,不会出现故障,除非意外的操作

15、或操作不当。2.2 交通灯控制系统的软硬件介绍2.2.1 fpga的简介fpga现场可编程门阵列器件通常由布线资源围绕的可编程单元构成阵列,又由可编程i/o单元围绕阵列构成整个芯片。排成阵列的逻辑单元由布线通道中的可编程连线连接起来实现一定的逻辑功能。一个fpga可能包含有静态存储单元,它们允许内连的模式在器件被制造以后再被加载或修改。fpga是由掩膜可编程门阵列和可编程逻辑器件演变而来的,将它们的特性结合在一起,使得fpga既有门阵列的高逻辑密度和通用性,又有可编程逻辑器件的用户可编程特性。目前,fpga的逻辑功能块在规模和实现逻辑功能的能力上存在很大差别。有的逻辑功能块规模非常小,仅含有只

16、能实现倒相器的两个晶体管;而有的逻辑功能块则规模比较大,可以实现任何五输入逻辑函数的查找表结构。据此可把fpga分为两大类,即细粒度和粗粒度。细粒度逻辑块是与半定制门阵列的基本单元相同,它由可以用可编程互连来连接的少数晶体管组成,规模都比较小,主要优点是可用的功能块可以完全被利用;缺点是采用它通常需要大量的连线和可编程开关,实现对速度变慢。由于近年来工艺不断改进,芯片集成度不断提高,加上引入硬件描述语言(hdl)的设计方法,不少厂家开发出了具有更高级程度的细粒度结构的fpga。例如,xilinx公司的采用micro via技术的一次编程反熔丝结构的xc8100系列,它的逻辑功能块规模较小,而粗

17、粒度功能块规模较大并且功能较强。从构成它的可编程逻辑块和可编程互连资源来看,主要有两种逻辑块的构造。其一是查找表类型;其二是多路开关类型,由此形成两种fpga的结构。第一种是具有可编程内连线的通道型门阵列。它采用分段互连线,利用不同长度的多种金属线经传输管将各种逻辑单元连接起来。布线延时是累加的、可变的,并且与通道有关。第二种是具有类似pld可编程逻辑块阵列的固定内连布线,采用连续互连线,利用相同长度的金属线实现逻辑块单元之间的互连,布线延时是固定的,并且可预料。目前流行的现场可编程门阵列/复杂可编程逻辑器件fpga/cpld(field programmable gaarray/comple

18、x programmable logic device)在eda基础上得到了广泛应用,由于可以通过软件编程对该器件硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一特性极大地改变了传统数字系统的设计方法、设计过程、乃至设计观念。在设计过程中,设计者可根据需要,随时改变器件的内部逻辑功能和管脚的信号方式。而管脚定义的灵活性,能大大减轻电路图设计和电路板设计的工作量和难度,同时,这种基于可编程逻辑器件芯片的设计大大减少了系统芯片的数量,缩小了系统的体积,提高了系统的可靠性。对于fpga/cpld器件,常用的硬件描述语言有vhdl和verilog等。2.2.2 veril

19、og hdl介绍verilog hdl是硬件描述语言的一种,用于数字电子系统设计。设计者可用它进行各种级别的逻辑设计,可用它进行数字逻辑系统的仿真验证、时序分析、逻辑综合。它是目前应用最广泛的一种硬件描述语言。verilog hdl和vhdl都是用于逻辑设计的硬件描述语言,其共同的特点在于:能形式化的抽象表示电路的行为和结构;支持逻辑设计中层次与范围的描述;可借用高级语言的精巧结构来简化电路行为的描述;具有电路仿真与验证机制以保证设计的正确性;支持电路描述由高层到低层的综合转换;硬件描述与实现工艺无关;便于文档管理;易于理解和设计重用。由于verilog hdl早在1983年就已推出,至今已有

20、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软件,它支持原理图、vh

21、dl和verilog语言文本文件,以及波形与edif等格式的文件作为设计输入。max+plusii具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果。max+plusii具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果。在设计一项工程时,首先利用eda工具软件max+plus中的文本编辑器,将其用文本方式(vhdl程序方式)表达出来,再通过max+plus转换为实际可用的电路网表,并用此网表对fpga/cpld进行布线,最后进行功能仿真和时序仿真,得到所需的设计效果。2.2.4器件的介绍与选择该系统选用了altera公司推出的max7000系列的可编程逻辑器件

22、epm7032lc44-6。max7000系列器件采用先进的0.8um cmos eprom技术制造。它是高密度、高性能的cmos epld器件。max7000中有可编程连线阵列()、i/o控制,并且编程具有保密性,另外还增加了可编程速度/功率控制和电压摆率的控制。系统选用4个数码管来显示倒计时时间,用6个发光二极管来替代实际生活中的红黄绿交通信号灯,考虑到实际电路的需要,分别在可编程逻辑器件与数码管以及发光二极管之间放上限流电阻,以避免数码管及发光二极管由于电流过大而烧坏,当然也不能加太大电阻,以避免数码管及发光二极管的亮度不够,因此,一般选330-1k。用一个固定开关sw1实现交通警察认为

23、监督交通秩序和无人自动控制交通秩序之间的切换。用一个点动开关sw2用于整个系统的总复位。三 交通灯控制系统的程序设计 鉴于模块化的设计方法,首先将系统分为11个小的容易实现的模块来分别设计仿真。分别有以下11个模块: (1) 主控模块control:控制系统输入与输出之间的联系。 (2) 55秒倒计时模块counter55:倒计时55秒,55秒为绿灯点亮时间。 (3) 5秒倒计时模块counter05:倒计时5秒,5秒为黄灯点亮时间。 (4) 倒计时时间选择驱动模块scan:驱动倒计时时间长短选择模块电路。 (5) 倒计时时间选择模块conterselect:选择不同的倒计时时间。 (6) 1

24、khz时钟信号模块fdiv1khz:通过分频得到1khz的时钟信号。 (7) 1hz计数时钟信号模块fdiv1hz:通过分频得到1hz的时钟信号。 (8) 倒计时时间数据多路选择模块datamux:倒计时时间数据分时送入后级用 于显示。 (9) 动态选择驱动模块dispselect:驱动动态选择数码管进行分时显示。 (10) 显示数据多路选择模块dispmux:显示数据的分时选择。 (11) 显示数据译码模块dispdecoder:4位码译成8位数码管的显示数据。 下边将分别讨论各个模块的具体实现过程,最后讨论由这些模块构成的顶层电路top。3.1 主控模块control 该模块主要完成根据外

25、部输入信号reset、sw控制输出,用于控制交通灯的信号red1、red2、yellow2、green1、green2。这中间包含了必要的内部模块之间的信号en_in(来自倒计时时间选择驱动模块scan)。 该模块的模块框图如图3-1(a)所示: 图3-1(a) 主控模块control的模块框图 该模块定义输入端口定义如下: rst:总体复位,用于复位整个系统。复位后,系统将恢复到原始状态。 sw1:模式选择,用于选择自动模式和人为监督模式。其中,sw1=1时为自动模 式,系统不需要人为控制,自动按照预先设定的方式来控制交通灯,主要过程为十字马路的一个方向(设定为方向1)绿灯亮时,另一个方向(

26、设定为方向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:

27、方向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-

28、2(a) 55秒倒计时模块counter55的模块框图该模块定义输入端口如下: c_clk:计数时钟信号,计数器的全局计数时钟。经过分频后,这个时钟信号频率为1hz的方波信号,在时钟的上升沿,计数器响应。 rst:计数器复位信号,低电平复位。复位后,计数器恢复原始状态。即为全零状态,这时输出数值为55。默认rst为高电平,工作在计数状态。 c_en:计数器的使能信号,在时钟信号下,在这个信号为高电平时,计数器才工作与计数状态,否则,计数器工作于保持状态。该模块定义输出端口如下: d_out1:计数器的高位输出,经过译码后,就可以作为倒计时时间显示的高位。 d_out0:计数器的低位输出,经过译

29、码后,就可以作为倒计时时间显示的低位。 c_out:计数器计数到时脉冲输出,当计数器计数到设定时间时,就会产生一个脉冲信号,用于驱动状态的改变。在max + plus软件中编译和波形仿真后得到的波形如图3-2(b)所示。 图3-2(b) 55秒倒计时模块counter55仿真波形 从图3-2(b)可以简单的检查55秒倒计时模块counter55设计的逻辑上的正确性,同时也可以看到一些简单的延时信息。3.3 5秒倒计时模块counter05该模块主要完成5秒倒计时,控制黄灯的点亮时间。实际中在1分钟内还要有红到黄灯的转换以提醒车辆与行人,所以选择了55秒作为红灯的点亮时间后,黄灯的点亮时间必定是

30、5秒。该模块的模块框图如图3-3(a)所示: 图3-3(a) 5秒倒计时模块counter05的模块框图 该模块定义输入端口如下: c_clk:计数时钟信号,计数器的全局计数时钟。经过分频后,这个时钟信号为频率为1hz的方波信号,在时钟的上升沿,计数器响应。 rst:计数器复位信号,低电平复位。复位后,计数器恢复原始状态。即为全零状态,这时输出数值为05.默认rst为高电平,工作在计数状态。 c_en:计数器的使能信号,在时钟信号下,在这个信号为高电平时,计数器才工作与计数状态,否则,计数器工作与保持状态。该模块定义输出端口如下: d_out1:计数器的高位输出,经过译码后,就可以作为倒计时时

31、间显示的高位,通常情况下为0。 d_out0:计数器的低位输出,经过译码后,就可以作为倒计时时间显示的低位。 c_out:计数器计数到时脉冲输出,当计数器计数到设定时间时,就会产生一个脉冲信号,用于驱动状态的改变。在max + plus软件中编译和波形仿真后得到的波形如图3-3(b)所示。图3-3(b) 5秒倒计时模块counter05的仿真波形3.4 倒计时时间选择驱动模块scan该模块主要完成倒计时时间长短选择的功能,输入信号来自两个倒计时模块counter55和counter05,当倒计数完成时产生一个脉冲用于驱动此模块产生00,01,10,11序列来驱动倒计时时间选择模块counter

32、select。该模块的模块框图如图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 倒计时时间选择模块c

33、ounterselect 该模块主要完成55秒倒计时与5秒倒计时之间的选择功能,在实际中因为存在着红灯到黄灯再转换为绿灯的这样的一个变化过程,而红黄绿灯的点亮时间不相同,一般是绿黄两灯的点亮时间刚好等于红灯,其中,绿灯亮55秒,黄灯亮5秒,红灯亮60秒。该模块的模块框图如图3-5(a)所示: 图3-5(a) 倒计时时间选择模块counterselect 的模块框图该模块定义输入端口如下: d_in:状态变化输入信号,主要是“00,01,10,11”四种状态的变化,与倒计时时间长短的选择信号同步。该模块定义输出端口如下: d_out1:时间选择高位输出,用于选择驱动55秒倒计时计时器。分别在状态

34、输入“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分频的分频器。分频器的设计是时序设计的比较基础的知识,

35、在实际系统中用得很多,设计过程与计数器的设计很类似。 该模块的模块框图入图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时钟信

36、号经过分频得到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该模

37、块主要完成两组不同倒计时时间数据的选择输出到后续显示模块。该模块的模块框图如图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:状态选择输入信

38、号,用于在不同状态下选择不同的计时器的输出数值作为这个模块的输出。该模块定义输出端口定义: 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

39、动态显示驱动模块dispselect 该模块主要完成倒计时数码管的动态显示。动态显示即分时显示,但是时间间隔的选择既要保证人眼看起来是同时显示,既不会出现两位数字的断续显示,又要保证不会覆盖显示数字,即不会出现上个数字与下个数字之间的显示过快使得人眼来不及分辨。该模块模块框图如图3-9(a)所示: 图3-9(a) 动态显示驱动模块dispselect的模块框图该模块定义输入端口如下: clk:动态选择循环时钟信号,此信号为1khz的时钟信号。该模块定义输出端口如下: d_out:动态选择循环输出信号,在1khz时钟信号的驱动下,产生“01”,“10”序列,用于选择数码管,以达到动态显示。 在m

40、ax + 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的驱动下,

41、分别选择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的模块 该模块定义输入端口如下: da

42、ta_in:4位bcd码输入信号。 该模块定义输出端口如下: data_out:8位数码管显示数据输出信号,用于显示数据。 在max + plus软件中编译和波形仿真后得到的波形如图3-11(b)所示。 图3-11(b) 显示数据译码模块dispdecoder的仿真波形3.12 顶层电路top 到此,各个模块都已经设计和仿真完毕。需要将这些小模块连接起来完成整个系统的设计,即进行顶层电路的设计。 顶层电路的设计又有几种常用的方法,在verilog hdl设计中主要有两种:一是用与模块设计一样的方式,即用verilog hdl 语言来编程写模块电路的连接关系,主要是输入与输出的连接,从而设计出顶

43、层电路;二是利用电路原理图的设计方式,这种设计方式,与通常情况下的基于分立电路的原理图设计基本类似,这种方法简洁二明了。因此,我选择了 第二种方式,即基于原理图的设计。 顶层电路如图3-12所示: 图3-12 顶层电路的接线图四 结 论 通过程序仿真,可以看出各个模块功能都得到实现。在这个交通灯的系统设计中,能够保证在确定的时间,倒计数数字显示能够及时变化,红黄绿灯能准确的变化。在绿灯亮了55秒后变化为黄灯亮5秒,然后实现了十字路口纵横路放行与禁行的切换控制。谢 辞在做本设计的过程当中,我阅读了很多资料,充实了我的专业课知识,在交通控制系统的设计完成过程当中,我学会了很多,并让我感觉到我的知识

44、的匮乏,尽管老师和同学竭尽全力帮助我来保证设计的精确性、可靠性和完善性,但加上时间的仓促,设计还有很多不足之处,恳请老师批评指正。在毕业设计顺利完成之际,我特别感谢我的指导老师唐予军老师在我设计写作过程中给予的倾力帮助和悉心指导。在本设计的设计过程中,唐老师在繁忙的工作之余不辞劳苦给我提供了许多宝贵的意见和资料。论文的整个撰写过程中,唐老师传授了我对论文写作的框架和思路,在论文的修改过程中,唐老师不断地对论文进行审核,并且指出论文的不足之处,提出很多宝贵的改进意见。他的督促和帮助使我顺利完成了毕业设计及论文。在此对唐老师的无私帮助致以深深的谢意!最后感谢各位同学和朋友在设计和论文的写作过程中给

45、予的无私帮助!更要感谢大家在生活和学习里对我的关心,帮助和支持!本次论文与设计的完成对我是一个巨大的激励,使我对学术的研究方面充满信心,更为我在今后的学习与工作中提供了宝贵的经验。参考文献1 刘宝琴,张芳兰,田立生等.altera可编程逻辑器件及其应用.北京:清华大学出版社,19952 赵雅兴.fpga原理、设计与应用.天津大学出版社,19983 夏宇闻.verilog数字系统设计教程.北京航空航天大学出版社,20034 李广军等著.可编程asic设计与应用.成都:电子科技大学出版社,20005 徐志军等著.cpld/fpga的开发与应用.北京:电子工业出版社,20026 翁大元等著.fpga

46、设计与应用.西安:西安电子科技大学出版社,20027 夏宇闻.从算法设计到硬件逻辑的实现-复杂数字逻辑系统的verilog hdl设计技术和方法.北京:高等教育出版社,20018 陈雪松,滕立中编著.vhdl入门与应用.北京:人民邮电出版社,20009 刘玉琴,沈雅芬.计算机电路基础(1).北京:中央广播电视大学出版社,200010 边计年,薛宏熙译.用vhdl设计电子线路.北京:清华大学出版社,200011 wennuan,zibin dai,yongfu zhang.fpga implementation of rsa public-key cryptographiccoprocessor

47、 based on systolic linear array architecture.electronic technology magazine,2003附 录本设计温度计的程序如下:/*主控模块control*/module control(en_in, rst,sw1,red1,red2,yellow1,yellow2,green1,green2);/*输入输出端口定义*/output red1;output red2;output yellow1;output yellow2;output green1;output green2;input 1:0 en_in;input sw1

48、;input rst; /*数据类型定义*/reg red1,red2,yellow1,yellow2,green1,green2,d_out;/*always语句 :实现交通灯的总体工作的控制*/always (en_in|rst|sw1)begin/*系统复位*/ if(sw1=0|rst=0)red1,red2,yellow1,yellow2,green1,green2=6b0;/*系统自动运行*/ else begin case(en_in) 2b00 : red1,red2,yellow1,yellow2,green1,green2=6b010010; / 方向1绿灯亮,方向2红灯亮

49、 2b01 : red1,red2,yellow1,yellow2,green1,green2=6b011000; / 方向1黄灯亮,方向2红灯亮 2b10 : red1,red2,yellow1,yellow2,green1,green2=6b100001; / 方向1红灯亮,方向2绿灯亮 2b11 : red1,red2,yellow1,yellow2,green1,green2=6b100100; / 方向1红灯亮,方向2黄灯亮 default : red1,red2,yellow1,yellow2,green1,green2=6b0; / 方向1与方向2全灭 endcase end end endmodule /*55秒倒计时模块counter55*/ module counter55(c_clk,rst,c_en,d_out1,d_out0,c_out);/*输入输出端口定义*/output c_out;output 3:0 d_out1;output 3:0 d_out0;input c_clk;input rst;input

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论