版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录摘要IIIAbstractIV第一章绪论11.1研究背景11.2研究目的和意义1硬件描述语言 VHDL3VHDL 的简介3VHDL 语言的特点3VHDL 的基本结构与基本要素4第二章2.12.22.32.3.1VHDL 语言的标识符4VHDL 语言的客体4VHDL 语言的数据类型4VHDL 顺序语句5VHDL 并行语句52.3.22.3.32.3.42.3.52.4VHDL 的设计流程5VHDL 和MAX+PLUSII 在设计数字电路中的应用75FPGA 概述7FPGA 简介7FPGA 的发展应用7FPGA 的基本特点8FPGA 在数字秒表上的应用研究8MAX+PLUS简介9MAX+PLU
2、S简介9MAX+PLUS的功能9MAX+PLUS的主要特点92.5第三章3.13.23.33.4第四章4.14.24.34.4使用Max+plus设计流程10第五章数字秒表的系统设计及仿真115.1系统设计115.1.1设计. 115.1.2设计要求(秒表的功能描述)115.1.3秒表的面板包括:115.2顶层电路设计125.3数字秒表的设计原理125.4各模块的原理、程序及其仿真135.4.1调整控制电路(主控电路模块)135.4.2键输入模块电路(含消抖电路)155.4.3时钟分频电路模块175.4.4计时模块195.4.5显示译码电路模块235.4.6溢出控制255.4.7VHDL 顶层
3、电路描述25结论27参考文献28附录29致谢37基于 FPGA 数字秒表电路的设计摘要在科技技术高度发展的今天,计算机应用及集成电路得到了高速的发展。数字秒表是采用数字电路实现对分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字秒表的精确度,远远超过原来的老式秒表。秒表在很多领域充当一个重要的角色。如在各种比赛中对秒表的精确度要求很高,尤其是一些科学实验上,对时间的把握度很高。秒表的数字化给人们生产生活带来了极大的方便。本文就是基于FPGA 数字秒表的设计,在时钟脉冲信号、状态控制等原理设计出的数字秒表。以FPGA 为的数字秒表,具有集成度高、电路少、可靠性
4、强等特点。本文以MAX+PLUS为设计,以现场可编程门阵列(FPGA)器件为,设计了一个具有数字系统即带计时器功能的秒表系统,并且通过了数码管驱动电路动态显示计时结果。使用 MAX+PLUS的综合器和仿真器对系统进行了编译和仿真,并得出了正确的仿真结果。其展示了 VHDL 语言的强大功能和优秀特性。关键字:数字秒表;FPGA;MAX+PLUS;VHDLFPGA-based Digital Stopwatch CircuitAbstractHighlydevelopedtechnologyintechnologytoday,computerapplicationanddevelopment of
5、 high-speedegrated circuits have been. Digital stopwatch is used to realizedigital circuits minutes, seconds, the figures show the timing device, due to the developmentof digitalegrated circuits and the extensive application of quartz crystal oscillators, makingdigital stopwatch accuracy, far moren
6、the original old-fashioned stopwatch. Stopwatch inmany areas as an important role. In various competitionch as the accuracy of thestopwatch demanding, espelly in some scientific experiments on the high degree of time tograsp. Digital stopwatch production and life to peop rings great convenience. Thi
7、s article is based on the design of FPGA digital stopwatch, a clock pulse signal, the s e control principle to design a digital stopwatch. The FPGA at the core of the digital stopwatch, highegration, low external circuit, reliability and other characteristics.In this pr, MAX + PLUS software design p
8、latform, to field programmable gatearray (FPGA) devias the core design of a digital systemt features a stopwatch witimer system, and by the dynamic display of digital control drive circuit timing results. UseMAX + PLUS comprehensive and emulators on the system was compiled and simulation,and draw th
9、e correct simulation results. Shows the VHDL language, itsfeatures.er and excellentKey words:Digital Stopwatch, FPGA, MAX + PLUS , VHDL第一章绪论1.1 研究背景时间在不断的流逝,当它从指尖流走的那一刻可曾感到过它的存在呢?从古至今人们就知道了时间的重要性。他们开始寻找和创造可以表示时间的仪器。在公元1300 年以前,人们主要是利用天文现象和物质的连续运动来计时。例如,日晷是利用日影的方位计时;漏壶和沙漏是利用水流和沙流的流量计时。随着人们生活水平的日益提高,社
10、会体系的日益完善,人们对于各种应用器材的要求也越来越高.秒表作为日常生活中常见的仪器,尤其在体育运动中应用很广泛,所以秒表的精确性和方便性们很好的利用。本秒表计时器用于体育竞赛及各种要求较精确的领域。这里设计的计时器是用一块的,用 VHDL 语言描述的。它具有开关、时钟和显示功能,其体积小,携带方便。以大规模集成电路为物质基础的 EDA 技术终于打破了软硬件之间最后的屏障,使软硬件工程师们有了共同的语言1。EDA 是电子设计自动化(Electronic Design Automation)的缩写。EDA 技术伴随着计算机、集成电路以及电子系统设计的发展,经历了计算机辅助设计(简称 CAD)、计
11、算机辅助工程设计(简称CAE)和电子设计自动化(简称 EDA)。EDA 技术是以计算机为工具,在以 EDA为的基础上,以硬件描述语言HDL 为系统逻辑描述完成的设计文件自动地完成逻辑编译、逻辑分割、逻辑化简、逻辑行局布线、逻辑综合及优化、逻辑仿真,直到对特定目标的适配编译、逻辑映射和编程。目前设计者仅限于利用的方式来工作,对系统硬件功能的描述要利用硬件描述语言来完成,在利用 EDA 工具的帮助下得到设计的结果。尽管目标系统是硬件,但整个设计和修改过程如同完成设计一样方便和高效2。1.2研究目的和意义目的:本文的研究目的是对数字系统设计的历史和现状进行分析,并对数字秒表的VHDL 设计原理进行了
12、深入的研究,并将其综合。本文设计了一个基于 FPGA 的数字秒MAX+PLUS进行输入、编译、综合、仿真将其表,并在开发到系统可编程实验板中测试实现。信号源是由实验板上的时钟信号经分频而得到的 0.0 1 秒信号。设计采用EDA 技术分为两步。第一步:在 MAXPLUS开发工具中 ,用 VHDL 语言分别编写出所要的几个模块的文本文件 (也称底层文件) ,将 VHDL 的文本文件分别转换为相对应的器件,并进行仿真,每个器件的时序仿真结果与设计要求要一致;其次,将整个数字秒表作为一个器件进行时序仿真。意义:在科技高度发展的今天,集成电路及计算机应用得到了高速的发展。尤其是计算机应用的发展,各种家
13、用电器多会实现电脑技术,电脑各部分在工作时多是以时间为基准的。本文就是基于FPGA 数字秒表的设计,在时钟脉冲信号、状态控制等原理设计出的数字秒表。秒表在很多领域充当一个重要的角色。在各种比赛中对秒表的精确度要求很高,尤其是一些科学实验。他们对时间精确度达到了几纳秒级别。数字秒表是日常生活中比较常见的电子产品,以其价格低廉、走时精确。使用方便,功能多而倍受广大用户的喜欢。如在很多喜庆场合,对某一时刻进行倒计时,人们常常使用倒计时秒表。所以研究秒表具有的现实意义和理论意义。第二章 硬件描述语言 VHDL2.1VHDL 的简介VHDL(集成电路硬件描叙语言)诞生于 1982 年。是一种用于电路设计
14、的高级语言。最初是由国防部开发出来供用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。VHDL 主要用于描述数字系统的行为、结构、接口和功能,非常适合用于可编程逻辑的应用设计。VHDL 除具有硬件特征的语句外,其描述风格与语言形式和句法类似于一般的计算机高级语言。VHDL 的程序特点是将一项设计实体(可以是个元件、电路模块或一个系统)分成外部(即端口)和(即结构体)两部分,外部负责对设计实体和端口引脚命名和说明,负责对模块功能和算法进行描述。在对一个设计实体定义了外部界面后,一旦其结构、功能开发完成,即可生成共享功能模块,这就意味着,在顶层综合或其他设计中可以直接调用这个实体模块
15、。VHDL 具有较强的行为描述能力,可避开具体的器件结构,从逻辑功能和行为上进行描述和设计3。2.2 VHDL 语言的特点VHDL 的程序结构特点是将一项工程设计,关于用 VHDL 和原理图输入进行CPLD/FPGA 设计的粗略比较:在设计中,如果采用原理图输入的设计方式是比较直观的。你要设计的是什么,你就直接从库中调出来用就行了。这样比较符合人们的。在对一个设计实体定义了外部界面后,一旦其开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点。应用VHDL 进行工程设计的优点是多方面的。与其他的硬件描述语言相比,VHDL 具有更强的行为描
16、述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。VHDL 语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。VHDL 丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。对于用 VHDL 完成的一个确定的设计,可以利用EDA 工具进行逻辑综合和优化,并自动的把 VHDL 描述设计转变成门级网表。VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。
17、由于 VHDL 具有类属描述语句和子程序调用等功能,对于完成的设计,在不改变源程序条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结构4。2.3VHDL 的基本结构与基本要素一个相对完整的 VHDL 程序通常包含实体(Entity)、结构体(Architecture)、配置(configuration)、程序包(package)和库(Library)5 个部分4。2.3.1VHDL 语言的标识符VHDL 文字主要包括数值和标识符。VHDL 的标识符是最常用的操作符,可以是常数、变量、端口、信号、子程序以及参数的名字。标识符分为扩展标识符与短标识符。短标识符遵循以下规则:必须以 26
18、个英文字母开头;字母可以是大写、小写、数字包括 0-9 和下划线;下划线前后都必须有英文字母或数字。2.3.2VHDL 语言的客体在 VHDL 语言中,凡是可以赋予一个值的对象叫客体。 VHDL 语言客体包含有专门的数据类型,主要有 4 个类别:常量、信号、变量以及文件。常量:常量是设计者给实体名赋予的固定值,其中的值在运行中不改变。通常,常量赋值应该在程序开始就进行说明,数据类型在实体说明语句中指明。信号:信号通常是在构造体、程序包以及实体的说明中使用,用来进行进程中的通信,它是个全局变量。信号是电子电路硬件实体相互连接的抽象表示。变量:变量只在进程语句、函数语句、过程语句的结构中使用,变量
19、的赋值立即生效,不产生赋值延时,是一个局部量。文件:是传输大量数据的客体,包含一些专门数据类型的数值。在仿真测试时,输入的激烈数据与仿真结果的输出都需要用文件来进行5。2.3.3VHDL 语言的数据类型在 VHDL 语言中,信号、变量、常数都要指定数据类型,并且只有相同的数据类型的量才能互相传递和作用。VHDL 的基本类型有: eger(整数)、bit(位)、bit-Vector(位(量)、character(字符)、string(字符串)、time(时间)、real(实矢量)、数)。2.3.4 VHDL 顺序语句VHDL 有如下基本顺序语句 :赋值语句、等待语句、流程控制语句、返回语句、子程
20、序调用语句、空操作语句。流程控制语句共有五种:IF 语句、CASE 语句、NEXT语句、LOOP 语句、EXIT 语句。赋值语句有信号赋值语句和变量赋值语句两种。2.3.5VHDL 并行语句结构体中的并行语句主要有七种类型:进程语句、块语句 、并行信号赋值语句、条件信号赋值语句、元件例化语句(其中包括类属配置语句 )生成语句、并行过程调用语句。2.4VHDL 的设计流程VHDL 是设计流程主要包括以下几个步骤:文本编辑:用任何文本编辑器都可以进行,也可以用的 HDL 编辑环境。通常VHDL 文件保存为.vhd 文件,Verilog 文件保存为.v 文件。功能仿真:将文件调入 HDL 仿真进行功
21、能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)逻辑综合:将源文件调入逻辑综合进行综合,即把语言综最简的表达式。逻辑综合会生成.edf 或.edif 的EDA 工业标准文件。布局布线:将.edf 文件调入 PLD 厂家提供的安放PLD/FPGA 内。中进行布线,即把设计好的逻辑时序仿真:需要利用在布局布线中获得的精确参数,用仿真验证电路的时序。(也叫后仿真) 通常以上过程可以都在PLD/FPGA 厂家提供的开发工具。器件编程6。2.5VHDL 和 MAX+PLUSII 在设计数字电路中的应用以 VHDL 为工具的EDA 设计方法与传统的人工
22、设计方法相比,有以下几个优点:缩短了开发周期、提高了效率、产品的质量得到了提高。用 VHDL 进行数字系统开发与设计,其设计的抽象层次有 6 个,分别是系统级、级、寄存器级、门级、电路级和版图/硅片级,可以在不同的抽象层次级别上设计系统。使用 MAX+PLUSII 作为开发环支持的资源情况选择合适的设计层次。在 VHDL 设计中,常常采境时应该根据用多进程描述的方法来进行程序设计,通过使用进程可以把整体的功能局部化,分块设计,多个进程通过进程间通信机制互相配合,达到设计要求。当进程比较多的时候,它们之间的配合问题就比较复杂,因此在设计之前应该合理规划安排7。第三章 FPGA 概述基于FPGA
23、技术的发展和应用领域的扩大与深入,它作为一种高新的技术,在电子信息、通信、自动控制用计算机等领域电子行业都无处不在它的身影,因此FPGA 重要性日益突出。3.1 FPGA 简介FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在可编程器件的基础上进一步发展的产物。与其他器件相比,它的优点是可以实时的对外加或内置的 RAM 或 EPROM 编程,实时地改变器件功能,实现现场可编程或学实验、样机研制、小批量产品生产的最佳选择器件。重配置,是科由于FPGA 具有开发周期短、编程灵活、可靠性高等优点,所以非常适合在中使用。FPGA 的应用研究对科研工作者的作
24、用也是显而易见的。FPGA 集成了功能丰。这些硬件知识一般完成高速、复杂的设计标准。FPGA 正逐步富的硬件知识进入一些过去只有 ASIC 才能完成的设计领域。FPGA 一般采用同步时钟设计;用全局时钟驱动以及门控时钟树驱动;FPGA 采用的时序驱动方式在各级布线资源上灵活运用。目前以硬件描述语言所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进试,是现代 IC 设计验证的技术主流。3.2FPGA 的发展应用从 1985 年FPGA 诞生于 XILINX 公司,从当初的几百个门电路到现在的几百万门、几千万门,从原来的上千元的天价到现在几元的超低价,可谓是出现了翻天覆地的变
25、化。早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可擦除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。FPGA 作为一种高新的技术,已经逐渐普及到了各行各业,无论是消费类、通信类、电子行业都无处不在它的身影。FPGA 的应用可分为四个方面:直接使用,间接使用,硬件仿真,集成电路。FPGA 有多种配置模式:并行主模式为一片FPGA 加一片EPROM 的方式;主从模式可以支持一片PROM 编程多片FPGA;串行模式可以采用串行 PROM 编程FPGA;外设模式可以将FPGA 作为微处理器的外设,由微处理器对其编程8。
26、3.3FPGA 的基本特点的。FPGA 可做其它全定制或半定制 ASIC 电路的中试样片。FPGA有丰富的触发器和IO 引脚。FPGA 是 ASIC 电路中设计周期最短、开发费用最低、风险最小的器件之一。FPGA 采用高速可以说,FPGAOS 工艺,功耗低,可以与CMOS、TTL 电平兼容。是小批量系统提高系统集成度、可靠性的最佳选择之一。FPGA 是由存放在片内 RAM 中的程序来设置其工作状态的,因此,工作时需要对片内的 RAM 进行编程。用户可以根据不同的配置模式,采用不同的编程方式。3.4FPGA 在数字秒表上的应用研究基于FPGA 设计的数字秒表具有电路简单、可靠性强、实时快速擦写、
27、运算速度高、故障率低、可靠性高,而且体积小的特点。根据硬件描述语言 VHDL 的设计文件,能自动地完成用方式描述的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、布局布线、逻辑仿真,直至完成对于特定目标的适配编译、逻辑映射和编程等工作。设计者的工作仅限于利用的方式来完成对系统硬件功能的描述。在 MAX+PLUS上使用VHDL 语言,采用自顶向下的设计方法对系统进行了模块化设计和综合,并进行了仿真。采用FPGA 设计 ASIC 电路(集成电路),用户不需要投片生产,就能得到合用第四章 MAX+PLUS简介4.1 MAX+PLUS简介MAX+PLUS 是ALTERA 公司自行开发
28、的一种针对其公司生产的系列FPGA 的设计、仿真、编程的工具,其全称为 Multiple Array Materix and ProgrammableLogic User Systems.MAX+PLUS是 FPGA 应用我国应用较为普遍。中比较典型和常见的一种工具,在MAX + plus 是一种与结构无关的全集成化设计环境。 MAX+ plus 开发系统具有强大的处理能力和高度的灵活性。其主要优点:与结构无关、多、丰富的设计库、开放的界面、全集成化、支持多种硬件描述语言( HDL)等。4.2MAX+PLUS的功能MAX+PLUS 接受对一个电路设计的图形描述(电路图)或文本描述(硬件描述语言
29、),通过编辑、编译、仿真、综合、FPGA 编程等一系列过程,将用户所设计的电路原理图或电路描述转变为FPGA的基本逻辑单元,写入 FPGA中,从而在硬件上实现用户所设计的电路。该 FPGA 可用于正式的产品,也可作为对最终实现的 ASIC的硬件验证。4.3 MAX+PLUS的主要特点开放的界面:MAX+PLUS提供了与设计输入、综合和验证工具的接口。设计可使用 ALTERA 或标准 EDA 设计输入工具建立电路设计,使用 MAX+PLUS编译器(Compiler)对 ALTERA 的器件进行编译,然后使用 ALTERA 或其他标准EDA 验证工具进行验证。设计与器件的结构无关:MAX+PLUS
30、系统的编译器(Compiler)支持ALTERA 公司的FLEX10K,FLEX8000,FLEX6000,MAX9000,MAX7000,MAX5000和 Classic 等可编程逻辑器件系列,提供了业界惟一真正与结构无关的可编程逻辑设计环境。MAXPLUS的编译器还提供了强大的逻辑综合与优化功能,使设计容易地将其设计集成到可编程逻辑器件中。能比较多:MAX+PLUS可在多种PC 机和工作站的操作系统中运行。其中包括WindowsNT3.51,Windows NT 4.0,Windows 95,Windows 98,Windows2000,WindowsXPSun SPAC Sions 等工
31、作站上运行。丰富的设计库:MAX+PLUS提供了丰富的库单元供设计者使用,其中包括 74 系列的全部器件和多种特殊的逻辑功能(Macro-Function)以及新型的参数化兆功能(Mega-Function)。完全集成化:在 MAX+PLUS系统环境下,可以完成所有的编辑、编译、逻辑综合、网表提前、适配、器件装配及功能的时序仿真。这可以加快调试、缩短开发周期。接受高级描述语言:MAX+PLUS接受多种硬件描述语言(HDL),包括 VHDL, VERILOG 和ABTERA 自己的硬件描述语言AHDL。底层编辑方便形象:MAX+PLUS的底层编辑与实际 CPLD/FPDA 器件的管脚一一对应,所
32、以只要用鼠标拖放就可以完成I/O 口等管脚的编辑任务9。4.4 使用 Max+plus设计流程设计输入:可以采用原理图输入、HDL 语言描述、及波形输入等几种方式。项目编译:先根据设计要求设定编译参数和编译策略,如器件的选择、逻辑综合方式的选择等。然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合和器件适配,并产生文件、延时信息文件及编程文件,供分析仿真和编程使用。仿真(项目校验):仿真包括功能仿真、时序仿真和定时分析,可以利用的仿真功能来验证设计项目的逻辑功能是否正确。编程与验证:用经过仿真确认后的编程文件通过编程器(Programmer)将设计到实际中,最后测试在系统中的实际运行性能
33、4。在设计过程中,如果出现错误,则需重新回到设计输入阶段,改正错误或调整电路后重复上述过程。本次设计中我利用的 EDA 工具是 ALTERA 公司的 MAX+PLUS 对源程序进行选配、编译、优化、逻辑综合,自动地把 VHDL 描述转变器件图,并进而完成电路分析、自动布局布线、验证、纠错、仿真各种测试工作。在下一章将介绍数字秒表的系统仿真。第五章数字秒表的系统设计及仿真5.1系统设计5.1.1设计利用 VHDL 语言设计基于计算机电路中时钟脉冲原理的数字秒表。其设计思路为:通过分频器将晶振所提供的信号分频成 0.01S 脉冲作为计时信号,经计数器累加计数,形成六十进制的计数器和一百进制的计数器
34、。经译译码后,分位输出给六个 7 段 LED 数码管显示为。设计采用六位LED 数码管显示分、秒,0.1s,0.01s 计时方式。使用按键开关可实现开始/结束计时操作,及复位清零操作和计时长度模式选择。5.1.2设计要求(秒表的功能描述)要求设置复位开关。当按下复位开关时,秒表清零并做好计时准备。在任何情况下只要按下复位开关,秒表都要无条件地进行复位操作,即使是在计时过程中也要无条件地进行清零操作。要求设置启/停开关。当按下启/停开关后,将启动秒表并开始计时,当再按一下启/停开关时,将终止秒表的计时操作。要求计时精确度大于 0.01 秒。要求设计的计时器能够显示分(2 位)、秒(2 位)、0.
35、1 秒(1 位),0.01 秒的时间。要求秒表的最长计时时间为秒表计时长度为 59.分 59.99 秒,超过计时长度,有溢出则,计时长度可手动设置。5.1.3秒表的面板包括显示屏:由 6 个 7 段数码管组成,用于显示当前时间;QT(启/停键):用于开始/结束计时操作;MODE (模式选择键):用于计时长度模式选择;CLR(复位键):用于秒表计时系统的复位操作;蜂鸣器:溢出,则发出蜂鸣声。5.2顶层电路设计整个系统设计是采用自顶向下分析,自底向上设计。将数字秒表系统的整体分解为各个模块电路。本章详细介绍了数字秒表系统的各个模块的设计,并对各个模块的每一个部分进行了分析,在后半部分还对系统模型进
36、行了访真与程序调试。各模块之间的每一个坏节都是深思熟虑而成,各自完成相应的功能并组成一个的整体10。数字秒表的顶层电路图及时序分析采用硬件描述语言设计一个复杂电路系统,运用自顶向下的设计,将系统按功能逐层分割的层次化设计方法。在顶层设计中,要对各功能块的连接关系和对外的接口关系进行描述,而功能块实际的逻辑功能和具体的实现形式则由下一层模块来描述。5.3数字秒表的设计原理本系统设计采用自顶向下的设计方案,系统的整体组装设计原理图如图 5.1 所示:(1)本设计可分为五个主要模块:调整控制电路(主控电路模块);键输入模块电路(含消抖电路);时钟分频电路模块;计时电路模块;显示控制电路模块(包括溢出
37、控制)。计时 电 路图 5.1 数字秒表系统原理框七段数码管蜂鸣器七段数码管译码电路控制主控电路分频电路按键消抖处理按 键CLK 输入(2)系统的总体设计:各个输入/输出端口的作用如下:CLK 为外部时钟信号,CLR 为复位信号;QT 为启/停开关,用于开始/结束计时操作;MODE 为模式选择键,用 1 个电平信号 A 进行模式选择;Q 是数据扫描显示的公共七段数码显示驱动端,它经过外接的译管的公共端COM。译码后接数码SOUND 用于控制蜂鸣器。当SOUND=“1”时,扬声器发出蜂鸣声,表示计时超出计时长度(溢出)5.4各模块的原理、程序及其仿真5.4.1调整控制电路(主控电路模块)为了实现
38、数字秒表的各种相应功能,主控电路对各种输入控制信号进行处理。作出相应的调整,发出一系列的控制输出信号。如对数字秒表实现复位操作,启、停控制,以及计时长度设置模式选择。主控电路的功能(1)实现系统复位:设置一个CLR 信号,当CLR 信号0 时,整个系统复位:当 CLR1 时,系统进行计时或模式选择。(2)启/停控制:用于开始/结束计时操作。数字秒表的启/停是通过控制送给计数器的时钟来实现的。当按下 QT 键后,输出端Q 的状态发生反转。Q 为“1”时。时钟可通过与门,秒表处于计时状态。当Q 为“0”时,时钟被,计数器得不到时钟脉冲,停止计数。模式选择功能:通过 MODE 键进行秒表计时长度设置
39、的选择。当 MODE“0”时为模式 0,秒表系统的计时长度为 59 分 59.99 秒。当MODE“1”时,为模式 1,秒表系统的计时长度为 59.99 秒。(3)计时模块的作用是针对计时过程进行控制。计时控制模块可用俩个按钮来完成秒表的启动、停止和复位。部分源程序与器件图(图 5.2)及仿真图(图 5.3)如下:ARCHITECTURE a OF KZQ ISPROS(CLK,CLR)VARIABLE TMP:STD_LOGIC; BEGINIF CLR=0 THEN TMP:=0;ELSIF CLKEVENT AND CLK=1 THEN IF A=1 THENTMP:=NOT TMP;
40、END IF;END IF;Q=TMP;END PROS;PROS(CLK,CLR) BEGINMIN=0;SEC=0; TSEC=0;ELSIF CLKEVENT AND CLK=1 THEN图 5.2 主控制模块KZQ 的器件图主控制模块 KZQ 的波形仿真如下图 5.3 所示:图 5.3 主控制模块KZQ 的波形仿真5.4.2键输入模块电路(含消抖电路)在秒表面板上有 3 个按键:启/停键、复位键及模式选择键键。因为设计采用的是机械式的按键,由于存在机械触动的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会马上断开。因而在闭合及断开按键的瞬间均伴随有一连串的抖动。抖动时间
41、的长短由按键的机械特性决定,一般为 5-10ms。如图 5.4 所示:图 5.4 按键时的抖动按键的闭合稳定时间的长短由操作的按键动作决定,一般为零点几秒至数秒。按键抖动会引起被多次。为确保 FPGA 对键的闭合仅作一次处理,必须去除按键抖动。通常在按键较少时可用硬件方法消除抖动,一般采用 RS 触发器作为常用的消抖电路,如果按键较多时,常用消除抖动。在 EDA 的设计应用中,消抖的方法即可使用 RS 触发器进行消抖,也可通过检测按键按下的时间进行消抖。消抖模块的 VHDL 部分源程序设计与器件图(图 5.5)及仿真图(图 5.6)如下:闭合抖动后沿抖动前沿抖动ARCHITECTURE ARC
42、 OF XDOU IS SIGNAL CP:STD_LOGIC;SIGNAL JSQ:EGER RANGE 0 TO 3;BEGINPROS(CLK)BEGINIF (CLK EVENT AND CLK= 1 ) THEN IF X=1 THENIF JSQ=3 THEN JSQ=JSQ;ELSEJSQ=JSQ+1; END IF;IF JSQ=1 THEN CP=1;ELSECP=0; END IF图 5.5 消抖模块的器件图键盘消抖模块 XDOU 的波形仿真如图 5.6 所示:图 5.6 键盘消抖模块 XDOU 的波形仿真工作原理:本模块描述的防抖动电路属于计数器型防抖动电路。其工作原理是
43、,设置一个模值为 4 的控制计数器,在人工按键 KEY=1时,执行加 1 计数;KEY=1时,计数器进入状态 0。计数器只在状态 2 有输出。计数器进入状态 3,处于保持状态。总之,按键一次,计数器只有一个单脉冲输出。防抖动原理:按键 KEY 是产生抖动的根源,按照设计,只有按键持续时间大于 3 个时钟周期,计数器输出才可能产生有效的正跳变,输出一个单脉冲。由于机械开关抖动产生的毛刺宽度小于 3 个时钟周期,因而毛刺作用不可能使计数器有输出,防抖动目的得以实现。从上图的仿真结果可看出模块的正确性。5.4.3时钟分频电路模块在基于 EDA 技术的数字电路系统设计中,分频电路应用十分广泛。常常使用
44、分频电路来得到数字系统中各种不同频率的控制信号。所谓分频电路,就是将一个给定的频率较高的数字输入信号经过适当处理后,产生一个或数个频率较低的数字输出信号。分频电路本质上是加法计数器的变种,其计数值有分频常数 N=fin/fout 决定,其输出不是一般计数器的计数结果,而是根据分频常数对输出信号的高,低电平控制。本设计需要一个计时范围为 0.01s59 分 59.99 秒的秒表,首先需要获得一个比较精确的计时基准信号,这里时周期为 1/100 s 的计时脉冲,所以采用一个标准时钟信号源 1KHZ 经分频后获得一个精确的 100HZ 的脉冲。1KHZ 100HZ 分频器的部分源程序与器件图(图 5
45、.7)及仿真图(图 5.8)如下:ARCHITECTURE rtl OF clk_div10 ISSIGNAL clk_temp :STD_LOGIC;BEGINPROS(clk_in)VARIABLE counter:EGER RANGE 0 TO 15;BEGINIF (clk_inEVENT AND clk_in=1) IF (counter = 9) THENCounter := 0;Clk_out = 1; ELSECounter :=counter +1 ; Clk_out = 0;END IF;THEN图 5.7 分频器的器件图用于 10 分频电路模块 clk_div10 的波形
46、仿真如图 5.8 所示:图 5.8 分频电路模块 clk_div10 的波形仿真图功能说明:如上图所示的 10 分频电路模块,输入时钟信号变为分频输出信号,分频常数 N=fin/fout。可知分频为 10 分频,从仿真结果可看出模块的正确性。5.4.4计时模块计时模块执行计时功能,计时方法和计算机一样是对标准时钟脉冲计数。在本次设计中,采用异步计数器的方法,用硬件描述语言描述一个异步计数器,将低/计数器的输出作为高/低位计数器的时钟信号,在本设计中要用到两个 60 进制计数器,和一个 100 进制计数器cnt60 计数模块:是一个多用计时模块,既可作计秒电路又可作计分电路调用。(1)用于秒钟计
47、时的 cnt60_1 的 VHDL 部分源程序与器件图(图 5.9)及仿真图(图 5.10)如下:ARCHITECTURE CNT60_1_ARC OF CNT60_1 ISBEGINPROS(CLK,CLR)VARIABLE BEGINIF CLR=0 THEN CNT0:=0000;CNT1:=0000;T1:STD_LOGIC_VECTOR(3 DOWNTO 0);ELSIF CLKEVENT AND CLK=1 THEN IF EN=1 THENIF CNT1=0101 and cnt0= 1000THEN CNT0:=1001; CO=1;elsif cnt01001 thenT0+
48、1;else cnt0:=0000;IF CNT10101 THEN图 5.9 秒钟计时的器件图程序说明:clk 为信号时钟输入端;clr 为复位端;co 为进位信号输出端;sec1:秒信号的输出端;sec0: 秒信号的低位输出端。用于秒计时器CNT60_1 的波形仿真如图 5.10 所示:图 5.10 用于秒计时器 CNT60_1 的波形仿真图功能说明:秒进制为 60 进制,到 6 会有进位,低位为 10 进制,可以证明模块的正确性。(2)用于分钟计时的 CNT60_2 的 VHDL 的部分源程序与器件图(图 5.11)及仿真图(图 5.12)如下:IF CLR=0 THEN CNT1:=0
49、000;ELSIF CLKEVENT AND CLK=1 THEN IF EN=1 THENIF CNT1=0101 and cnt0= 1000THEN CNT0:=1001; CO=1;elsif cnt01001 thenT0+1;else cnt0:=0000;IF CNT10101 THENt1+1;else cnt1:=0000;图 5.11 分钟计时的器件图程序说明:clk 为信号时钟输入端;clr 为复位端;co 为进位信号输出端;min1:秒信号的输出端;min0: 秒信号的低位输出端。用于分计时器CNT60_2 的波形仿真如图 5.12 所示:图 5.12 用于分计时器 C
50、NT60_2 的波形仿真图位为 6 进制,低位为 10 进制,当 min0=9 的时候,min1 在下一时刻功能说会增 1,可以证明模块的正确性。(3)m100:输出值为 0.01s 和 0.1s 。其 VHDL 部分源程序与器件图(图 5.13)及仿真图(图 5.14)如下:beginco=1 when (qh=1001 and ql=1001) else 0;pros(clk,reset,pause)beginif(reset=0) then qh=0000; ql=0000;elsif(pause=0)then qh=qh; ql=ql;elsif (clkevent and clk=1
51、) then if (ql=1001) thenql=0000;if (qh=1001) then qh=0000;else qh=qh+1; end if;else qlQQQQQQQQQQQ=0000000;END CASE;图 5.15显示模块的器件图7 段显示译的波形仿真如图 5.16 所示:图 5.16 7 段显示译的波形仿真图分析:D 为时钟脉冲输入信号,Q 是输出信号,明模块的正确性。:实现七段译码功能。证5.4.6溢出控制溢出控制信号控制:由 cnt60,cnt100 的 CO 进位输出信号连接在一起,通过与门 AND31 再输给蜂鸣器。当所有的计数器的 CO 进位输出为1时,
52、则驱动蜂鸣器工作,秒表系统发出蜂鸣声,产生溢出。5.4.7VHDL 顶层电路描述在本次设计中,在 VHDL 方面,我采用的是文本表示方法,以语言来描述顶层的电路,其部分描述程序及器件图(图 5.17)如下:ARCHITECTUREARTOF CLOCKISCOMPONENT CLK_DIV10 PORT(CLK:IN STD_LOGIC;CLK_OUT:OUT STD_LOGIC); END COMPONENT;COMPONENT FDOU PORT(CLK,DIN:IN STD_LOGIC;DOUT:OUT STD_LOGIC); COMPONENTKZQPORT(CLK,CLR,A,B:I
53、N STD_LOGIC; Q,MIN_EN,SEC_EN,TSEC_EN:OUT STD_LOGIC);END COMPONENT; COMPONENT CNT60_1SEC1,SEC0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);ENDCOMPONENT;图 5.17 顶层电路的器件图整个数字秒表设计完成后,使得原来需要十几块即可实现。组成的计数字秒表,现在只用一块结论本文利用 EDA 技术中的 Max+plus作为开发工具 ,设计了一款基于 FPGA 的数字式秒表 ,并对其进行仿真。整个秒表系统的时钟信号源由实验板上的 1KHZ 的时钟信号经分频而得的 100HZ 的
54、时钟信号。设计主要分为 5 个电路模块。在设计电路的时候 ,要遵循从上到下的设计原则。该数字式秒表具有清零功能 ,能够在计时过程中随时停止计时 ,恢复到初始状态。且该秒表还有启/停功能,及计时长度的模式选择功能。通过按 MODE 键选择计时长度方式 0,方式 1,分别计时 59 分 59.99 秒,59.99 秒。实验证明该秒表工作正常 ,基本上已达到了预期的设计要求。应用 VHDL 的过程中让正到了其并行运行与其他顺序执行的差别及其在电路设计上的优越性。用 VHDL 硬件描述语言的形式来进行数字系统的设计方便灵活,利用 EDA进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开
55、发成本,这种设计方法在数字系统设计中发挥越来越重要的作用该数字式秒表具有清零功能 ,能够在计时过程中随时停止计时 ,恢复到初始状态。参考文献M.西安:电子科技大学1234510.6,.VHDL 实用,2000.1,34.,延明,.数字逻辑设计实验技术与 EDA 工具M.:邮电大学,2003.,. VHDL 与数字电路设计 M.:科学, 2001.,2000. 2730.曾繁泰,陈美金.VHDL 程序设计M.:,.EDA 技术与 CPLD/FPGA 开发应用简明M.:,2007.8,.VHDL 和 MAX+PLUSII 在设计数字电路中的应用J.现代电子技术.2004,19:109111.789
56、,.VHDL 数字系统设计与次综合M.:电子工业,2002.351352.VHDL 语言程序设计及应用M.:邮电大学,2001.278280.,.VHDL 硬件描述语言与数字逻辑电路设计M.西安:西安电子科技大学,1999.56. 1011.基于 FPGA 的数字式秒表设计J.陕西工学院学报.2004,20(4):2123.,.EDA 技术及应用M.西安:电子科技大学,2001.附录各个电路模块的源程序 1.主控电路模块源程序: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITYKZQ ISPORT(CLK:IN STD_LOGIC; CLR:IN
57、 STD_LOGIC; A:IN STD_LOGIC; B:IN STD_LOGIC;Q,MIN,SEC,TSEC:OUT STD_LOGIC); END KZQ;ARCHITECTURE a OF KZQ IS BEGINPROS(CLK,CLR)VARIABLE TMP:STD_LOGIC; BEGINIF CLR=0 THEN TMP:=0;ELSIF CLKEVENT AND CLK=1 THEN IF A=1 THENTMP:=NOT TMP; END IF;END IF; Q=TMP;END PROS;PROS(CLK,CLR) BEGINIF CLR=0 THEN MIN=0;S
58、EC=0; TSEC=0;ELSIF CLKEVENT AND CLK=1 THEN IF B=1 THENMIN=0;SEC=1; TSEC=1;ELSEMIN=1;SEC=1; TSEC=1;END IF; END IF;END PROS;END a;2消抖模块的 VHDL 源程序设计: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARILL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY XDOU ISPORT(CLK,X:IN STD_LOGIC; Y:OUT STD_LOGIC
59、);END ENTITY XDOU; ARCHITECTURE ARC OF XDOU ISSIGNAL CP:STD_LOGIC;SIGNAL JSQ:EGER RANGE 0 TO 3; BEGINPROS(CLK)BEGINIF (CLK EVENT AND CLK= 1 ) THEN IF X=1 THENIF JSQ=3 THEN JSQ=JSQ;ELSEJSQ=JSQ+1; END IF;IF JSQ=1 THEN CP=1;ELSECP=0; END IF;ELSE JSQ=0; END IF;END IF; Y=CP;END PRO END ARC ;S;3时钟分频电路模块VH
60、DL 源程序:1KHZ 100HZ 分频器的源程序clk_div10.vhd LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARILL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clk_div10 ISPORT(clk_in :IN STD_LOGIC;clk_out :OUT STD_LOGIC); END clk_div10;ARCHITECTURE rtl OF clk_div10 IS SIGNAL clk_temp :STD_LOGIC;BEGINPROS(clk_in)VA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 再保险承保行业相关项目经营管理报告
- 2024年声誉风险管理合同
- 2024年专业版:人工智能技术研发合同
- 2024年企业之选:优化合同流程的顶级软件盘点
- 2023年嘉兴市图书馆合同工招聘笔试真题
- 2024年儿童家具专项采购合同
- 2024年化工原料与产品购销合同
- 2024年个人二手房中介服务合同
- 具有汽车赛性质的娱乐行业相关项目经营管理报告
- 2024全新技术转让合同范本速览
- 广州版四年级上册Unit9说课
- 血管外科试题合集
- 新版人教版小学数学一年级上册课程纲要
- 形势与政策-论朝鲜半岛局势
- 通达信指标公式源码主力动向
- 潜油泵及潜油泵加油机讲义
- 医患沟通内容要求记录模板(入院、入院三日、术前、术后、出院)
- 第8章 腹部检查(讲稿)
- 浅谈深度教学中小学数学U型学习模式
- 湿法脱硫工艺计算书
- (医学PPT课件)NT检查规范
评论
0/150
提交评论