VHDL设计FPGA数字系统:电子万年历_第1页
VHDL设计FPGA数字系统:电子万年历_第2页
VHDL设计FPGA数字系统:电子万年历_第3页
VHDL设计FPGA数字系统:电子万年历_第4页
VHDL设计FPGA数字系统:电子万年历_第5页
已阅读5页,还剩34页未读, 继续免费阅读

下载本文档

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

文档简介

1、大连海事大学装订线毕 业 论 文二一四 年 六 月VHDL设计FPGA数字系统:电子万年历专业班级: 电子信息工程10-2班 姓 名: 牛舒雅 指导老师: 严 飞 信息科学技术学院摘 要随着EDA(电子设计自动化)技术的发展和应用领域的扩大,EDA技术在电子信息、通信、自动化控制及计算机应用领域的重要性日益突出。钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭路灯等。所有这些,都是以钟表数字化为基础的。因此,研究基于FPGA的电子万年历及扩大其应用,有非常现实的意义。EDA的关键技术之一是用形式

2、化方法来描述数字系统的硬件电路、即用所谓的硬件描述语言来描述硬件电路。本设计是用VHDL语言编程实现基于FPGA的电子万年历。在设计中,首先介绍了万年历的设计思路,确定各功能模块,而后在Quartus II开发环境中用VHDL语言对各模块进行编程,编译成功后完成仿真,并逐一调试程序使各模块达到设计目的。然后,将各模块生成的元器件连接起来,形成顶层原理图文件,进行系统仿真。最后,对顶层原理图进行引脚设定,并下载到试验箱验证,证明系统的可行性。关键字:EDA;VHDL ;万年历 ; Quartus IIIIIABSTRACT With the development of EDA (electro

3、nic design automation) technology and expansion of application fields ,the importance of EDA technology in electronic information, communication, auto control, and computer applications is becoming increasingly prominent. EDA technology is the core of the modern electronic design techniques, which r

4、ely on powerful computers . In EDA tools software platform, computer automatically completes logic simplification,logical partitions, logic synthesis , logic optimization ,logical simulation and other functions until the electronic circuit system achieves the stated performance. However, the realiza

5、tion of these function bases on the description of the system using the hardware description language HDL (Hardware Description language) . One of the key technologies of the EDA is to use formal methods to describe digital systems hardware circuit, which uses the so-called hardware description lang

6、uage to describe the hardware circuit.The design is the calendar based on VHDL language. Firstly, in which ,I introduce ideas about designing the calendar. In addition, I compile and simulate the program of different modules in the Quartus II development environment and debug one by one to make diff

7、erent modules meet objectives of the design. Secondly, I take advantage of all components,which is created according to program to generate top-level file . Finally, I make pin settings and download to the test chamber to prove the feasibility of the system.Key words: EDA;VHDL ;calendar;Quartus II目

8、录第1章 绪论11.1钟的起源11.2钟的现状以及发展11.3电子万年历的简介11.4VHDL设计FPGA数字系统:电子万年历的设计要求21.5 本章小结2第2章 开发技术基础32.1 EDA技术简介32.1.1 EDA技术基本概述32.1.2EDA技术发展与发展方向32.2FPGA基本介绍42.2.1FPGA简介42.2.1FPGA组成52.3VHDL语言概述52.3.1VHDL语言特点62.3.2VHDL语言结构72.4Quartus II软件介绍72.5ZY11EDA13BE实验系统介绍82.5.1 ZY11EDA13BE实验系统的特点82.5.2ZY11EDA13BE实验系统主板组成8

9、2.6本章小结9第3章 电子万年历的设计103.1设计思想103.2 设计框图113.3 设计流程图123.4 本章小结15第4章 电子万年历的设计、仿真与展示164.1 模块分析164.1.1 秒与分的计数器模块164.1.3 日计数器模块184.1.4月计数器模块214.1.5年低位计数器模块224.1.6年高位计数器模块234.1.7校准模块244.1.8 显示以及显示内容切换模块264.2顶层原理图274.3 管脚锁定294.4电子万年历的展示294.5本章小结30第5章 总结31参考文献32致 谢33VHDL设计FPGA数字系统:电子万年历第1章 绪论1.1钟的起源中国古代很早就用日

10、晷计时。河南省登封县告成镇现存元代的一个观星台遗址,它台高约9.5米,台下有长约31.2米的南北向的"量天尺",这是当时先进的计时建筑。但是用日影测时受气象限制,很不方便。于是人们又发明了漏沙计时的"沙钟",燃香计时的"火钟",滴水计时的"水钟"。我国北宋苏颂等人发明了"水运仪象台",它是最早采用齿轮的机械计时仪,被已故美国著名科学史专家李约瑟誉为"现代天文钟的鼻祖"。使人们不分昼夜均可知道时间。1.2钟的现状以及发展各个不同时期的科学家和钟表工匠用他们的聪明的智慧和不断的实

11、践融合成了一座时间的隧道,同时也为我们勾勒了一条钟表文化和科技发展的轨迹。关于中国的钟表史,最早用土和石片刻制成的“土圭”与“日晷”两种计时工具,成为世界上最早发明计时工具的国家之一。十九世纪末期,中国造钟工艺达到了一个崭新的水平。1875年由上海“美利华”作坊制造的南京钟,屏风式样,钟面镀金,镌刻花纹,以造型古朴典雅、民族风格鲜明和报时清脆、走时准确而闻名于海内外,曾于1903年在巴拿马国际博览会上获特别奖。新中国成立后,我国钟表工业得到迅速发展,取得了令人瞩目的成绩。1955年由天津、上海试制出第一批国产手表。经过三十多年来不断地进行技术改造和技术改进,我国手表行业已形成具有相当生产能力和

12、配套完整的工业体系。1988年手表产量达6700多万只,其中石英电子表2900多万只,手表产量居世界第四位。在品种方面,已成批生产机械男表、女表、日历表、双历表、自动表、怀表、秒表、数字式和指针式石英表等。在质量上,手表的走时精度已达到国际同类产品的水平,现较为出名的有东风、上海、宝石花、海鸥等牌号。1.3电子万年历的简介钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭路灯等。所有这些,都是以钟表数字化为基础的。因此,研究电子万年历及扩大其应用,有非常现实的意义。数字钟是一种用数字电路技术实现时

13、、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。电子万年历从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。 因此,我们此次设计与制做电子万年历就是为了了解数字钟的原理,从而学会制作数字钟。而且通过万年历的制作进一步了解了软件编程的方法。1.4VHDL设计FPGA数字系统:电子万年历的设计要求本设计是用VHDL语言描述万年历的硬件电路。就万年历的功能而言,首先,其不仅要计算时间,且需要计算日期,尤其需要正确的判断每月的天数。在其中,比较困难的是如何正确的计算2月份的天数,因为闰年的2月份有29天,但平年的2月

14、份只有28天。由此,引出一个新的问题:在系统中除计算年份外,还需判断其是否为闰年。其次,系统还要将时间显示,显示方式分为时分秒、年月日这两种显示方式。最后,为增加系统的实用性,本设计还增加校时功能,主要实现当计时出现误差时进行校正的功能。在本设计中,通过程序使系统有7种不同的工作状态,分别为正常计时、校分、校时、校日、校月、校年低位、校年高位。另外,用6个指示灯的亮灭来表示目前万年历系统所处的工作状态,6个灯都不亮时表示正常计时,其余每个灯的亮灭依次表示7种不同的工作状态:000时正常计时,001时校分,010时校时,011是校日,100是校月,101时校年低位,110是校年高位。在系统设计中

15、,先用VHDL语言实现各个模块的功能,然后用原理图方式生成顶层文件,使设计思路清晰。最后,对顶层原理图进行引脚设定,并进行下载验证,证明系统的可行性。1.5 本章小结本章主要介绍了时钟的发展历史,电子万年历的发展现状和研究方向,对电子万年历有一定的感性认识,同时还介绍了本课题的研究任务,以及所运行的软硬件平台和工具,对本课题研究的方向有了一定的了解。第2章 开发技术基础2.1 EDA技术简介2.1.1 EDA技术基本概述EDA技术以计算机为工具,而设计者只需在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动完成逻辑编译、化简、分割、综合、布局、布线和仿真,直至对于特定目标

16、芯片的适配编译,逻辑映射和编程下载等工作,其与传统的硬件技术以及软件技术有着很大的差别,它打破了计算机软件以及硬件间的隔阂,使计算机软件和硬件之间的结合得以实现,设计效率与产品性能互相融合。因此,它代表了数字电子设计技术和应用技术的发展方向。其中,EDA的关键技术之一是用形式化方法来描述数字系统的硬件电路,即用硬件描述语言来描述硬件电路。2.1.2EDA技术发展与发展方向目前的数字集成电路的设计都比较模块化(参见集成电路设计、设计收敛(Design closure)和设计流(Design flow (EDA))。半导体器件制造工艺需要标准化的设计描述,高抽象级的描述将被编译为信息单元(cell

17、)的形式。设计人员在进行逻辑设计时尚无需考虑信息单元的具体硬件工艺。利用特定的集成电路制造工艺来实现硬件电路,信息单元就会实施预定义的逻辑或其他电子功能。半导体硬件厂商大多会为它们制造的元件提供“元件库”,并提供相应的标准化仿真模型。相比数字的电子设计自动化工具,模拟系统的电子设计自动化工具大多并非模块化的,这是因为模拟电路的功能更加复杂,而且不同部分的相互影响较强,而且作用规律复杂,电子元件大多没有那么理想。Verilog AMS就是一种用于模拟电子设计的硬件描述语言。此文,设计人员可以使用硬件验证语言来完成项目的验证工作目前最新的发展趋势是将集描述语言、验证语言集成为一体,典型的例子有Sy

18、stemVerilog。在电子设计自动化(英语:Electronic design automation,缩写:EDA)出现之前,设计人员必须手工完成集成电路的设计、布线等工作,这是因为当时所谓集成电路的复杂程度远不及现在。工业界开始使用几何学方法来制造用于电路光绘(photoplotter)的胶带。到了1970年代中期,开发者尝试将整个设计过程自动化,而不仅仅满足于自动完成掩膜草图。第一个电路布线、布局工具研发成功。设计自动化会议(Design Automation Conference)在这一时期被创立,旨在促进电子设计自动化的发展。鉴于集成电路规模的扩大、半导体技术的发展,电子设计自动化

19、的重要性急剧增加。这些工具的使用者包括半导体器件制造中心的硬件技术人员,他们的工作是操作半导体器件制造设备并管理整个工作车间。一些以设计为主要业务的公司,也会使用电子设计自动化软件来评估制造部门是否能够适应新的设计任务。电子设计自动化工具还被用来将设计的功能导入到类似现场可编程逻辑门阵列的半定制可编程逻辑器件,或者生产全定制的专用集成电路。随着系统变得复杂和庞大,EDA系统设计工具的出现为系统设计师们提供了优越的环境和有力的保障。EDA技术与传统电子设计相比在产品设计理念,设计方式,系统硬件构成和知识产权等方面更具优势。2.2FPGA基本介绍2.2.1FPGA简介FPGA(FieldProgr

20、ammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件

21、例如触发器(Flipflop)或者其他更加完整的记忆块。FPGA一般来说比ASIC(专用集成电路)的速度要慢,无法完成复杂的设计,但是功耗较低。它有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可

22、配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静

23、态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。它们的特点是直接面向用户,具有极强的灵活性和通用性,使用方便,硬件测试和实现快捷,开发效率高,成本低,上市时间短,工作可靠性好等。FPGA和CPLD的应用是EDA技术有机融合硬件电子设计技术、SOC和ASIC设计,以及对自动设计与自动实现最典型的诠释。2.2.1FPGA组成FPGA由六个部分组成,分别是可编程输入/输出单元、基本可编程逻辑单元、丰富的布线资源、嵌入式块RAM、内嵌专用硬核以及底层嵌入功能单元。(1)

24、可编程输入/输出单元:该单元为芯片和外部电路的接口,可以完成不同电气特性下的输入输出的匹配3。(2)基本可编程逻辑单元:该单元式可编程逻辑器件的核心,实现可编程逻辑器件最基本的功能,也可以根据设计的灵活性改变它的内部连接和配置,以实现不同的逻辑功能3。(3)丰富的布线资源:布线资源是器件内部非常重要的连接渠道,连接着驱动功能以及数据的传输速度。FPGA有着非常丰富的布线资源,它们从工艺、长度、宽度位置上被分为不同的等级,有专用的、有公用的3。(4)嵌入式块RAM:采用嵌入式块RAM,大大扩展了FPGA的使用灵活性和应用范围3。(5)内嵌专用硬核:内嵌的专用内核主要指那些通用性相对较弱的功能单元

25、。FPGA中的内嵌专用内核主要是为了实现某些特定功能开发的3。(6)底层嵌入功能单元:它主要是指由生产商在出产前嵌入在FGPA中的一些通用程度较高的功能模块3。2.3VHDL语言概述硬件描述语言发展至今已有几十年的历史,并已成功地应用到系统的仿真,验证和设计综合等方面。到20世纪80年代后期,已出现上百种硬件描述语言,它们对设计自动化起了促进和推动作用。但是,它们大多针对特定设计领域,没有统一的标准,从而使一般用户难以使用。广大用户期盼一种面向设计的多层次,宽领域且得到一致认同的标准硬件语言。80年代后期有美国国防部开发的VHDL语言(VHSIC Hardware Description La

26、nguage)恰好满足上述要求,并在1987年12月由IEEE标准化VHDL(定为IEEE std 1076-1987标准,1993年进一步修订,被定为ANSI/IEEE std 1076-1993标准)。VHDL语言的出现为电子设计自动化(EDA)的普及和推广奠定了坚实的基础。据1991年有关统计资料表明,VHDL语言已被广大设计爱好者所接受,据称已有90%的设计者使用或即将使用VHDL语言设计数字系统。另外,众多CAD厂商也纷纷使自己新开发的电子设计软件与VHDL语言兼容。由此可见,使用VHDL语言来设计数字系统是电子设计技术的大势所趋。2.3.1VHDL语言特点(1)功能强大、设计灵活V

27、HDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。(2)支持广泛、易于修改由于VHDL已经成为IEEE标准所规范的硬件描述语言,大多数EDA工几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。(3)强

28、大的系统硬件描述能力VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。(4)独立于器件的设计、与工艺无关设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。(5)很强的移植能力VHDL是一种标准化的硬件描述语言,同

29、一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。(6)易于共享和复用VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。2.3.2VHDL语言结构完整的VHDL语言通常包含库(Library)声明区,实体(Entity)定义区,结构体(Architecture)定义区等三个部分。(1) 库(Library)内存放了可被其他VHDL程序调用的数据定义,器件说明,程序包等资源。(2) 实体(Ent

30、ity)定义区用于定义电路的外观,即I/O端口的类型和数量,不涉及模块内部逻辑功能的实现。(3) 结构体(Architecture)主要描述设计模块的逻辑功能,结构体必须和实体相联系,确定实体定义的输入与输出信号的逻辑关系,一个设计实体可能有多个结构体11。2.4Quartus II软件介绍Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Qua

31、rtus II可以在XP、Linux和Unix上使用,除了可以使用Tcl脚本完成设计流程外,还提供了完善的用户图形界面设计方式。它具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。除此,对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统和支持Altera的片上可编

32、程系统(SOPC)开发。总之,Quartus II集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Quartus II所支持的器件有:ACEX1K,EPF10K10,EPF10K10A,EPF10K20,EPF10K30A以及MAX®7000系列(含MAX7000A,MAX7000AE,MAX7000E,MAX7000S),EPM9320,EPM9320A,EPF8452A,EPF8282A,FLFX6000/A系列,MAX5000系列,ClassicTM系列等。基本设计流程为:首先设计输入,提供图形、文本和波形编辑器实现图形输入、AHDL、VHDL、Ve

33、rilog HDL或波形的输入,也可以输入网表文件;然后项目编译,提供一个完全集成的编译器,它可直接完成从网表提取到的最后编程文件的生成,包含时序模拟、适配的标准文件;然后再进行项目校验,对设计项目的功能、时序进行仿真和时序分析,判断输入输出间的延迟;最后项目编程,将设计下载/配置到所选择的器件中去。2.5ZY11EDA13BE实验系统介绍2.5.1 ZY11EDA13BE实验系统的特点(1)采用主板A基本实验系统+适配板(扩展板)的结构:主板是一个标准配置系统,是一个最简EDA工具系统,包含了核心芯片A(EP1K30QC208),在主板系统基础上扩展了不同系统,比如主板+单片机+扩展板构成单

34、片机系统,以及主板+扩展CPLD/FPGA等多重系统。(2)主板中所有I/O口开放:主芯片的I/O口分为三个部分使用,三个部分的I/O口无重合。第一部分连接到外部资源(数码管、译码器、时钟源、液晶、LCD、LED、按键、开关等),第二部分连接到试配板接口,第三部分连接到扩展版接口18。(3)数字EDA与模拟EDA混合实验与开发:除了主板的模数转换实验,如果配以模拟EDA器件适配板,就能在主板系统上完成模拟EDA实验或模数混合实验的开发。 (4)编程下载通用性强:主板系统含FPGA/CPLD通用下载编程模块,可用于对Altera 、Lattice、Xilinx等多家国际著名的PLD公司几乎所有i

35、sp或现场配置的CPLD/FPGA进行编程下载。(5)良好的混合电压(MV)兼容功能:绿色能源电子系统要求器件低功耗、低噪声和高电磁兼容性。因此低电压器件的使用将更加重要和普遍,如笔记本电脑、嵌入式系统等,其中的主要器件皆为低电压器件 。2.5.2ZY11EDA13BE实验系统主板组成ZY11EDA13BE实验系统主板,主要由以下几部分构成。通用编程模块、液晶显示模块、数码管显示模块、A/D、D/A转换模块、LED显示模块、数字可调信号源、滤波模块、信号调节模块、逻辑笔模块、配置模块、模式选择模块、模拟信号源、4×4键盘模块、开关按键模块、电源模块、分立元件模块、喇叭模块、I/O口插

36、孔、核心芯片A、适配板B插座、扩展板C插座、40PIN插座。本次设计中用到了通用编程模块即核心芯片EPF1K30QC2082、数码管显示模块、LED显示模块、4×4键盘模块、开关按键模块、电源模块、喇叭模块。2.6本章小结本章主要对电子万年历设计过程中所用到的设计技术基础进行介绍,包括所用的软件、语言、器件等。对EDA技术进行了简单的介绍,了解了其作用、实现的功能、使用的方法、语言、工具等。本次设计使用VHDL语言来进行编程以实现电子万年历的功能,在Quartus II9.0平台上进行软件部分的编译、综合、优化、仿真、下载。第3章 电子万年历的设计3.1设计思想本设计是基于VHDL语

37、言的万年历设计。日期显示能够从0000年1月1日到9999年12月31日,时间显示能够显示一天24小时,并且能够校时校分。在设计中,采用模块化的设计思想实现万年历的设计。根据万年历的预定功能,将万年历分为计时模块、显示及显示方式切换模块,校时模块。 计时模块根据功能,包含了秒、分、时、日、月、年模块。其中,秒和分都采用60进制计数器,时采用24进制计数器,月采用12进制计数器,年高位和年低位都采用100进制计数器(高位计数器可不需要进位输出)。在所有计数器进制设定方面,比较特别的是日计数器进制的设定,因为它有四种不同的情况,若为大月(1、3、5、7、8、10、12月)则为31进制计数器,若为小

38、月(4、6、9、11月),则为30进制计数器,若为闰年的2月,则为29进制计数器,若为平年的2月,则为28进制的计数器。因此,在年计数器中,需要判断其是否为闰年,并将此信号引入月计时器中,配合月份输出判断信号,再将此判断信号引入日计数器模块。根据设计要求,判断信号需分为4种,分别代表大月,小月,平年的2月,闰年的2月。此外,每个计数器(除年高位计数器)都应该有进位输出端,每个计数器都有显示输出端,低位计数器的进位输出要作为高一位计数器的脉冲输入,比如秒计数器的进位输出作为分计数器的脉冲输入,而分计数器的进位输出作为时计数器的脉冲输入,以此类推。计时功能仅仅是万年历的基本功能,若要实现校时功能,

39、则必须包含校准模块。校准模块使系统具有7种工作方式,分别为正常计时、校分、校时、校日、校月、校年低位、校年高位。在设计中,通过按键K1,K2,K3来选择不同的工作方式,如表3.1所示。若三个按键为001,则进入校分的工作方式,且在校分时秒计数器不正常工作,即秒的进位输出不作为分的输入。若按键为010则进入校时的工作方式,在进入校时工作方式时,秒计数器和分计数器正常工作,以此类推,三个按键为110后则进入校年高位的工作方式,在进入校年高位工作方式时,秒计数器、分计数器、日计数器和月计数器均正常工作,避免在校对年高位时影响其他时间位的正确性。若在进入校年高位的工作方式时,三个键再调节至000时,则

40、再次进入正常计时。此外,利用LED灯1至LED灯6作为显示工作方式的指示灯,如,正常计时时LED灯1至LED灯6都不亮;进入校分的工作方式时,LED灯1亮,其余都不亮;以此类推,进入校年高位的工作方式时,LED灯6亮,其余都不亮。通过这些LED灯的亮灭,可以方便地观察到目前系统所处的工作方式。此外,通过时钟源来改变各个计数器的值,当检测到K1,K2,K3按键启动时,对应的计数器则由时钟信号驱动加1计数。例如,目前系统处于2013年4月20日18点57分23秒时,而真正的时间为19时整,则可以先将K1K2K3输入:001,进入校分的工作方式,则等待时钟源输入三个时钟脉冲,使分计数器加3,再使K1

41、K2K3输入010,进入校时工作方式,再等待时钟信号加1计数即可实现。万年历不仅要正确计时,而且要显示时间,而本设计中数码管显示内容有两种,一种是时分秒的显示,另一种则是年月日的显示,因此,共要用到16个数码管,但实验系统中只有8个数码管,所以设计中需增加显示及显示内容切换模块。在设计中,显示内容的切换通过按键K4K5来控制,若K4,K5按键为00,则显示方式为时分秒;若K4,K5按键为01,则显示方式为年月日。此外,利用LED灯8作为显示方式的指示灯,当处于时分秒的显示方式时,LED灯8不亮,否则LED灯8亮。按键000001010011100101110状态正常校分校时校日校月校年低位校年

42、高位表3.1 按键K1,K2,K3状态表格3.2 设计框图电子万年历系统由计时模块,显示及显示内容切换模块,校准模块组成。计时模块由秒、分、时、日、月、年计数器实现。显示内容切换功能由开关K4和K5控制实现,校准功能由开关K1、K2、K3控制实现。显示功能由数码管和BCD译码器组实现,译码器的输入端为D、C、B、A,各个计数器的输出作为译码器的输入,7段译码器有7个输出端,分别接到数码管的7个显示输入端:a、b、c、d、e、f和g,从而使数码管显示相应的数字,进而实现显示功能。 万年历的设计框图如图3.1所示:数码管显示译码驱动日/秒个位计数器日/秒十位计数器月/分个位计数器月/分十位计数器年

43、/时个位计数器年/时十位计数器年百位计数器年千位计数器校准模块,显示内容切换模块时钟信号、拨位开关输入图3.1 万年历设计框图3.3 设计流程图 程序下载后,上电各个计数器开始计时,并将进位输出作为后一计数器的时钟触发输入,实现各计数器之间的连接。K1、K2、K3为校时控制输入端,检测到K1上升沿,使系统进入不同的工作状态,通过检测时钟源的到来,使相应的计数器的值增加1,从而实现校时功能。此外,通过K4、K5来控制显示方式,K4、K5显示为00,显示方式为时分秒,K4、K5显示为01则显示方式为年月日。秒、分计数器为60进制加法计数器,时计数器的模值为24,日计数器的模值由是否为闰年2月、平年

44、2月、大月、小月决定,月计数器模值为12,年计数器模值为10000。秒计数器由频率为1Hz的时钟信号驱动,其他各计数器的时钟脉冲信号由前一个计数器的进位信号提供。在此设计中最重要的部分是平年闰年的判断,由于四年一闰,百年不闰,四百年再闰,例如,2000年是闰年,1900年则是平年,所以我们在判断年低位是否能被4整除的同时,还应判断年低位是否为100,若是100还应判断年高位是否能被4整除,若可以,则当前年份为闰年,则二月为29天。整体设计流程图如图3.2所示:开始输入K1K2K3110101100011001010000校年高位校年低位校月校日校分校时正常计时K4K5=00NY输出时分秒输出年

45、月日显示数据结束图3.2 整体设计流程图 计时模块流程图,如图3.3所示秒计数+1分计数+1时计数+1年计数+1满9999日计数满29日计数满28日计数满30日计数满31月份开始清零clk上升沿满12满24结束保持原值NYN满60YN满60日计数+1Y闰年NN二月二月小月大月NNNNYYYY月计数+1NYNY图3.3 计时模块流程图平年闰年判断流程图如图3.4所示开始N年低位被4整除NY年低位=100YN平年年高位被4整除Y闰年结束图3.4 平年闰年判断流程图3.4 本章小结本章主要介绍了电子万年历的设计思路架构以及流程图,为今后具体的模块设计做出了铺垫。第4章 电子万年历的设计、仿真与展示4

46、.1 模块分析4.1.1 秒与分的计数器模块模块的基本介绍这个模块主要是一个60进制加法计数器。秒计数器由频率为1Hz的时钟脉冲信号驱动,秒计数满60,产生进位信号送给分计数器,分计数累加1,分计数满60的时候,产生进位信号送给时计数器,小时计数累加1。由于秒计数器与分计数器的模值同为60,故而都使用这个计数器模块,并在此模块中加入了手动清零信号,由硬件拨位开关K8控制,在执行校时操作时如果产生错误可清零。秒和分的60进制计数器通过VHDL语言编程,编译成功可生成器件,其器件如图4.1所示。图4.1 秒和分计数器器件生成图端口信息:输入端口:clk:时钟源信号;reset:重置清零信号;输出端

47、口:q1:秒分计数低位端口q2:秒和分计数高位端口c:进位输出端口秒计数器的波形仿真如图4.2所示: 图4.2 秒计数器仿真图 如图4.2所示,当计数器计数至59时,等待至clk信号下一个脉冲上升沿到来时,进位输出c产生一个输出脉冲,同时计数器再次从0开始计数,故设计正确。4.1.2 时计数器模块时计数器模块是一个以分计数器的进位输出信号为时钟脉冲的24进制加法计数器,当时计数器满24,日计数器累计加1。在此模块中加入了手动清零信号,由拨位开关K8控制,在执行校时操作时如果产生错误可清零。时的24进制计数器通过VHDL语言编程,编译成功可生成器件,其器件如图4.3所示。图4.3 时计数器器件生

48、成图端口信息:输入端口:clk:时钟源信号;reset:重置清零信号;输出端口:q1:时计数低位端口q2:时计数高位端口c:进位输出端口时计数器的波形仿真如图4.4所示: 图4.4 时计数器仿真图 如图4.4所示,当时计数器计数至23时,等待至clk信号下一个脉冲上升沿到来时,进位输出c产生一个输出脉冲,同是时计数器再次从0开始计数,故设计正确。4.1.3 日计数器模块日计数器模块是比较特别的,因为它的进制设定有四种不同的情况:若该月为大月(1、3、5、7、8、10、12月)日计数器计数至31时才产生进位信号;若为该月小月(4、6、9、11月),日计数器计数至30时就产生进位信号;若该月为闰年

49、的2月,日计数器计数至29时就产生进位信号;若该月为平年的2月份,日计数器计数至28时就产生进位信号。所以,在日计数器中需要输入判断信号panduan,该判断信号可用2位2进制表示,若判断信号为00,则日计数器为31进制计数器;若判断信号为01,则日计数器为30进制计数器;若判断信号为10,则日计数器为28进制计数器;若判断信号为11,则日计数器为29进制计数器。该判断信号panduan由月计数器的输出信号pan提供。同样,在模块中加入了手动清零信号,由K8控制,在校时时产生错误可清零。日的计数器通过VHDL语言编程,编译成功可生成器件,其器件如图4.5所示。图4.5 日计数器器件生成图端口信

50、息:输入端口:clk:时钟源信号;reset:重置清零信号;输出端口:q1:日计数低位端口q2:日计数高位端口c:进位输出端口panduan:月份状态判断端口日计数器的波形仿真如图4.6至图4.9所示: (1)当判断信号panduan为00时,日计数器的波形仿真如图4.6所示: 图4.6 判断信号panduan为00时日计数器的仿真图 如图4.6所示,当输入信号panduan为00时,日计数器计数至31时,等待至clk信号下一个脉冲上升沿到来时,进位输出c产生一个输出脉冲,同时日计数器再次从1开始计数,故设计正确。 (2)当输入信号panduan为01时,日计数器的波形仿真如图4.7所示: 图

51、4.7 判断信号panduan为01时日计数器的仿真图 如图4.7所示,当输入的panduan为01时,日计数器计数至30时,等待至clk信号下一个脉冲上升沿到来时,进位输出c产生一个输出脉冲,同时日计数器再次从1开始计数,故设计正确。 (3)当输入信号panduan为10时,日计数器的波形仿真如图4.8所示: 图4.8 判断信号panduan为10时日计数器的仿真图 如图4.8所示,当输入的panduan为10时,日计数器计数至28时,等待至clk信号下一个脉冲上升沿到来时,进位输出c产生一个输出脉冲,同时日计数器再次从1开始计数,故设计正确。 (4)当输入信号panduan为11时,日计数

52、器的波形仿真如图4.9所示: 图4.9 判断信号panduan为11时日计数器的仿真图 如图4.9所示,当输入的panduan为11时,日计数器计数至29时,等待至clk信号下一个脉冲上升沿到来时,进位输出c产生一个输出脉冲,同时日计数器再次从1开始计数,故设计正确。4.1.4月计数器模块月计数器为12进制计数器,但需要为日计数器的进制提供判断信号,所以该模块需要有判断信号的输出。此外,由于闰年的2月和平年的2月,判断信号输出不同,所以该模块需要从年计数模块引入闰年的判断信号。最终,其必须达到如下设计要求:若月份是大月,则该信号pan输出00,若月份是小月,则该信号pan输出01,若月份是平年

53、的2月,则该信号pan输出10,若月份是闰年的2月,则该信号pan输出11。同样,在此程序中加入了手动清零信号,由K8控制,在校时时产生错误可清零。月的计数器通过VHDL语言编程,编译成功可生成器件,其器件如图4.10所示。图4.10 月计数模块器件生成图端口信息:输入端口:clk:时钟源输入端口reset:重置清零端口run:开始月份计数输出端口:q1:月计数低位端口q2:月计数高位端口c:进位输出端口panduan:月份状态判断输出端口 月计数器的波形仿真如图4.11至图4.12所示: 1)当输入信号run为1时,即表示该年份为闰年,月计数器的波形仿真如图4.11所示: 图4.11 闰年时

54、月计数器的仿真图 如图4.11所示,当输入信号run为高电平,即表示闰年时,在2月份,输出判断信号pan为11;在大月,输出判断信号pan为00;在小月,输出判断信号pan为01;与日计数器的进制判断要求一致,故设计正确。 2)当输入信号run为0时,即表示该年份为平年,月计数器的波形仿真如图4.12所示: 图4.12 平年时月计数器的仿真图 如图4.12所示,当输入信号run为低电平,即表示平年时,在2月份,输出判断信号pan为10;在大月,输出判断信号pan为00;在小月,输出判断信号pan为01;与日计数器的进制判断要求一致,故设计正确。4.1.5年低位计数器模块 年低位计数器为100进

55、制计数器,同时在年低位计数器中需要判断该数字是否能被4整除,若可以再判断其是否为100,不是则此年份为闰年,是则将判断结果输出至年高位计数器,进一步判断。除此,低位计数器不仅要有触发输入,也要有进位输出,作为年高位计数器的触发输入。并在此程序中加入了手动清零按键,由K8控制,在校时时产生错误可清零。年低位计数器通过VHDL语言编程,编译成功可生成器件,其器件如图4.13所示。图4.13 年低位计数器器件生成图信息端口:输入端口:clk:时钟源输入端口reset:重置清零端口run:开始年份计数输出端口:y1:年低位计数低位端口y2:年低位计数高位端口c:进位输出端口年低位计数器的波形仿真如图4.14所示: 图4.14 年低位计数器的仿真图 如图4.14所示,当年低位计数器计数至99时,等待至cl

温馨提示

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

评论

0/150

提交评论