热电联产工程烟气脱硝工程液氨储存和供应系统初步设计完整版_第1页
热电联产工程烟气脱硝工程液氨储存和供应系统初步设计完整版_第2页
热电联产工程烟气脱硝工程液氨储存和供应系统初步设计完整版_第3页
热电联产工程烟气脱硝工程液氨储存和供应系统初步设计完整版_第4页
热电联产工程烟气脱硝工程液氨储存和供应系统初步设计完整版_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

1、毕毕业业设设计计(论论文文)题目: 基于 VHDL 的语音数字钟的设计 学 院 物理科学与工程技术 专 业 电子信息 班 级 08 电信 学 号 200812108120001 姓 名 陈世羽 指导老师 刘瑶老师 二 O 一一年 九 月 二十 日I摘 要本设计主要研究基于 VHDL 的语音数字钟的设计,该数字钟具有年、月、日、时、分、秒计数显示功能,以 24 小时循环计数;具有校对功能、整点报时以及清零、使能功能。本设计主要是在介绍了 EDA 及 VHDL 一些相关基本知识的基础上,进一步采用 EDA 技术,以硬件描述语言 VHDL 为系统逻辑描述手段设计文件,在Max+plusII 工具软件

2、环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个多功能语音数字钟,最后通过仿真出时序图实现预定功能。其中,重点叙述了数字钟的设计原理和分模块实现的方法,详细介绍了各模块的设计程序并给出了各模块的波形仿真图及分析,最后通过在Max+plusII 上进行时序仿真,调试运行,在硬件测试后,验证了所设计的系统达到了预先设计目标。通过这次的设计更进一步地增强了实验的动手能力,对数字钟的工作原理及 EDA 技术也有了更加透彻的理解。关键词:VHDL EDA 数字钟 仿真图IIThe Design of a Voice Digital Clock Based on VHDLAbstractThe

3、 design for a multi-functional digital clock, with a year, month, day, hours, minutes and seconds count display to a 24-hour cycle count; have proof functions and the whole point timekeeping function. The design is mainly the introduction of the EDA and some related basic knowledge of VHDL, based on

4、 the further use of EDA technology,hardware-description language VHDL description logic means for the system design documents, in MaxplusII tools environment, a top-down design, by the various modules together build a voice digital clock. Finally, a timing diagram of the simulation to achieve the in

5、tended function. Describes the key design principles and digital clock sub-module approach. Finally,by Max + plusII on timing simulation, debugging and running, by the hardware testing, the two systems designed are verified to realize the advanced design goal.Through this experimental design further

6、 enhances the ability of the digital clock works and EDA technology has a more thorough understanding.Keywords: VHDL EDA digital clock Simulation diagramIII目 录第一章绪论 .11.1 选题背景 .11.1.1 课题相关技术的发展.11.1.2 课题研究的必要性.21.2 课题研究的内容.2第二章 EDA 概述 .32.1 EDA 简介 .32.2 可编程逻辑器件 FPGA .32.3 硬件描述语言 VHDL .42.3.1 VHDL 的特

7、点.52.3.2 VHDL 的设计结构.62.3.3 VHDL 的设计步骤.62.4 MAX+plus 概述.7第三章 数字钟的设计要求及总体设计 .83.1 设计要求 .83.2 总体设计.83.2.1 设计框图.83.2.2 设计原理图.93.3 设计原理.103.4 各模块及其功能 .103.5 端口引脚名称 .11第四章 VHDL 程序设计.124.1 分频模块 .124.2 软件设计 .134.2.1 SECOND 模块.134.2.2 MINUTE 模块.154.2.3 HOUR 模块.174.2.4 扫描模块 .184.2.5 显示模块.204.2.6 定时闹钟模块.214.2.

8、7 日计数模块 .234.2.8 月计数模块 .254.2.9 年计数模块 .274.3 硬件测试及说明 .304.3.1 顶层模块原理图.30IV4.3.2 电子钟基本功能仿真结果.314.3.3 硬件测试说明.324.3.4 结论.32第五章 总结 .33参考文献 .35致 谢 .361第一章 绪论现代社会的标志之一就是信息产品的广泛使用,而且是产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。前者以微细加工技术为代表,而后者的代表就是电子设计自动化(electronic design autom

9、atic,EDA)技术。本设计采用的VHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计;支持结构、数据流、行为三种描述形式的混合描述、覆盖面广、抽象能力强,因此在实际应用中越来越广泛。ASIC是专用的系统集成电路,是一种带有逻辑处理的加速处理器。而FPGA是特殊的ASIC芯片,与其他的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点。钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、定时启闭电路、定时开关烘箱、通

10、断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。这次设计的内容就是在了解 VHDL 语言的一些基本语法和概念的基础上,进一步应用 VHDL,在 MAX+ plus II 的环境下设计一个电子钟,最后通过仿真出时序图实现预定功能。1.1 选题背景本节将从 EDA 应用开发技术与数字钟技术发展的客观实际出发,通过对该技术发展状况的了解,以及课题本身的需要,指出研究基于 VHDL 系统数字钟的设计与实现的必要性。1.1.1 课题相关技术的发展当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传统的电子产品

11、在设计上的显著区别师大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低。同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。EDA 技术正是为了2适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。美国 ALTERA 公司的可编程逻辑器件采用全新的结构和先进的技术,加上 MaxplusII(或最新的 QUARTUS)开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。EDA 技术,技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计

12、工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。最终形成集成电子系统或专用集成芯片的一门新技术。本设计利用 VHDL 硬件描述语言结合可编程逻辑器件进行的,并通过数码管动态显示计时结果。数字钟可以由各种技术实现,如单片机等.利用可编程逻辑器件具有其他方式没有的特点,它具有易学,方便,新颖,有趣,直观,设计与实验项目成功率高,理论与实践结合紧密,体积小,容量大,I/O 口丰富,易编程和加密等特点,并且它还具有开放的界面,丰富的设计库,模块化的工具以及 LPM 定制等优良性能,应用非常方便。因此,本设计采用可编程逻辑器

13、件实现。1.1.2 课题研究的必要性现在是一个知识爆炸的新时代。新产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人。数字化的钟表给人们带来了极大的方便。近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟

14、等等。1.2 课题研究的内容本设计主要研究基于 VHDL 的语3音数字钟的设计,要求时间以 24 小时为一个周期,显示时、分、秒。具有校时、报时功能以及清零、使能功能。3第二章 EDA 概述2.1 EDA 简介20 世纪 90 年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这

15、一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA 技术的迅速发展。EDA 是电子设计自动化( Electronic Design Automation)的缩写,在 20 世纪 90 年代初从计算机辅助设计( CAD)、计算机辅助制造(CAM)、计算机辅助测试( CAT)和计算机辅助工程( CAE)的概念发展而来的。EDA 技术就是以计算机为工具,设计者在EDA 软件平台上,用硬件描述语言 HDL 完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。 EDA 技术的出现,极大地提

16、高了电路设计的效率和可操作性,减轻了设计者的劳动强度。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA 技术的迅速发展。2.2 可编程逻辑器件FPGAFPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,与之相应的CPLD是复杂可编程逻辑器件(Complex Programmable Logic Device)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或4CPLD/

17、PGFA。CPLD/PGFA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。使用CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步。2.3 硬件描述语言 VHDL硬件描述语言 HDL(Hardwa

18、reDescriptionLanguage)诞生于 1962年。HDL 是用形式化的方法描述数字电路和设计数字逻辑系统的语言。主要用于描述离散电子系统的结构和行为。与SDL(SoftwareDescriptionLanguage)相似,经历了从机器码(晶体管和焊接)、汇编(网表)、到高级语言( HDL)的过程。VHDL 翻译成中文就是超高速集成电路硬件描述语言 ,他诞生于1982 年。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。 1987 年底,VHDL 被IEEE 和美国国防部确认为标准硬件描述语言 。自 IEEE 公布了 VHDL 的标准

19、版本,IEEE-1076(简称 87 版)之后,各 EDA 公司相继推出了自己的 VHDL 设计环境,或宣布自己的设计工具可以和VHDL 接口。此后VHDL 在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。 1993 年,IEEE 对 VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展 VHDL 的内容,公布了新版本的 VHDL,(即 IEEE标准的 1076-1993 版本)主要是应用在数字电路的设计中。现在, VHDL和 Verilog 作为 IEEE 的工业标准硬件描述语言,又得到众多EDA 公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专

20、家认为,在新的世纪中, VHDL 于 Verilog 语言将承担起大部分的数字系统设计任务。 目前,它在中国的应用多数是用 FPGA/CPLD/EPLD 的设计中。当然在一些实力较为雄厚的单位,它也被用来设计 ASIC。5VHDL 主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外, VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。 VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口 )和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了

21、外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点。2.3.1 VHDL 的特点应用 VHDL 进行系统设计,有以下几方面的特点 :1)功能强大VHDL 具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。 VHDL 是一种设计、仿真和综合的标准硬件描述语言。2)可移植性VHDL 语言是一个标准语言,其设计描述可以为不同的EDA 工具支持。它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另

22、一个工作平台。此外,通过更换库再重新综合很容易移植为ASIC 设计。3)独立性VHDL 的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA 及各种门阵列器件。4)可操作性6由于 VHDL 具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。5)灵活性VHDL 最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时可对设计进行仿真

23、模拟。所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。2.3.2 VHDL 的设计结构VHDL 描述数字电路系统设计的行为、功能、输入和输出。它在语法上与现代编程语言相似,但包含了许多与硬件有特殊关系的结构。VHDL 将一个设计称为一个实体 Entity(元件、电路或者系统),并且将它分成外部的可见部分(实体名、连接)和内部的隐藏部分(实体算法、实现)。当定义了一个设计的实体之后,其他实体可以利用该实体,也可以开发一个实体库。所以,内部和外部的概念对系统设计的VHDL 是十分重要的。外部的实体名或连接由实体声明 Entit

24、y 来描述。而内部的实体算法或实现则由结构体 Architecture 来描述。结构体可以包含相连的多个进程 process 或者组建 component 等其他并行结构。需要说明的是,它们在硬件中都是并行运行的。2.3.3 VHDL 的设计步骤采用 VHDL 的系统设计,一般有以下 6 个步骤:1)要求的功能模块划分;2)VHDL 的设计描述(设计输入);3)代码仿真模拟(前仿真);74)计综合、优化和布局布线;5)布局布线后的仿真模拟(后仿真);6)设计的实现(下载到目标器件)。2.4 MAX+plus 概述 EDA 技术的关键之一是 EDA 工具,EDA 工具是指以计算机为工作平台,融合

25、了应用电子技术、计算机技术、智能化技术最新成果而研制成的电子设计通用工具软件,主要能进行三方面的辅助设计工作: 1)PCB 印刷电路板设计2)ASIC(集成电路)设计3)电子系统设计(SOC)没有 EDA 技术的支持,想要完成超大规模集成电路的设计是很难想象的,反过来,生产制造技术的不断进步又必将对 EDA 技术提出新的要求。由于集成电路制造技术日新月异,电路的设计日趋复杂。为了能在电路实现之前,完全掌握操作环境因素(如电源电压、温度等)对电路的影响,利用电脑辅助设计进行电路模拟与分析,并进行输入与输出信号响应的验证,可有效地节省产品开发的时间与成本。Altera 公司推出的 MAX+plus

26、软件是专门用于电子电路仿真的“虚拟电子工作台”软件,它是目前全球最直观、最高效的 EDA 软件。它的功能强大,能够提供电阻、电容、三极管、集成电路等数十大类几千种元件,能够提供示波器、万用表等十几种常用的电子仪器;具有强大的电路图绘制功能,可绘制出符合标准的电子图纸;它还具有强大的波形显示功能,并且结果可轻松放入各类文档。用该软件进行设计、分析非常方便。本文在 MAX+plus基础上设计电子时钟,是由数字集成电路构成、用数码管显示的一种现代计时器,与传统机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此广泛使用。MAX+plus是美国加州 Altera 公司推出的专

27、门用于电子线路仿真实验与设计的“虚拟电子工作平台” 。 MAX+plus是一种在电子技术工程与电子技术教学中广泛应用的优秀计算机仿真软件,被公认为是最易使用,人机界面最友善的数字系统开发软件,特别适合初学者使用。8第三章 数字钟的设计要求及总体设计3.1 设计要求1)具有时、分、秒计数显示功能,以 24 小时循环计时;2)具有清零、使能功能3)具有调节小时、分、秒功能;4)具有整点报时功能;5)具有显示年、月、日的功能;3.1.1 功能要求分析根据以上数字钟的功能要求,需要完成以下几个部分:1)时钟模块:由试验箱内部时钟提供,对计数器提供计数时钟信号;2)秒钟模块:对秒进行 60 进制循环计数

28、,并向分钟产生进位,同时具有调分功能;3)分钟模块:对分进行 60 进制循环计数,并向小时产生进位,同时具有调时功能4)小时模块:对小时进行 24 进制循环计数。3.2 总体设计3.2.1 设计框图9时计数器标准秒信号脉冲秒计数器分计数器分脉冲信号号时脉冲信号秒输出分输出时输出六段显示译码器译码LED 七段显示器显示“时”“分”“秒”图 3.2.1 设计框图3.2.2 设计原理图clkresetsetminenmindaout6.0clkclk1resetsethourenhourdaout6.0clkresetdaout5.0second:u1hour:u3clkresetsetminset

29、hoursecond_daout6.0minute_daout6.0hour_daout5.0minute:u2图 3.2.2 设计原理图10该数字电子钟的原理图如上图所示,它由一个秒计数器(second.u1)、一个分计数器(minut.u2)、一个时计数器(hour.u3)组成。他们均由各子模块源程序生成。然后根据设计原理连接而成。能实现各子模块的功能。其中:输入: CLK时钟脉冲(可以任意设置)RESET复位信号SETMIN分加 1 信号,SETHOUR时加 1 信号输出: SECOND_DAOUT秒输出MINUTE_DAOUT分输出 HOUR_DAOUT时输出3.3 设计原理电子时钟是

30、一个将“时”“分”“秒”显示于人的视觉器官的计时装置。它的计时周期为 24 小时;显示满刻度为 23 时 59 分 59 秒,另外具备校时功能。因此,一个基本的数字钟电路主要由“时”“分”“秒”计数器校时电路组成。将标准秒信号送入“秒计数器”,“秒计数器”采用 60进制计数器,每累加 60 秒发送一个“分脉冲”信号,该信号将被送到“分计数器”。“分计数器”也采用 60 进制计数器,每累加 60 分发送一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用 24 进制计数器,可实现对一天 24 小时的累计。译码显示电路“时”“分”“秒”计数器的输出状态六段显示译码器译码。通过六位七段显

31、示器显示出来。校时电路器是用来对“时”“分”“秒”显示数字进行校时调整的,可以根据当前需要的时间来设置电子时钟的时间,使它从这个时间开始计时。也可以对电子钟复位,重新开始计时。3.4 各模块及其功能电子钟计数采用层次化设计,将设计任务分成若干个模块,规定每一模块的功能和各模块之间的接口。1)SECOND 模块:用来对秒进行计时,当记到计数器的低四位为 1001 时,若高三位不是 101 时,则秒计数器加 7,目的是使计数值变为 BCD 码。若高三位是 101 时,则有一进位。当计数11器的低四位不为 1001 时,计数器加 1。SECOND 模块给 MINUTE 的时钟由SETMINUTE 和

32、它本身记到 60 的进位两部分组成。2)MINUTE 模块:用来对分进行计时,当记到计数器的低四位为 1001 时,若高三位不是 101 时,则分计数器加 7,目的是使计数值变为 BCD 码。若高三位是 101 时,则有一进位。当计数器的低四位不为 1001 时,计数器加1。MINUTE 模块的时钟由 SETMIN 和 SECOND 记到 60 的进位两部分组成。3)HOUR 模块:用来对时进行计数,当记到计数器的低四位为 1001 时,若高三位小于 010 时,则时计数器加 7,目的是使计数值变为 BCD 码。当计数器的高三位小于 010,低四位小于 1001 时,计数器加 1;若当计数器记

33、到0100100 时,则有一进位。HOUR 模块的时钟由 SETHOUR 和 MINUTE 记到 60的进位两部分组成。4)扫描模块 SELTIME:输入为秒(含个十位)、分、时、扫描时钟CLK1K,输出为 D 和显示控制信号 SEL。5)整点报时功能模块 ALERT:输入为分秒信号,输出为高频声控Q1K和 Q500。6)顶层 CLOCK_TOP 模块:用来对元件进行例化,以及对端口进行映射。同时整个计数器有清零,调时,调分功能。3.5 端口引脚名称输入:CLK, RESET, SETMIN, SETHOUR,STOP输出:SPERK, SECOND6.0, MIN6.0, HOUR6.0 1

34、2第四章 VHDL 程序设计4.1 分频模块晶体振荡器是构成数字式时钟的核心,振荡器的稳定度及频率的精度决定了数字钟计时的准确程度,它保证了时钟的走时准确及稳定。石英晶体的选频特性非常好,只有某一频率点的信号可以通过它,其它频率段的信号均会被它所衰减,而且,振荡信号的频率与振荡电路中的R、C元件的数值无关。因此,这种振荡电路输出的是准确度极高的信号。然后再利用分频电路,将其输出信号转变为秒信号。本系统使用的晶体振荡器电路给数字钟提供一个频率稳定准确的 40MHz的方波信号,其输出至分频电路。分频电路的逻辑框图如图 4-2 所示。图 4.1 分频电路模块电路中采用 Max+plusII 元器件库

35、中的计数器 7490 进行硬件分频。经分频后输出 1HZ 的标准秒信号 CLK1、4MHZ 的按键扫描信号、1KHZ 的按键去抖信号和 500HZ 用于报时模块的输入信号。分频电路主要功能有 2 个,一是产生标准秒脉冲信号;二是可提供整点报时所需要的高、低频率信号。13 图 4.2 顶层设计4.2 软件设计根据数字电子钟的设计原理,按照自定向下的设计思路,编写各个模块的VHDL 源程序。4.2.1 SECOND 模块1)源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SE

36、COND IS PORT (CLK: IN STD_LOGIC; -系统时钟信号 RESET:IN STD_LOGIC; -系统复位信号 SETMIN:IN STD_LOGIC; -分设置信号 ENMIN: OUT STD_LOGIC; -分计数时钟信号 DAOUT: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -秒计数值END ENTITY SECOND;ARCHITECTURE ART OF SECOND IS SIGNAL COUNT :STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL ENMIN_1,ENMIN_2:STD_LOGIC;B

37、EGIN14DAOUT=COUNT;ENMIN_2=(SETMIN AND CLK);ENMIN=(ENMIN_1 OR ENMIN_2);PROCESS(CLK,RESET,SETMIN) BEGIN IF (RESET=0)THEN COUNT=0000000; ENMIN_1=0; ELSIF(CLKEVENT AND CLK=1)THEN IF(COUNT(3 DOWNTO 0)=1001)THEN IF(COUNT16#60#)THEN IF(COUNT=1011001)THEN ENMIN_1=1; COUNT=0000000;ELSECOUNT=COUNT+7; END IF;E

38、LSE COUNT=0000000;END IF;ELSIF(COUNT16#60#)THENCOUNT=COUNT+1;ENMIN_1=0;ELSE COUNT=0000000; ENMIN_1=0; END IF;END IF; END PROCESS;END ART;2)仿真波形图:15图 4.2.1 SECOND 模块仿真波形图仿真波形分析:由仿真波形图可知,当 clk 和 carry 为上升沿时,sec1 输出由 9 变为 0,并且 sec1 都是由 0 到 9 循环,sec2 输出由 5 变为0,并且 sec2 都是由 0 到 5 循环,所以,这是一个 60 进制的秒控制模块。4.

39、2.2 MINUTE 模块1)源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MINUTE IS PORT (CLK: IN STD_LOGIC; -分计数时钟信号 CLKS: IN STD_LOGIC; -时设置时钟信号 RESET: IN STD_LOGIC; -系统复位信号 SETHOUR:IN STD_LOGIC; -时设置信号 ENHOUR: OUT STD_LOGIC; -时计数时钟信号 DAOUT: OUT STD_LOGIC_VECTOR(6 DOWNTO

40、 0); -分计数值END ENTITY MINUTE; ARCHITECTURE ART OF MINUTE IS SIGNAL COUNT :STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL ENHOUR_1,ENHOUR_2:STD_LOGIC;16BEGINDAOUT=COUNT;ENHOUR_2=(SETHOUR AND CLKS);ENHOUR=(ENHOUR_1 OR ENHOUR_2);PROCESS(CLK,RESET,SETHOUR) BEGIN IF (RESET=0)THEN COUNT=0000000; ENHOUR_1=0; ELSIF(CL

41、KEVENT AND CLK=1)THEN IF(COUNT(3 DOWNTO 0)=1001)THEN IF(COUNT16#60#)THEN IF(COUNT=1011001)THEN ENHOUR_1=1; COUNT=0000000;ELSE COUNT=COUNT+7; ENHOUR_1=0; END IF;ELSE COUNT=0000000;END IF;ELSIF(COUNT16#60#)THENCOUNT=COUNT+1;ENHOUR_1=0 AFTER 100 NS;ELSE COUNT=0000000;ENHOUR_1=0; END IF;END IF; END PROC

42、ESS;END ART;172)仿真波形图:图 4.2.2 MINUTE 模块仿真波形图仿真波形分析:由仿真波形图可知,当 clk 和 carry 为上升沿时,min1 输出由 9 变为 0,并且 min1 都是由 0 到 9 循环,min2 输出由 5 变为0,并且 min2 都是由 0 到 5 循环,所以,这是一个 60 进制的分控制模块。4.2.3 HOUR 模块1)源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY HOUR IS PORT (CLK: IN STD_

43、LOGIC; -时计数时钟信号 RESET: IN STD_LOGIC; -系统复位信号 DAOUT: OUT STD_LOGIC_VECTOR(5 DOWNTO 0); -时计数值END ENTITY HOUR;ARCHITECTURE ZRT OF HOUR IS SIGNAL COUNT :STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINDAOUT=COUNT;PROCESS(CLK,RESET) BEGIN IF (RESET=0)THEN COUNT=000000;18 ELSIF(CLKEVENT AND CLK=1)THEN IF(COUNT(3 DOWNTO

44、 0)=1001)THEN IF(COUNT16#23#)THEN COUNT=COUNT+7; ELSE COUNT=000000;END IF;ELSIF(COUNT16#23#)THENCOUNT=COUNT+1;ELSE COUNT=000000; END IF;END IF; END PROCESS;END ZRT;2)仿真波形图:图 4.2.3 HOUR 模块仿真波形图仿真波形分析:由仿真波形图可知,当 clk 为上升沿时,hour1 输出由9 变为 0,并且 hour1 都是由 0 到 9 循环,hour2 输出由 2 变为 0,并且hour2 都是由 0 到 2 循环,所以,这

45、是一个 24 进制的时控制模。4.2.4 扫描模块1)源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;19ENTITY MUX6_1SCAN IS PORT(CLKSCAN,RESET:IN STD_LOGIC; IN1,IN2,IN3,IN4,IN5,IN6:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DATA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END M

46、UX6_1SCAN;ARCHITECTURE RT1 OF MUX6_1SCAN IS SIGNAL COUNT:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN PROCESS(CLKSCAN,RESET) BEGIN IF RESET=1THEN COUNT=000; ELSIF CLKSCANEVENT AND CLKSCAN=1THEN IF COUNT=101THEN COUNT=000; ELSE COUNTDATADATADATADATADATADATA=IN6;END CASE;20END PROCESS; SELDOUTDOUTDOUTDOUTDOUTDO

47、UTDOUTDOUTDOUTDOUTDOUT=0000000; END CASE; END PROCESS;END BEHAV;2)仿真波形图:图 4.2.5 显示模块仿真波形图4.2.6 定时闹钟模块1)源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ALERT ISPORT(M1,M0,S1,S0:IN STD_LOGIC_VECTOR(3 DOWNTO 0); CLK:IN STD_LOGIC; Q500,QLK:OUT STD_LOGIC);END ALERT;ARCHITECTURE SSS_ARC OF ALERT IS

48、BEGIN22 PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=1 THEN IF M1=0101 AND M0=1001 AND S1=0101 THEN IF S0=0001 OR S0=0011 OR S0=0101 OR S0=0111 THEN Q500=1; ELSE Q500=0; END IF; END IF;IF M1=0101 AND M0=1001 AND S1=0101 AND S0=1001 THENQLK=1;ELSEQLK=0;END IF;END IF;END PROCESS;END SSS_ARC;2)仿真波形图:图 4.2.6

49、定时闹钟模块仿真波形图(不带报警中断)23图 4.2.7 定时闹钟模块仿真波形图(带有报警中断)图中 CLK 为内部时钟,当 DAIN 为 00 时报时。在 SPEAK 上产生一个一定频率的波形,就可以驱动蜂鸣器。并能持续 10 秒钟。如果在报警过程钟,是报警中断 STOP 置高电平,则报警中止,置低电平时报警恢复。4.2.7 日计数模块由于一年中各个月份的日的长短不同,共有 28、29、30 和 31 天四种情况,可知日由年和月共同决定,如表 4-1。年中 0 表示闰年,1 表示平年;月中 0 表示 1、2、3、5、7、8、10 和 12 月,1 表示其它月份;二月中 1 表示 2 月,0

50、表示其它月份。源程序如下:ENTITY RI ISPORT(ENL,RES,CLK,RADD,RDEC:IN STD_LOGIC; SEL:IN STD_LOGIC_VECTOR(2 DOWNTO 0); A,B:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CA:OUT STD_LOGIC);END RI;ARCHITECTURE SEC OF RI ISSIGNAL SR0,SR1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(SEL)BEGIN IF SEL=001 THEN SR0=0001;24 SR1=0011; END

51、IF; IF SEL=011 THEN SR0=0000; SR1=0011; END IF; IF SEL=100 THEN SR0=1001; SR1=0010; END IF; IF SEL=101 THEN SR0=1000; SR1=0010; END IF;END PROCESS;PROCESS(ENL,CLK,RES)VARIABLE R0,R1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RES=1 THEN R0:=0000; R1:=0000; CA=0; ELSIF CLKEVENT AND CLK=1 THEN CA=0; IF RADD=

52、1 OR ENL=1 THEN IF R0=SR0 AND R1=SR1 THEN R0:=0001; R1:=0000; CA=1; ELSIF R01001 THEN R0:=R0+1; CA0000 THEN R0:=R0-1; ELSE R0:=1001; R1:=R1-1; END IF; END IF; END IF; A=R0;B=R1;END PROCESS;END SEC;程序中第一个进程主要是对日的长短的设置,sr0 和 sr1 分别是日的低位和高位的信号,它们的值由输入 sel2.0决定。sel0由年计数模块输入,sel1和 sel2由月计数模块输入。第二个进程主要实现计

53、数和加减控制。日计数模块的时序仿真图如下图所示,仿真图满足设计的要求。图 4.2.8 日计数仿真时序图4.2.8 月计数模块输出 ERYUE 端口接日模块的 sel2,YSEL 端口接 sel1 。源程序如下LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY YUE IS26PORT(ENL,RES,CLK,YADD,YDEC:IN STD_LOGIC; A,B:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); ERYUE,YSEL,CA:OUT STD_LOGIC);

54、END YUE;ARCHITECTURE SEC OF YUE ISBEGINPROCESS(ENL,CLK,RES)VARIABLE Y0,Y1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RES=1 THEN Y0:=0000; Y1:=0000; CA=0; ELSIF CLKEVENT AND CLK=1 THEN CA=0; IF YADD=1 OR ENL=1 THEN IF Y0=0010 AND Y1=0001 THEN Y0:=0001; Y1:=0000; CA=1; ELSIF Y01001 THEN Y0:=Y0+1; CA0000 THE

55、N Y0:=Y0-1; ELSE Y0:=1001; Y1:=Y1-1; END IF; END IF;27 END IF;IF (Y0=0100 OR Y0=0110 OR Y0=1001 ) AND Y1=0000)OR (Y0=0000 AND Y1=0001) THEN YSEL=1; ELSE YSEL=0;END IF;IF Y0=0010 AND Y1=0000 THEN ERYUE=1; ELSE ERYUE=0;END IF; A=Y0;B=Y1;END PROCESS;END SEC;其仿真时序图如下图所示。仿真图中有毛刺出现,但并不会对本模块的计数产生影响,满足本设计的需

56、要。图 4.2.9 月计数模块仿真波形图4.2.9 年计数模块年计数模块的输出 NSEL 端口接日模块的 sel0。其它端口的功能与上述模块类似。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;28USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY NIAND ISPORT(ENL,RES,CLK,NADD,NDEC:IN STD_LOGIC; A,B,C,D:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); NSEL:OUT STD_LOGIC);END N

57、IAND;ARCHITECTURE ND OF NIAND ISBEGIN PROCESS(RES,ENL,CLK)VARIABLE N0,N1,N2,N3:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN IF RES=1 THEN N0:=0000;N1:=0000;N2:=0000;N3:=0000; ELSIF CLKEVENT AND CLK=1 THEN IF NADD=1 OR ENL=1 THEN IF N00000 THEN N0:=N0-1 ;29 ELSIF N0=0000 AND N1=0000 AND N2=0000 AND N3=0000 THE

58、N N0:=1001;N1:=1001;N2:=1001;N3:=1001; ELSIF N0=0000 AND N1=0000 AND N2=0000 THEN N0:=1001; N1:=1001; N2:=1001; N3:=N3-1; ELSIF N0=0000 AND N1=0000 THEN N0:=1001; N1:=1001; N2:=N2-1; ELSIF N0=0000 THEN N0:=1001; N1:=N1-1; END IF; ELSE N3:=0010; END IF; IF (N0(0)=0 AND N0(1)=0 AND N1(0)=0)OR(N0(0)=0

59、AND N0(1)=1 AND N1(0)=1) THEN NSEL=0; ELSE NSEL=1;END IF;END IF;A=N0;B=N1;C=N2;D=N3; END PROCESS; END ND;其仿真时序图如下图所示,满足设计的要求。30图 4.2.10 年计数模块仿真波形图4.3 硬件测试及说明该数字钟以 24 小时进行计时,可对分钟和小时进行设定,并且能在整点进行报警提醒,且报警可以被中断。本设计采用电路模式 5 进行设计,具体功能和说明如下:4.3.1 顶层模块原理图PIN_93VCCCLK1INPUTPIN_1VCCSTOPINPUTPIN_17VCCCLKINPUTP

60、IN_2VCCRESETINPUTPIN_7VCCSETMININPUTPIN_10VCCSETHOURINPUTPIN_129SPEAKOUTPUTPIN_39PIN_40PIN_41PIN_42PIN_47PIN_48PIN_49SECOND6.0OUTPUTPIN_69PIN_70PIN_71PIN_72PIN_73PIN_74PIN_75MIN6.0OUTPUTPIN_85PIN_96PIN_97PIN_98PIN_99PIN_103HOUR5.0OUTPUTCLKCLKSRESETSETHOURENHOURDAOUT6.0MINUTEinst1CLKRESETSETMINENMIND

温馨提示

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

评论

0/150

提交评论