基于FPGA的多功能电子钟的设计.doc_第1页
基于FPGA的多功能电子钟的设计.doc_第2页
基于FPGA的多功能电子钟的设计.doc_第3页
基于FPGA的多功能电子钟的设计.doc_第4页
基于FPGA的多功能电子钟的设计.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

滨州学院专科毕业设计(论文)毕业设计(论文)题 目基于FPGA的多功能电子钟的设计 系 (院)物理与电子科学系专 业应用电子技术班 级2009级2班学生姓名 陈振斌 孙耀武 李万秀 姜华刚 韩良斌学 号2009021878 2009021908 2009021892 2009021904 2009021893指导教师王树斌职 称讲师 二一二年六月十日独 创 声 明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的法律后果由本人承担。 作者签名: 二一二年六月十日毕业设计(论文)使用授权声明本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。(保密论文在解密后遵守此规定)作者签名: 二一二年六月十日 基于FPGA的多功能电子钟的设计摘 要 本文介绍了多功能电子钟的现状及发展动态,多功能电子钟的应用,多功能电子钟的基本原理和实现方法以及系统构建理论。针对现行电子钟设计方案实现起来相对复杂、误差偏大等弊端,对以FPGA为核心器件的电子钟方案进行了实验研究,利用EDA技术自顶向下的设计方法,设计电子钟各模块及相应具体电路,通过编译、仿真并下载到FPGA实验平台进行测试,运行结果表明:系统能以较小的误差显示时、分、秒,并且当走时不准时,可以通过相应设置键实现校时。 关键词:多功能电子钟;EDA;FPGABased on the design of the multi-function electric clock FPGAAbstract This paper introduces the present situation and development of multi-function electric clock dynamic, multi-function electric clock application, multi-function electric clock with the basic principle and method and system building theory. According to the existing electric clock design implementation up relatively complicated, error slants big disadvantage, the FPGA for the core device the electric clock scheme in the experimental research, using EDA technology the top-down design method, design the electric clock and the corresponding specific circuit module, through the compilation, simulation, and download to FPGA experimental platform to test, operation results show that the system can with a small error shows, minutes and seconds, and when walking is incorrect, can through the corresponding setting key realization school.Key words: multi-function electric clock; EDA; FPGA33目 录引 言1第一章 FPGA简介31.1 FPGA概述31.2 FPGA基本结构31.3 FPGA系统设计流程5第二章 可编程逻辑器件概述及设计方案62.1 CPLD/FPGA概述及VHDL语言的特点62.2可编程逻辑器件的分类和发展历程82.3 EPF10K10LC84-4芯片简介102.4电子时钟的设计方案10第三章 系统电路设计123.1总体设计123.2显示电路设计133.2.1分频器电路153.2.2扫描电路电路163.2.3 BCD码多路选择器173.2.4 BCD译码器173.2.5位选码电路173.3电子时钟计数器电路设计173.3.1秒和分计数器设计173.3.2小时计数器设计19总 结23参考文献25谢 辞26附 录.27引 言时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能更进一步,产品更新换代的节奏也越来越快。现代电子设计技术的核心是EDA ( Electronic Design Automation ) 技术。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL (Hardware Description Language)为系统逻辑描述手段完成的设计文件。 20世纪80年代末,出现了FPGA(Field Programmable Gate Array),CAE和CAD技术的应用更为广泛,它们在PCB设计的原理图输入,自动布局布线及PCB分析,以及逻辑设计、逻辑仿真、布尔综合和化简等方面担任了重要的角色,为电子设计自动化必须解决的电路建模、标准文档及仿真测试奠定了基础。硬件描述语言是EDA技术的重要组成部分,VHDL是作为电子设计主流硬件的描述语言。本论文就是应用VHDL语言来实现秒表的电路设计。VHDL语言是标准硬件描述语言,它的特点就是能形式化抽象表示电路结构及行为,支持逻辑设计中层次领域的描述,借用了高级语言的精巧结构简化电路描述,具有电路模拟与验证及保证设计的正确性,支持电路由高层向低层的综合变换,便于文档管理,易于理解和设计重用。本课题选用了Altera公司的FPGA产品并以其专门开发软件为平台,运用VHDL硬件描述语言设计一个电子时钟。CPLD/FPGA以高集成度、高速度和高可靠性而著称,运用FPGA进行产品开发,其开发周期短,投资风险小,产品上市速度快,决定其有着无比的市场前景,是现代EDA技术中广泛运用的硬件。该系统通过VHDL语言和原理图混合应用的方式来实现电子时钟的设计,并下载到硬件之中进行验证。我们将电子时钟的设计分成了四大模块,分别是时间计数器模块;键盘控制模块;显示电路模块和时间调整模块。本次设计主要让我们掌握CPLD/FPGA的研发过程,掌握VHDL语言的编程思想及过程,以及电子时钟基本功能和实现的基本原理。 第一章 FPGA简介1.1 FPGA概述FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,与之相应的CPLD是复杂可编程逻辑器件(Complex Programmable Logic Device)的简称,两者的功能基本相同,只是实现原理略有不同,有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/PGFA。CPLD/PGFA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。使用CPLD/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。这些优点使得CPLD/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步1 。1.2 FPGA基本结构FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程逻辑模块(CLBConfigurable Logic Block)、输入/输出模块(IOBI/O Block)和互连资源(IRInterconnect Resource)。可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。(1)CLB是FPGA的主要组成部分。图2.1是CLB基本结构框图,它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB中3个逻辑函数发生器分别是G、F和H,相应的输出是G、F和H。G有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2、F3和F4。这两个函数发生器是完全独立的,均可以实现4输入变量的任意组合逻辑函数。逻辑函数发生器H有3个输入信号;前两个是函数发生器的输出G和F,而另一个输入信号是来自信号变换电路的输出H1。这个函数发生器能实现3输入变量的各种组合函数。这3个函数发生器结合起来,可实现多达9变量的逻辑函数。CLB中有许多不同规格的数据选择器(四选一、二选一等),通过对CLB内部数据选择器的编程,逻辑函数发生器G、F和H的输出可以连接到CLB输出端X或Y,并用来选择触发器的激励输入信号、时钟有效边沿、时钟使能信号以及输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROM。F和G的输入等效于ROM的地址码,通过查找ROM中的地址表可以得到相应的组合逻辑函数输出。另外,逻辑函数发生器F和G还可以作为器件内高速RAM或小的可读写存储器使用,它由信号变换电路控制。(2)输入/输出模块IOB。IOB提供了器件引脚和内部逻辑阵列之间的连接。它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成2 。每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。当IOB控制的引脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器。缓冲器的输出分成两路:一路可以直接送到MUX,另一路延时几个纳秒(或者没有延时)后送到输入通路D触发器,再送到数据选择器。通过编程给数据选择器不同的控制信息,确定送至CLB阵列的I1和I2是来自输入缓冲器,还是来自触发器。当IOB控制的引脚被定义为输出时,CLB阵列的输出信号OUT也可以有两条传输途径:一条是直接经MUX送至输出缓冲器,另一条是先存入输出通路D触发器,再送至输出缓冲器。IOB输出端配有两只MOS管,它们的栅极均可编程,使MOS管导通或截止,分别经上拉电阻接通VCC、地线或者不接通,用以改善输出波形和负载能力。(3)可编程互连资源IR。可编程互连资源IR可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。1.3 FPGA系统设计流程流程说明:(1)工程师按照“自顶向下”的设计方法进行系统划分。(2)输入VHDL代码,这是设计中最为普遍的输入方式。此外,还可以采用图形输入方式,这种输入方式具有直观、容易理解的优点。(3)将以上的设计输入编译成标准的VHDL文件。(4)进行代码级的功能仿真,主要是检验系统功能设计的正确性。这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。一般情况下,这一仿真步骤可略去。(5)利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。(6)利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。一般的设计,也可略去这一步骤。(7)利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。(8)在适配完成后,产生多项设计结果:a.适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;b.适配后的仿真模型;c.器件编程文件。根据适配后的仿真模型,可以进行适配后时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来芯片的实际性能。如果仿真结果达不到设计要求,就修改VHDL源代码或选择不同速度和品质的器件,直至满足设计要求。最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中。第二章 可编程逻辑器件概述及设计方案可编程逻辑器件PLD(Programmable Logic Device)是20世纪70年代发展起来的一种新的集成器件。PLD是大规模集成电路技术发展的产物,是一种半定制的集成电路,结合计算机的软件技术(EDA技术)可以快速、方便地构建数字系统。2.1 CPLD/FPGA概述及VHDL语言的特点 1、CPLD/FPGA概述不论是简单的还是复杂的数字系统都是由基本门来构成的,如与门、或门、非门、传输门等。人们发现,不是所有的基本门都是必须的,如用与非门单一基本门就可以构成其他的基本门。任何的组合逻辑函数都可以化为“与或”表达式。即任何的组合电路(需要提供输入信号的非信号),可以用“与门或门”二级电路实现。同样,任何时序电路都可由组合电路加上存储元件,即锁存器、触发器、RAM构成的。由此人们提出了一种可编程电路结构,即乘积项逻辑阵列结构。当然,“与或”结构组成的PLD器件的功能比较简单。此后,人们又从ROM工作原理、地址信号与输出数据间的关系以及ASIC 的门阵列法中获得启发,构造另外一种可编程的逻辑结构,那就是SRAM查表的方式,并使用多个查找表构成了一个查表阵列,称为可编程门阵列(Programmable Gate Array)。 可编程逻辑器件的两种主要类型是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。 在这两类可编程逻辑器件中,FPGA提供了最高的逻辑密度、最丰富的特性和最高的性能。 现在最新的FPGA器件,如Xilinx Virtex系列中的部分器件,可提供八百万系统门(相对逻辑密度)。 这些先进的器件还提供诸如内建的硬连线处理器(如IBM Power PC)、大容量存储器、时钟管理系统等特性,并支持多种最新的超快速器件至器件(device-to-device)信号技术。 FPGA被应用于范围广泛的应用中,从数据处理和存储,以及到仪器仪表、电信和数字信号处理等 与此相比,CPLD提供的逻辑资源少得多,最高约1万门。 但是,CPLD提供了非常好的可预测性,因此对于关键的控制应用非常理想。 而且如Xilinx CoolRunner系列CPLD器件需要的功耗极低,并且价格低廉,从而使其对于成本敏感的、电池供电的便携式应用(如移动电话和数字手持助理)非常理想。 FPGA基于SRAM的架构,集成度高,以LE(包括查找表、触发器及其他)为基本单元,有内嵌Memory、DSP等。具有易挥发性,需要有上电加载过程。在实现复杂算法、队列调度、数据处理、高性能设计、大容量缓存设计等领域中有广泛应用,如Altera Stratix系列。 CPLD基于EEPROM工艺,集成度低,以MicroCell(包括组合部分与寄存器)为基本单元。具有非挥发特性,可以重复写入。在粘合逻辑、地址译码、简单控制、FPGA加载等设计中有广泛应用,如Altera MAX3000A系列3 。 详细比较:尽管FPGA和CPLD有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点: (1)CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。 (2)CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。 (3)在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。 (4)FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。 (5)CPLD比FPGA使用起来更方便。CPLD的编程采用EPROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。 (6)CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。 (7)在编程方式上,CPLD主要是基于EPROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。 (8)CPLD保密性好,FPGA保密性差。 (9)一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显4 。2、VHDL语言的特点 (1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。 (2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。 (3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效, 高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计5 。2.2可编程逻辑器件的分类和发展历程可编程逻辑器件的分类很多,几乎每个大的可编程逻辑器件供应商都能提供具有自身结构特点的PLD器件。由于历史的原因,可编程器件的命名各异,在介绍可编程逻辑器件之前,有必要介绍几种PLD的分类方法。较常见的是按集成度来分区分不同的PLD器件,一般可分为两大类器件:一类是芯片集成度较低的。另一类芯片集成度较高的。前面已经提到,常用的可编程逻辑器件都是从“与或阵列”和“门阵列”两类基本结构发展起来的,所以可编程器件从结构上分为两大类器件:(1)查找表结构器件。构成可编程门,再构成阵列形式。FPGA是属于此类器件。(2)乘积项结构器件。其基本结构为“与或阵列”的器件,大部分 简单PLD和CPLD都属于这个范畴。第三种分类方法是从编程工艺上划分:熔丝(Fuse)型器件。早期的PROM器件就是采用熔丝结构的,编程过程就是根据设计的熔丝图文件来烧断对应的熔丝达到编程目的。(3)反熔丝型器件。是对熔丝技术的改进,在编程处通过击穿漏层使得两点之间导通。与熔丝烧断获得开路正好相反。某些FPGA采用此种编程方式,如Actel公司的FPGA器件。无论是熔丝还是反熔丝结构,都只能编程一次,因而又合称为OTP器件,即一次性可编程(One Time Programmable)器件。(4)EPROM型。称为紫外线擦除点可编程逻辑器件。是用较高的编程电压进行编程,当需要再次编程时,用紫外线进行擦除。与熔丝、反熔丝型不同,可多次编程。有时为降低生产成本,在制造EPROM型器件时不加用于紫外线擦除的石英窗口,于是就不能用紫外线擦除,而只能编程一次,也被称为OTP器件。很早以前人们就曾设想设计一种逻辑可再编程的器件,不过由于受到当时集成电路工艺技术的限制,一直未能如愿。直到20世纪后期,集成技术有了飞速的发展,可编程逻辑器件才得以实现。历史上,可编程逻辑器件经历了从PROM(Programmable Read Only Memory ),PLA(Programmable Logic Array),PAL(Programmable Array Logic )可重复编程GAL(Generic Array Logic)到采用大规模集成技术的EPLD到CPLD和FPGA的发展过程。在结构、工艺、集成度、功能、速度和灵活性方面都有很大的改进和提高。可编程逻辑器件大致的演变过程如下:(1)20世纪70年代熔丝编程的PROM和PLA器件是最早的可编程的逻辑器件。(2)20世纪70年代末,对PLA进行了改进,AMD公司推出PAL器件。(3)20世纪80年代初,Lattice公司发明点可擦写的比PAL使用灵活的GAL器件。(4)20世纪80年代中期,Xilinx公司提出现场可编程概念,同时产生了世界上第一片FPGA器件。同一时期,Altera公司推出EPLD器件,较GAL器件有更高的集成度,可以用紫外线或点擦除。(5)20世纪80年代末,Lattice公司又提出在系统可编程技术,并且推出了一系列具备在系统可编程能力的CPLD器件,将可编程逻辑器件的性能和应用技术推向一个全新的高度。进入20世纪90年代后,可编程逻辑集成电路技术进入飞速发展时期。器件的可用逻辑门数超过了百万门,并出现了内嵌复杂功能模块(如加法器、乘法器、RAM、CPU核、DSP核、PLL等)的SOPC(System on programmable chip)。2.3 EPF10K10LC84-4芯片简介6本设计采用EPF10K10LC84-4芯片,下面将对其进行简单介绍。 Altera公司的FPGA器件Flex10K EPF10K10LC84-4,FLEX(灵活逻辑单元矩阵)系列是Altera应用非常广泛的产品,这些器件具有比较高的集成度及丰富的寄存器资源,采用了快速,可预测延时的连续式布线结构,是一种将CPLD和FPGA的优点结合于一体的器件。EPF10K10LC84-4是84pinPLCC封装,另外还有其它类型的管脚和封装,有很强的选择性。具有以下主要特点:(1)1万个等效逻辑门,含有572个逻辑单元(LEs)、72个逻辑阵列块(LABs)、3个嵌入式阵列块(EAB s),并具有720个片内寄存器,可以在不占用内部资源的条件下实现6144 bit的片内存储器;(2)内部模块间采用高速、延时可预测的快速通道连接,最高工作频率可以达到150 MHz以上;(3)逻辑单元间具有高速、高扇出的级联链和快速进位链;(4)片内还有三态网络和6个全局时钟、4个全局清零信号以及丰富的I/O资源;(5)每个I/O引脚可以选择为三态控制或集电极开路输出,可以通过编程控制每个I/O引脚的速度以及I/O寄存器的使用。2.4 电子时钟的设计方案数字电子钟的设计方法有多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等方案一:运用单片机内部的定时/计数器来实现电子时钟的方法,该方案设计由单片机AT89S51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。时钟的基本显示原理:时钟开始显示为0时0分0秒,也就是数码管显示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。10秒位到5后,即59秒 ,分钟加1,10秒位回0。依次类推,时钟最大的显示值为23小时59分59秒。这里只要确定了1秒的定时时间, 其它位均以此为基准往上累加。方案二:采用专用的时钟芯片实现,通过单片机读取时钟芯片的计时时间,在数码管上显示出来,就可以实现电子时钟功能,典型的时钟芯片有:DS1302,DS12887,X1203,PCF8583等都可以实现电子时钟功能。方案三:采用FPGA来实现电子时钟功能,运用VHDL语言来描述电子时钟的各个功能模块。将电子时钟分为六十进制计数器和二十四进制计数器两个基本的功能模块,然后将两个六十进制计数器和一个二十四进制计数器相级联,就构成一个具有时、分、秒的电子时钟。比较方案一、方案二和方案三:方案一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;方案二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,但该方案还具备日历功能,造成功能上的浪费;方案三是采用FPGA实现,运用VHDL语言描述,设计方法简单,而且运用有源晶振作为系统的时钟源,通过分频得到1HZ的信号,计时精度很高,不低于方案二的计时精度,而且运用VHDL语言来描述电子时钟是完全的硬件实现。通过以上比较,系统中采用FPGA来实现电子时钟功能7 。第三章 系统电路设计3.1 总体设计设计一个显示时(2位)、分(2位)、秒(2位)共六位的多功能电子钟,它的主要功能是进行准确的计时。利用VHDL语言对硬件进行描述,通过下载到FPGA之中进行硬件验证。系统采用4MHz的石英晶体振荡器作为时钟源,经过分频之后得到1HZ的秒钟信号,秒计满60即得1分钟,分计满60便得1小时的信号,小时计满24即得一天,电子时钟的外观图如图3.1所示。其中有六个按键用于调整时间,复位等功能。具体功能如下:图3.1 电子钟的外观图OK键:开始计时。SET键:与调时、调分、调秒键配合,可以调整到指定的时间。RESET键:清零。电子时钟硬件总体框图如图3.2所示。图3.2 电子时钟硬件总体框图在每个功能模块分项设计和组合前,先简单介绍一下每个方块的功能作用8 。(1)分频器通过分频将4MHz的信号分频为1Hz的秒信号和100Hz的同步扫描时钟信号。(2)1Hz的秒信号输入到秒计数电路,当计数器溢出时,向分计数器进位,当分计数器溢出时,向时计数器进位。(3)BCD译码电路是将计数器的十六进制计数值转换为数码管显示所需要的段码。(4)位码电路是用来选通某一位数码管,使其显示数字。(5)扫描同步电路作用控制同一个数码管的段码和位码同步,同时对多个数码管轮流扫描。(6)键盘控制电路作用是启动电子时钟计时,设定时间等。3.2 显示电路设计显示电路有LCD和LED显示电路,系统中选用LED显示电路,LED器件是一种发光二极管显示器。其特点如下:(1)LED显示器具备稳定、高速、简单的系统;(2)LED显示结构简单、性能稳定;(3)LED显示应用在成熟的生产技术上。发光二极管组成的显示器是单片机应用产品中最常用的廉价输出设备。八段发光二极管结构如图3.3所示。图3.3 八段发光二极管外型发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。1位显示器有8个发光二极管组成,其中7个发光二极管ag控制7个笔段的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的八段显示器能显示的字符少。字符的形象有些失真,但控制方便,使用简单9 。图3.4 共阴极数码管图3.5 共阳极数码管显示器的显示方法有静态和动态两种方法。显示器位数较少时,采用静态显示的方法是合适的。当位数较多时,用静态显示所需的I/O太多,一般采用动态显示方法,所以在系统中我们采用动态显示。此类数码管的工作特点是:(1)数码管片选端清0时,对应位的数码管才有可能亮;(2)每次只能有一个片选端清0,即只能动态移位显示相应的数据;(3)控制器通过控制数码管显示相应数字要用查表子程序来实现。系统中显示电路是由分频电路、扫描电路、BCD码多路选择器、位选码电路和BCD译码器构成的。数码管动态扫描电路如图3.6所示,其中FPQ为分频器,通过分频得到扫描时钟信号,时钟信号为100Hz;SCAN为扫描电路,它是由状态机组成的,循环扫描数码管,使得数码管稳定的显示数据;BCDYMQ为BCD译码器,作用是将计数器输出的十六进制数转换为数码管显示所需要的段码;BIT为位码,作用是轮流选择数码管的位。图3.6 数码管动态扫描电路3.2.1 分频器电路扫描电路所需要的扫描时钟信号为100Hz,是通过分频器将系统的4MHz时钟信号经过10000分频之后,再通过四分频得到的。系统中采用四个十进制计数器相级联实现10000分频,然后通过两个T触发器实现四分频得到100Hz信号。十进制计数器的仿真图如图3.7所示。十进制计数器的VHDL语言描述见附录程序110 图3.7 十进制计数器的仿真图3.2.2 扫描电路电路扫描电路是动态数码管显示的核心部件,通过扫描电路使得同一位数码管的段码、位码能够同步选择并稳定显示数据。其VHDL语言描述见附录程序2图3.8 扫描电路仿真图扫描电路是由四位二进制计数器组成的状态机构成的,其仿真图如图3.8所示。其中SCAN为扫描时钟信号输入端,COMCLK为状态输出端。3.2.3 BCD码多路选择器BCD码多路选择器是输入的四位的BCD码根据扫描电路的输出进行选择,然后通过BCD译码器将对应的BCD码转换成显示所需要的段码。见附录程序3113.2.4 BCD译码器BCD译码器是将输入的四位二进制数转换成七段显示代码,通过对应的显示代码驱动LED显示相应的数据,其仿真波形如图3.9所示。其VHDL语言描述见附录程序4图3.9 BCD译码器仿真波形3.2.5 位选码电路 位选码电路的作用是在扫描电路作用下,依次输出对应的数码管的位选码。其仿真波形如图3.10所示。程序见附录程序5图3.10 位选码仿真波形3.3 电子时钟计数器电路设计电子时钟是由两个60进制计数器和一个二十四进制计数器组成的,其中二十四进制计数器用于时计数器,60进制计数器用于秒和分计数器。3.3.1 秒和分计数器设计秒和分计数器是由六十进制计数器组成的,而六十进制计数器是由一个十进制计数器和一个六进制计数器组成的12 。(1)系统中采用的十进制计数器采用74161来设计,其设计原理图如图3.11所示,其中CLK为外部时钟脉冲输入端,Q0Q3为计数器计数值输出端,CNT为进位输出端,ENT为十进制计数器使能端,CLRN为十进制计数器清零端,十进制计数器仿真图如图3.12所示。图3.11 十进制计数器原理图图3.12 十进制计数器仿真图(2)六进制计数器设计系统中采用的六进制计数器采用74161来设计,其设计原理图如图3.13所示,其中CLK1为外部时钟脉冲输入端,QQ0QQ3为计数器计数值输出端,CNT1为进位输出端,ENT1为十进制计数器使能端,CLRN1为十进制计数器清零端,六进制计数器仿真图如图3.14所示。图3.13 六进制计数器原理图图3.14 六进制计数器仿真图时序图(3)六十进制计数器设计系统中采用的十进制计数器与六进制计数器级联构成六十进制计数器,其设计原理图如图3.15所示,其中CLK2为外部时钟脉冲输入端,Q0Q7为计数器计数值输出端,CNT2为进位输出端,ENT2为十进制计数器使能端,CLRN2为十进制计数器清零端,其中CNT10、CNT6是十进制计数器和六进制计数器所生成的封装库。图3.15 六十进制计数器原理图3.3.2 小时计数器设计电子时钟电路的小时计数器是由二十四进制计数器组成的,系统需要将二十四进制计数器的计数值分解为两位的BCD码,然后再送到数码管上显示13 。(1)二十四进制计数器其仿真图如图3.16所示。二十四进制计数器的VHDL语言描述见附录程序6图3.16 二十四进制计数器仿真波形由二十四进制计数器生成的图标文件如图3.17所示:图3.17 二十四进制计数器图标(2)二十四进制计数器计数值分解电路时计数器分为时个位和时十位,所以需要将二十四进制计数器的计数值分为BCD码十位和BCD码个位,其仿真图如图3.18所示,它生成的图标文件如图3.19所示。其VHDL语言描述见附录程序7图3.18 二十四进制计数器的计数值分解为十位和个位仿真图图3.19 二十四进制计数器的计数值分解为十位和个位生成的图标(3)时计数器总体电路时钟系统总体电路如图3.20所示,其中CNT10为十进制计数器,CNT6为六进制计数器;CNT23为二十四进制计数器;ZHHUAN为将二十四进制计数器的计数值分解为十位数据和个位数据的转换电路;CLK2为输入的秒信号;ENT2为使能信号,高电平有效。图3.20 时钟系统总体键盘的硬件结构为独立式键盘,直接连到EPF10K10LC84-4芯片的引脚上,其特点是便于编程操作14 。(1)开始/停止键KEY的设计我们将此键经去抖后连接一T触发器,使其输出为电平方式,即按键盘一次,电平进行一次翻转。输出Q0端接74161芯片的ENT端,从而达到了控制秒表的启动停止。其原理图如图3.21所示。图3.21 KEY的MAX+plusII原理图(2) 清零键KEY1的设计为了使键盘达到按下清零,松开恢复的功能,KEY1键我们应用脉冲输出方式,即按键盘一次,输出一个脉冲信号。输出端Q0连接74161芯片的CLRN端。这样在按下键盘时输出为低电平使能CLRN,松开后为高电平,禁止了该引脚。电路图如图3.22所示。图3.22 KEY1键的MAX+plusII原理图 结 论以上对电子钟从硬件设计方案的选择到用硬件描述语言的设计,都进行了详细的介绍。现在对本次设计工作进行一次总结。在刚获课题时,根据题目内容我首先阅读了大量的相关书籍和资料,这使我在脑海中产生出设计的雏形,接下来就这个构想将整个设计分为VHDL硬件描述语言的装置器件FPGA/CPLD的介绍、VHDL语言对电子钟的设计(七段显示器的显示设计、时间计数跟时间显示、弹跳现象的消除及时间设定和显示)部分。分别对每一部分翻阅了相关的资料,逐步的选定方案与电路设计程序。在用VHDL语言编好后,在计算机上又对程序进行了编译、下载到芯片及仿真,修改了程序中的错误,这样整个系统基本完成,最后对图纸进行了整理,撰写了这篇论文,至此,全部设计都进行完毕。VHDL语言通俗易懂,并且更有益撑握模块工作原理,从而能够更好的理解系统功能。它还具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大地简化了设计任务,提高了设计的效率和可靠性。VHDL支持各种模式的设计方法,具有良好的适应性,并且具有良好的电路行为描述和系统描述能力,在语言易读性和层次化结构化设计表面表现了强大的生命力和应用潜力本次设计重点在于对VHDL语言的应用,以电子钟作为一个具体的模型进行设计。在整个设计的过程中虽然力求合理规范,也存在着一些缺憾,比如,在对电子钟的设计中,有些功能模块的设计不是最简便的方式,同时肯定还有欠考虑的地方。总之,在系统的软硬件设计上由于能力所限,不一定是最佳选择;一些设计方案可能存在不足,这些有待进一步检验。在这次的论文设计中,我感觉自己得到了一个难得的锻炼机会,设计中能将自己所学的理论知识同实践相结合起来,独立的进行分析、设计;而且培养出来一套有计划,有步骤进行设计的习惯,将对今后的工作学习有非常大的帮助,在设计中查阅了大量的资料,丰富了自己的知识,扩展了视野;加强了对计算机的应用能力。通过此次设计,进一步掌握了有关数字钟的工作原理及相关设计知识。特别是对其各工作模块的功能有了更深一步的了解。在设计过程中,对VHDL语言的运用能力也得到了提高。同时,还深刻体会到了VHDL在功能设计中所具有的优越性。总之,这次设计工作,对自己三年来的学习生活做了一个总结,为即将结束的大学生活有个全新的理念。参考文献1 林明权. VHDL 数字控制系统设计范例M. 北京:电子工业出版社.2006 2 卢毅,赖杰. VHDL与数字设计M. 北京:科技出版社出版 .20013 潘松,黄继业. EDA技术实用教程M. 北京:科技出版社.2009 4 徐伟业,江冰,虞湘宾. CPLD/FPGA的发展与应用之比较J.现代电子技术.2007 5 武玉华,裴荣琪,李莉,周玉坤.多功能电子钟的ASIC设计J,现代电子技术.2007 6 杨晖,张风言. 大规模可编程逻辑器件与数字系统设计M. 北京:航空航天大学出版社.2001 7 褚振勇,翁木云. FPGA 设计及应用M. 西安:电子科技大学出版社.2001 8 朱明程. 可编程逻辑系统的VHDL设计技术M. 南京:东南大学出版社.2007 9 罗映祥. 基于Multisim 9的数字电子钟设计与仿真J. 现代电子技术.201010 候伯享,顾新. VHDL硬件描述语言与数字逻辑电路设计M. 西安:电子科技大学出版社.200311 Altera Corporation. Altera Digital LibraryJ. Alter 2006 12 Xilinx Inc. Data Book 2001J. Xilinx,2001 13 VHDL Language Reference GuideJ, Aldec Inc.Henderson NV USA,199914 VHDL Reference Guide,Xilinx Inc.San Jose USAJ,2006谢 辞离校日期已日趋临近,三年的大学生活,随着本次论文的完成,将要划上一个完美的句号。从开始进入课题到论文的顺利完成,一直都离不开老师、同学、朋友给我热情的帮助,在这里请接受我诚挚的谢意!本次论文是在我的指导老师王树斌老师的亲切关怀与细心指导下完成的。从课题的选择到论文的最终完成,王老师始终都给予了细心的指导和不懈的支持。希望借此机会向王老师表示最衷心的感谢! 此外,本文最终得以顺利完成,也是与物理系其他老师的帮助分不开的,虽然他们没有直接参与我的论文指导,但在开题时也给我提供了不少的意见,提出了一系列可行性的建议,开放实验室为我们提供方便,在此向他们表示深深的感谢!还要向在这四年

温馨提示

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

最新文档

评论

0/150

提交评论