【优秀word论文】基于fpga的全功能万年历电子钟的设计_第1页
【优秀word论文】基于fpga的全功能万年历电子钟的设计_第2页
【优秀word论文】基于fpga的全功能万年历电子钟的设计_第3页
【优秀word论文】基于fpga的全功能万年历电子钟的设计_第4页
【优秀word论文】基于fpga的全功能万年历电子钟的设计_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

基于FPGA的全功能万年历电子钟的设计提要本文主要介绍了基于FPGA的万年历电子钟的设计方案,从而介绍了可编程逻辑器件的发展及应用。基于FPGA的电子钟的设计与实现介绍了基于FPGA芯片的系统设计,并对系统的软硬件构成、FPGA内部逻辑设计工作原理等进行了详细说明。论文第一部分对FPGA进行概述,讲述了可编程逻辑器件的发展与应用及论文题目的意义、目的和内容编排;第二部分叙述了系统设计方案,介绍了FPGA应用的特点和电子钟的方案概述及实现语言和调试平台MAXPLUS开发工具;第三部分叙述了基于FPGA的电子钟系统的设计的硬件设计和软件设计;第四部分对系统实现的外围电路进行概述。第五部分再次说明本设计的系统方案和得到的结论。目录第一章序论111研究目的和意义112可编程逻辑器件的发展与应用1121可编程逻辑单元CLB3122输入/输出模块IOB3123可编程内部连线PI4124FPGA芯片的特点413FPGA国内外的发展状况及应用514本课题所能实现的功能8第二章总体方案的设计921万年历电子钟的设计原理922FPGA的设计方法11221FPGA的器件设计流程11222MAXPLUS开发工具13223VHDL语言1723系统设计方案18第三章系统的硬件设计与实现1931功能模块设计1932系统功能实现21321底层元件设计22322顶层元件设计3233芯片的选择41第四章设计应用电路4541整体电路4542电源电路4643键盘部分4944主动配置电路53第五章总结6151概述6152设计方案62参考文献64致谢67摘要IABSTRACTII第一章序论11研究目的和意义通过对FPGA的了解,我们要应用FPGA来设计全功能万年历的设计,主要实现电子钟的所有功能,万年历是一种应用非常广泛的日常计时工具,具有时分秒计时功能,还有日历、年历功能,涉及计数、显示、参数输入技术,能够实时显示年、月、日和时间,并具有校准和闹铃等功能。使用FPGA系统实现,学习电子控制器设计相关的知识,提高实践动手能力。通过该课题的设计,学生可以学会硬件电路的设计、调试,用单片机汇编语言进行软件编程。12可编程逻辑器件的发展与应用可编程逻辑器件(PROGRAMMABLELOGICDEVICE,简称PLD)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。它诞生于20世纪70年代,几十年来,PLD得到了飞速发展和广泛应用。它是大规模集成电路技术的飞速发展与计算机辅助设计(CAD)、计算机辅助生产(CAM)和计算机辅助测试(CAT)相结合的一种产物,是现代数字电子系统向超高集成度、超低功耗、超小型封装和专用化方向发展的重要基础。它的应用和发展不仅简化了电路设计,降低了成本,提高了系统的可靠性和保密性,而且给数字系统的设计方法带来了革命性的变化。常见的可编程逻辑器件有PROM(PROGRAMMABLEREADONLYMEMORY,可编程只读存储器)、PLA(PROGRAMMABLELOGICARRAY,可编程逻辑阵列)、PAL(PROGRAMMABLEARRAYLOGIC,可编程阵列逻辑)、GAL(GENERICPROGRAMMABLEARRAYLOGIC通用可编程阵列逻辑)、EPLDERASABLEPROGRAMMABLELOGICDEVICE,可擦除的可编程逻辑器件、CPLD(COMPLEXPROGRAMMABLELOGICDEVICE,复杂可编程逻辑器件)和FPGA(FIELDPROGRAMMABLEGATEARRAY,现场可编程门阵列)等。集成度是可编程逻辑器件的一项很重要的指标,如果从集成密度上分类,可分为低密度可编程逻辑器件(LDPLD)和高密度可编程逻辑器件(HDPLD),二者之间通常以单片集成1000个逻辑门指等效逻辑门为区分点。PROM、PLA、PAL和GAL属于低密度可编程逻辑器件,而EPLD、CPLD和FPGA则属于高密度可编程逻辑器件。目前常用的可编程逻辑器件都是从“与或阵列”和“门阵列”两类基本结构发展起来的,所以又可从结构上将其分为两大类器件(1)阵列型PLD基本结构为与或阵列的器件。包括简单可编程逻辑器件SPLD和复杂可编程逻辑器件CPLD。(2)FPGA器件基本结构为门阵列的器件。CPLD是阵列型高密度PLD器件,它们大多采用了CMOSEPROM/E2PROM和快闪存储器等变成技术,因而具有高密度、高速度和低功耗等特点。目前主要的半导体器件公司,如XILINX、ALTERA、LATTICE和AMD等,在各自生产的高密度PLD产品中,都有自己的特点,但总体结构大致是相同的。大多数CPLD器件中至少包含了3种结构可编程逻辑宏单元、可编程I/O单元、可编程内部连线。FPGA是可编程逻辑器件PLD的第四代产品。内部具有独立的I/O接口和逻辑单元CLB。使用灵活,适用性强,特别适用于复杂逻辑的设计。本文主要介绍了FPGA的内部结构特点、开发试验系统的特征及实际应用。FPGAFIELDPROGRAMMABLEGATEARRAY,用户现场可编程门阵列是起源于80年代中期,由美国硅谷XILINX公司首创的全新概念。FPGA能进行现场设计、现场编程、现场验证、现场修改与分析,从而现场实现数字系统的单片设计和应用,在大专院校、科研所、航空航天、数字通信、计算机应用领域展示出了广泛的应用前景。FPGA主要包括三个部分可编程逻辑单元CLB、输入/输出模块IOB、可编程内部连线PI。121可编程逻辑单元CLBCLB是FPGA的核心。CLB内部的两个D触发器由CLK端的外部时钟驱动,时钟可由用户编程有效极性上升沿、下降沿,组合功能模块具有五个逻辑输入变量,并生成一个具有布尔功能的输出。组合逻辑功能模块的延迟相对固定,与所要产生的逻辑功能无关,它只由器件的速度等级而定。通过单个CLB的信号延迟时间一般不超过45NS至7NS,而用中小规模器件来完成一个CLB所包含的同样的逻辑功能,其信号延迟时间则需要30NS。因此,CLB的延迟时间要小得多,从而大大提高了所设计产品的性能。122输入/输出模块IOB每个IOB可定义为三种不同的功能输入、输出和双向。当IOB输入接口使用时,输入缓冲器根据用户编程对输入信号进行电平检测,将外部输入的TTL或CMOS信号转变成内部逻辑所要求的电平,信号既可经输入缓冲器后直接进入芯片内部,也可由D触发器寄存或D锁存器锁存后进入芯片内部。当IOB作为输出使用时,来自芯片内部的信号直接或经D寄存器锁存后到达输出缓冲器的输入端。当选为双向时,可以由逻辑控制三态缓冲器来定义其输入或者为输出,使用非常方便。IOB中的各个触发器有两个时钟可供选择,因而可以通过程序定义成同步或异步工作,在同一片子上的时序控制电路,计数器和锁存器就可以受不同的时钟信号来控制。IOB的输出缓冲可以定义为两种不同的转换速率。另外,输出脚还可以定义为耗尽型开态输出。总之,所有FPGA的IOB的这些功能使得FPGA的应用范围更广,设计灵活性更大,使用更为方便。123可编程内部连线PIFPGA中完成较简单功能的逻辑块借助于可编程内部连线连接在一起,从而实现复杂功能电路的设计。各个CLB之间的连接由一个两层金属线段的格栅组成,格栅的交叉连接通过配置程序控制特殊设计的传输晶体管的通断来实现,从而形成分布在CLB四周的众多可编程的互连点。FPGA主要有通用互连、直接互连、长线和内部总线等三至四种互连方式。124FPGA芯片的特点1)随着大规模集成电路工艺的不断提高,FPGA的芯片的规模越来越大,期单片逻辑门数可以达到数百万乃至数千万门,它所能实现的功能也越来越强,同时也可以实现系统集成,这样大幅度的减少了印刷电路板的面积和接插件的数量,降低了配置和调试费用。2)提高了产品的可靠性,大量分立世元器件在向印刷电路上装配时,往往会发生因为虚焊会接触不良而造成极大的困难,FPGA芯片减少了这种现象的发生,而且FPGA芯片在出场之前都做过百分之百的测试。不需要设计人员承担投片风险,设计人员只需要在自己的实验室里通过相应的软硬件环境来完成芯片的最终功能的指定。3)大大减小了电子产品的体积和质量。降低了电子产品的功耗,提高了产品的工作速度。FPGA内部的电路体积很小、互连线短、分布电容小,驱动电路所需要的功耗大大降低。FPGA芯片内部很短的连线能够大大的缩短延迟时间,并且不易受外部的干扰,这对提高速度非常有利。而且FPGA的规模越来越大。有时候可以把整个(子)系统集合到一个芯片上,这比分立元件构成的电子系统速率要快。4)提高了产品的竞争能力。FPGA芯片和EPROM配合使用,用户可以反复的编程、擦除,使用或者在外围电路不动的情况下用不同的EPROM就可以实现不同的功能,所以,用FPGA试做样品,能以最快的速度占领市场,再者FPGA芯片的电路设计周期短,设计人员在较短的时间内,能完成电路的输入、编译、优化、仿真直至最后的芯片的制作。当电路有少量改动时,更能显示FPGA的优势,它大大加快了新产品的试制速度,减少了库存风险与设计错误所带来的风险,从而提高了在市场上的竞争能力和应变能力13FPGA国内外的发展状况及应用当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在不断地进行更新换代。它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路VLSIC,几万门以上以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路ASIC芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件FPLD,其中应用最广泛的当属现场可编程门阵列FPGA和复杂可编程逻辑器件CPLD。早期的可编程逻辑器件只有可编程只读存贮器PROM、紫外线可按除只读存贮器EPROM和电可擦除只读存贮器EEPROM三种。由于结构的限制,它们只能完成简单的数字逻辑功能。其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件PLD,它能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与一或”表达式来描述,所以,PLD能以乘积和的形式完成大量的组合逻辑功能。这一阶段的产品主要有PAL可编程阵列逻辑和GAL通用阵列逻辑。PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列PLA,它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。PLA器件既有现场可编程的,也有掩膜可编程的。在PAL的基础上,又发展了一种通用阵列逻辑GALGENERICARRAYLOGIC,如GAL16V8,GAL22V10等。它采用了EEPROM工艺,实现了电可按除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。这些早期的PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。现场可编程门阵列FPGAFIELDPROGRAMMABLEGATEARRAY及CPLD,它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽的特点。这两种器件兼容了简单PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与ASICAPPLICATIONSPECIFICIC相比,具有设计开发周期短、设计制造成本低开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产一般在10000件以下之中。比较典型的就是XILINX公司的FPGA器件系列(如XC4000)和ALTERA公司的CPLD器件系列(如MAX700),这两个公司的产品开发较早,占领PLD市场的绝大部分,可以说ALTERA和XILINX共同决定了PLD技术的发展方向。FPGA和CPLD由三大部分组成的,即一个二维的逻辑块阵列,构成了PLD器件的逻辑组成核心;输入/输出块;连接逻辑块的互连资源。连线资源是指由各种长度的连线线段组成,其中也有一些可编程的连接开关,它们用于逻辑块之间、逻辑块与输入/输出块之间的连接。随着超大规模集成电路VLSIVERYLARGESCALEIC工艺的不断提高,单一芯片内部可以容纳上百万个晶体管,FPGA/CPLD芯片的规模也越来越大,其单片逻辑门数目前已达到上百万门,它所能实现的功能也越来越强,同时也可以实现系统集成。大规模可编程逻辑器件FPGA和CPLD是当今用于最广泛的两类可编程逻辑器件,电子设计工程师利用它可以在办公室或实验室设计出所需要的专用芯片和专用产品,从而大大缩短了产品上市时间,降低了开发成本。此外,可编程逻辑器件还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,这样就极大的提高了电子系统设计的灵活性和通用性。FPGA/CPLD是近几年集成电路中发展最快的产品。由于PLD性能的高速发展以及设计人员自身能力的提高,可编程逻辑器件供应商将进一步扩大可编程芯片的领地,将复杂的专用芯片推向高端和超复杂应用。可编程逻辑器件依然是集成电路中最具活力和前途的产业。FPGA与CPLD在价格、性能、逻辑规模和封装(包括EDA软件性能)等方面各有千秋,如表11所示表11FPGA与CPLD比较器件比较点FPGACPLD结构工艺SRAMEEPROM或FLASH基本结构LUT查找表乘积项PINPIN的时延不定确定配置存储器需外挂ROM不需保密性能无保密性可加密工作电压33V或25V5V编程工艺通过PC机并行口或专用编程器或单片机进行配置ISP在线编程应用主要针对要求不是很高,设计逻辑较复杂的系统,适合于完成时序较多的逻辑电路主要针对速度要求高,但设计逻辑又不是很复杂的系统,适合于完成各类算术和组合逻辑14本课题所能实现的功能(1)准确计时,以数字形式显示时,分,秒的时间。(2)小时的计时要求为“24翻1”,分和秒要求为60进位。(3)校正时间,能够对“分”和“小时”进行调整。(4)定时闹钟(时间可通过按钮任意修改)(5)数字跑表(具体启动/暂停,清零)(6)日历(7)日历功能_YY/MM/DD显示年,月,日统计和计数,只显示年份的后两位0099,可统计100年,已加入闰年的算法,不用考虑千年问题则只需年份的两后位能够被4整除,天和月的计数应从1开始计数,天的计数以小时满24的进位信号作为触发时钟,当月份为1、3、5、7、8、10、12为大月,天数满31发出一个月份加一信号;4、6、9、11为小月,天数满30发出一个月份加一信号;2月需要判断年数是否能被4整除,可以的话为闰年,天数满29发出一个月份加一信号,反之就是平年,天数满28发出一个月份加一信号。第二章总体方案的设计21万年历电子钟的设计原理万年历电子钟主要是用来显示时间(年月日时分秒)。设计要求的精度是1秒,时钟部分显示的时间范围时00分00秒到23时59分59秒之间。万年历部分显示的是100年以内的年份。一般来说电子钟除计时以外,还应具有校时,校分的功能,在本设计中可以通过按键来控制,报时分两步来实现,计数到整点时报时,考虑采用数声长音表示每到00分00秒时则以响一声短音的方式结束报时。基于FPGA的电子钟可以实现电子钟的显示时间,校对时间,达到电子钟的要求,并且具有查找万年历的功能。利用VHDL硬件描述语言完成万年历电子钟系统的设计与分析。数字电路中,时钟是整个电路最重要、最特殊的信号。FPGA中通常已经配置一定数量的PLL宏单元,并有针对时钟优化的全局时钟网络,一般是经过FPGA的特定全局时钟管脚进入FPGA内部,后经过全局时钟BUF适配到全局时钟网络的,这样的时钟网络可以保证相同的时钟沿到达芯片内部每一个触发器的延迟时间差异是可以忽略不计的。因此时钟单元也是需要进行转换的。万年历电子钟有一片EPF10K10LC844芯片实现,外围器件包括13个七段数码管(LED)(第一组有年、月、日6个数码管组成,第二组有星期、时秒点、分、秒7个数码管组成)及驱动电路,一个1KHZ的时钟振荡器和一个扬声器。其电路组成图21。EPF10K10LC844校时按键13个数码管扬1KHZ时钟图21万年历电子钟电路框图万年历电子钟的全部逻辑功能由EPF10K10LC844芯片产生,下面根据自顶向下的设计方法确定万年历电子钟的设计方案。首先介绍功能模块的划分。万年历电子钟的实现可以通过四个功能块,计时电路、显示电路、校时电路、整点报时电路,功能模块结构如图22所示。图22万年历电子钟模块根据自顶向下的设计方法确定电子钟的设计方案;为完成上层4个功能块,还可以进一步的向下进行功能划分,进入再下一层的设计。其具体设计在第三章中详细讲解。22FPGA的设计方法221FPGA的器件设计流程FPGA器件的设计一般可以分为设计输入、设计实现、设计仿真和下载编程四个步骤,如图23示。图23仿真流程图一、设计输入设计输入就是将设计者所设计的电路以开发软件要求的某种形式表达出来,并输入到相应的软件中。设计输入有多种表达方式,最常用的是原理图和硬件描述语言两种。1原理图。原理图是图形化的表达方式,使用元件符号和连线等符号来描述设计。其特点是适合描述连接关系和接口关系,而描述逻辑功能则很繁琐。原理图输入对用户来讲很直观,尤其对描述层次结构、模块化结构更为方便。但它要求设计工具提供必要的元件库或逻辑宏单元。如果输入的是较为复杂的逻辑或者元件库中不存在需要的模型,采用原理图输入方式往往很不方便,就需要采用硬件描述语言输入了。2硬件描述语言。硬件描述语言是采用文本的方式描述设计,其逻辑描述能力强,而不适合描述接口和连接关系。硬件描述语言一般有普通硬件描述语言和行为硬件描述语言两种。普通的硬件描述语言,如ABELHDL、CUPL和MINCHDL,它们支持布尔方程、真值表、状态机等逻辑描述方式,适合对计数器、译码器、比较器和状态机等逻辑功能的描述。行为描述语言,如VERILOGHDL和VHDL,行为描述类似于C语言,在描述复杂设计时,非常简洁,具有很强的逻辑描述和仿真功能,已被采用为国际标准。可编程逻辑器件的设计往往采用层次化的设计方法,分模块、分层次地进行设计描述。描述器件总功能的模块放置在最上层,称为顶层设计;描述器件最基本功能的模块放置最下层,称为底层设计。顶层和底层之间的关系类似于软件中主程序和子程序的关系。层次化设计的方法比较自由,可以在任何层次使用原理图或硬件描述语言进行描述。一般的做法是,在顶层设计中,使用连接关系和芯片内部逻辑到管脚的接口;在底层设计中,使用硬件描述语言描述逻辑功能。二、设计实现从设计输入文件到熔丝图文件(FPGA)的编译过程,称为设计实现。此部分对开发系统来讲是核心部分,但对用户来讲,它的实现过程究竟如何并不关心。设计者只能通过设置“设计实现策略”等参数来控制设计实现过程。三、设计仿真这一部分的最大功能是便于用户查看自己的设计思想是否得到实现。我们可以在设计的过程中对整个系统乃至各个模块进行仿真,即在计算机上用软件验证连接功能是否正确,各部分的时序配合是否正确。如果有问题,可以很方便地修改错误,从而不必再硬件上动手脚。高级的仿真软件还可以对整个系统设计的性能进行估计。规模越大的设计,越发需要设计仿真。仿真不消耗资源,不浪费时间,以致有人认为仿真是EDA的精髓。设计仿真包括前仿真、后仿真和实验验证3个部分。在设计输入阶段进行的是仿真检验逻辑功能,所以又称前仿真;后仿真又叫时延仿真,在选择了具体器件并完成布局布线后进行的定时关系仿真。由于不同器件的内部时延不一样,不同的布局、布线方案也给延时造成了很大的影响,因此在设计实现后,对网络和逻辑块进行时延仿真、分析定时关系、估计设计性能是非常必要的;在器件编程后,需要利用实验手段测试器件最终的功能和性能指标,这是具有边界扫描测试能力和在系统可编程能力的器件,测试起来就较其它器件方便。四、下载编程下载编程时将设计阶段生成的JEDEC文件或位流文件装入到可编程器件中。器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等。普通的CPLD器件需要一种编程专用设备(编程器)完成器件编程。222MAXPLUS开发工具MAXPLUS开发工具是ALTERA自行设计的EDA软件,其全称是MULTIPLEARRAYMATRIXANDPROGRAMMABLELOGICUSERSYSTEM多阵列矩阵和可编程用户系统。MAXPLUS是完全集成开发环境的软件,可不需要第三方软件,支持3万门以下所有设计,其主要特点如下1、与结构无关。MAXPLUSCOMPLIER编译程序是MAXPLUS系统的核心,它支持ALTERA的CLASSIC、MAX5000、EPS464、MAX7000、FLEX8000和FLEX8000M可编程逻辑器件系列,提供工业界中唯一真正与结构无关的可编程逻辑设计环境。该编译器还提供强有力的逻辑综合与最小化功能,使用户比较容易将其设计集成到器件中。2、多平台。MAXPLUS的设计输入、处理与校验功能一起提供了全集成化的一套可编程开发工具,可以加快动态调试,缩短开发周期。3、模块组合式工具软件。设计者可从各种设计输入、设计处理和设计校验选项中进行选择,从而使设计环境用户化。需要时,还可保留初始的工具投入,并增添新的功能。由于MAXPLUS支持各种器件系列,设计者不必学习新工具即可支持新结构。4、硬件描述语言。MAXPLUS支持各种HDL设计输入选项,包括VHDL、VERILOGHDL和ALTERA硬件描述语言AHDL。5、开放的界面。ALTERA的工作与EDA厂家联系密切,MAXPLUS可与其他工业标准设计输入、综合与校验工具链接。它与EDA工具的接口符合EDIF200和209、参数模块库(LPM)、VERILOG、VHDL及其他标准。设计者可以使用ALTERA或标准的EDA设计输入工具去建立逻辑设计,使用MAXPLUSCOMPLIER对ALTERA器件进行编译,并使用ALTERA或其他EDA校验工具进行器件或板级仿真。6、多平台。可良好运行于普通PC机上,也可运行于工作站上。7、完全集成化。MAXPLUS的设计输入、处理与校验全部都集成在统一的开发环境下,这样可以加快动态调试,缩短开发周期。MAXPLUS将用户所设计的电路原理图或电路描述转变为CPLD内部的基本逻辑单元,写入芯片中,从而在硬件上实现用户所设计的电路。MAXPLUS的具体功能主要包括支持原理图和文本(AHDL、VHDL、VERILOGHDL)设计;自带综合器、仿真器;支持波形输入;支持波形模拟;时间分析;编译及下载。MAXPLUS的设计过程是由设计输入、设计处理、设计校验和器件编程四部分组成,如图24所示。图24MAXPLUS的设计图1、设计输入MAXPLUS设计输入的方法有多种,包括原理图输入方式、文本设计输入方式、高级设计输入方式、波形设计输入方式、层次设计输入方式和底层设计输入方式。最常用的是原理图输入和文本输入两种方式。(1)原理图输入是指用MAXPLUS提供的各种原理图库进行设计输入,是一种最直观的输入方式,但是输入效率低。(2)文本设计输入是指设计者用VHDL、VERILOGHDL或AHDL编写HDL源程序进行输入。采用这种方法描述的优点是效率高,结果也较容易仿真,在不同的设计库之间的转换非常方便。2、项目编译MAXPLUS处理一个设计时,COMPLIER在设计文件中读取信息并产生编译文件和仿真文件,TIMINGANALYZER可分析设计定时,MESSAGEPROCESSOR可自动定位错误。(1)自动错误定位。MESSAGEPROCESSOR与MAXPLUS的所有应用程序通信,可以给出信息(错误、警告等)。设计者可以利用它打开有错误源的文件,并以高亮显示。(2)逻辑综合与适配。MAXPLUSCOMPLIER的LOGICSYNTHESIZE逻辑综合模块对设计方案进行逻辑综合并能看到真正的结果。FITTER(适配)模块应用试探法可把综合的设计最恰当地用一个或多个器件实现,使设计者得以从冗长的布局布线工作中解脱出来。(3)设计规则检查。COMPLIER中的DESIGNDOCTOR程序能检查每一个设计文件。用户可以选择预先定义好的三组检查规则中的一种,也可以建立自己的规则。(4)编译文件的产生。ASSEMBLE(装配程序)模块已为编译的设计创建烧写文件(POF)。3、项目校验设计校验包括设计仿真和定时分析两部分。其作用是测试逻辑操作和设计的内部定时。(1)仿真。电路设计输入完之后,首先须检查其输入是否正确,这是一项简单的逻辑检查。MAXPLUS提供了功能编译选项,此时,只运行仿真网表的提取,而不作布局布线。所有延时为零延时,在仿真时需加入激励信号,激励信号可以用波形编译器直接编译成波形文件,也可以先用文本编译器按软件给定的语法规则编译成文本再转换成波形文件,如检查到错误则需修改原设计方案。功能仿真无误后,需要进行后仿真。首先进行完全编译,每个设计项目都有一个配置文件(ACF)所有配置参数都存放在这里。如果需要修改配置,既可以在菜单上修改,也可以直接修改此文件。对于相对简单的设计,也可以只做一步仿真,即后仿真。(2)定时分析。TIMINGANALYZER可以计算点到点的器件延时矩阵,确定器件引脚上的建立时间与保持时间,还可以计算最高时钟频率。MESSAGEPROCESSOR可以找出TIMINGANALYZER在设计文件中已证实的关键路径,并在适当的设计编辑中加以实现。4、器件编程MAXPLUSPROGRAMMER是使用COMPILER生成的烧写文件(POF)对ALTERA器件进行编程的。它可以用来对器件编程、校验、检查是否空白以及进行功能测试。223VHDL语言VHDL的英文全称是VHSIC(VERYHIGHSPEEDINTEGRATEDCIRCUIT)HARDWAREDESCRIPTIONLANGUAGE,即超高速集成电路硬件描述语言。它是最早被接纳为IEEE标准的硬件描述语言,可以说,它是数字系统设计描述的标准语言,绝大多数的EDA工具都支持VHDL语言。VHDL是一种全方位的硬件描述语言,包括从系统到电路的所有层次设计。在描述风格上VHDL支持结构、数据流和行为3种描述形式的混合描述。行为描述以过程语句来表达,数据流描述实际上是寄存器传输级(RTL级)语言的扩展,因此VHDL几乎覆盖了以往各种语句描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。利用VHDL语言设计数字系统具有以下4个优点(1)设计技术齐全、方法灵活、支持广泛。VHDL语言可以支持自上而下和基于库的设计方法,还支持同步电路、异步电路以及其他随机电路的设计。目前大多数EDA工具几乎在不同程度上都支持VHDL语言,这给VHDL语言进一步推广和应用创造了良好的环境。(2)系统硬件描述能力强。VHDL具有多层次描述系统硬件功能的能力,其描述的对象可以从系统的数学模型知道门级电路。(3)VHDL语言可以与工艺无关编程。VHDL设计硬件系统时,可以编写与工艺无关的信息,但是,与大多数HDL语言不同的是,当门级或门级以上层次的描述通过仿真验证后,可以用相应的工具将设计映射成不同的工艺(如MOS、CMOS等)。这样,工艺更新时,就无须修改程序,只需修改相应的映射工具。所以在VHDL中,电路设计的编程可以与工艺相互独立。(4)VHDL语言标准、规范,易于共享和复用。VHDL语言的语法较严格,给阅读和使用都带来了极大的好处。再者,VHDL作为一种工业标准,设计成果便于复用和交流,反过来也能进一步推动VHDL的推广和普及。23系统设计方案设计过程中应用MAXPLUS开发工具,使用TOPDOWN,即自顶向下的设计方法,底层设计分为两个模块分别利用硬件描述语言进行描述,顶层设计利用原理图描述,完成整个设计。第三章系统的硬件设计与实现31功能模块设计利用VHDL硬件描述语言结合FPGA可编程器件进行数字钟的设计,并通过数码管驱动电路动态显示计时结果。本系统采用的是ALTERA公司的FPGA器件FLEX10KEPF10K10LC844,FLEX灵活逻辑单元矩阵系列是ALTERA应用非常广泛的产品,这些器件具有比较高的集成度及丰富的寄存器资源,采用了快速,可预测延时的连续式布线结构,是一种将CPLD和FPGA的优点结合于一体的器件。该系统硬件结构框图如下图31所示。小时/分主机电源星期日月年年月日小时/分星期主机及电源图31万年历电子钟的硬件结构由于电子钟的全部功能集成在一个芯片上,所以将EPF10K10LC844的主要应用管脚的芯片简化图描述如图32。图32应用管脚图(1)输入信号RESET复位信号,低电平有效。复位后电子钟处于初始状态。CLK计数时钟信号。用来计数脉冲,同1KHZ时钟源相连。CLKDSP扫描时钟信号CLKDSP,同32KHZ时钟源相连SET6个调节键。用来调节年、月、日、时、分、秒。EN使能信号。当EN1时,允许计时;当EN0时,禁止计时。(2)输出信号SPEAKER接扬声器,主要用于报时和定点时的报声功能。SEL06扫描显示的驱动信号管脚。LAM01314个LED为了实现电子钟的上述功能将其分为四个功能模块,报时模块、控制计时模块、校时模块、显示模块。四个模块的功能如下1控制计时模块计时模块的主要功能时计时。计时信号的产生可以根据一般的计时方法,即对基准的时钟脉冲进行计数,就可以产生秒、分、时的信号。我们选择的基本时钟频率为1KHZ,因此产生的秒信号的计数应为模100计数器;产生的分的时钟信号需要对秒信号模60的计数;产生的小时的时钟信号需要对对分信号60膜技术,而小时的进位需要模24计数器。日历的计数与时间的相同。2报时模块整点报时电路在整点时产生报时信号。在59分5059秒时,每一秒产生一个低音(频率较低信号),在00分00秒时响一声高音(频率较高信号)。报时电路也可以用基本的逻辑门电路来实现。3校时模块校时电路用来完成对计时时间的修改与校正。校时可以用开关或几个按键控制,即校时允许控制开关,校按键。校时允许控制端为高电平时,允许对计时电路中时间值的分、时、日、月、年进行校正。校时电路为异步时序电路,可以用基本的逻辑门电路来实现。4显示模块显示模块用来对计时的时间及日期在数码管中显示出来。计时电路中产生的时间值为BCD码的形式。所以必须有一个BCD/七段译码器,用来驱动七段LED数码管。为了节省可编程逻辑器件的I/O资源(这在复杂数字系统设计时尤为重要),数码管采用扫描显示的形式,即一次只驱动一位数码显示管,所有数码管轮流显示,只要扫描的速度足够快,由于视觉暂留的效果,眼睛就基本察觉不出闪烁。因此,显示电路还可以进一步划分为扫描电路BCD/七段译码器两个部分。32系统功能实现万年历电子钟采用分层设计,采取用VHDL硬件描述语言进行底层的控制计时模块、校时模块、报时模块、显示模块四个模块的设计。原理图进行顶层元件电子钟的设计的TOPDOWN自顶向下的设计方法。321底层元件设计底层元件设计分为四个部分,分别为(1)控制计时的设计;(2)计时模块的设计;(3)校时模块的设计;(4)显示模块设计。设计过程如下一、控制计时的设计计时模块的时间计时部分包括两个模60的计数器和一个模24的计时器。两个模60的计数器分别用来产生秒和分的时钟信号并为下一级计数(时和分)提供计数脉冲。模24的计数器用来产生小时的信号。第一个模60计数器(输出秒信号)的计时时钟CLK为1秒时钟计数慢60,输出端输出一个正脉冲。第二个模60的计数器(输出分钟信号)的计数时钟CLK为1分钟时钟,计数慢60时输出端输出一个正脉冲。模24计数器(输出小时信号)的计数时钟CLK2为1小时时钟。以此规律,日、月、年的计数器也产生相应的时钟。其详细模块电路在顶层元件设计中具体讲解。1模60计数器其硬件描述语言(秒和分共用些模块)MODULECOUNT_60CLK_COUNT_60,CLEAR,LOAD,LOAD_DATA,OUT,UPDATE,COUNT_60_CARRYINPUTCLK_COUNT_60,CLEAR,LOAD,UPDATE/UPDATE为计数器加1INPUT70LOAD_DATAOUTPUT70OUTOUTPUTCOUNT_60_CARRYREG70OUTWIRECOUNT_60_CARRYASSIGNCOUNT_60_CARRYOUT8H59/定义进位信号,在校时模式下通过UPDATE键校分时控制不向小时进位,在计时模式下则能正常进位ALWAYSNEGEDGECLK_COUNT_60ORNEGEDGECLEAR/异步模式,下降沿触发BEGINIFCLEAROUT4/判断是否为闰年IFTEMP0/被4整除商为0则为29天BEGINIFDAYS8H29BEGINDAYS1DAY_CARRY1ENDELSEIFDAYS309BEGINDAYS300DAYS74DAYS741ENDELSEIFDAYS309DAYS30DAYS301ELSEDAY_CARRY0ENDELSE/反之则为28天BEGINIFDAYS8H28BEGINDAYS1DAY_CARRY1ENDELSEIFDAYS309BEGINDAYS300DAYS74DAYS741ENDELSEIFDAYS309DAYS30DAYS301ELSEDAY_CARRY0ENDENDENDENDMODULE二、校时模块(在主体程序设计中体现)三、报时模块(在主体程序设计中体现)四、显示模块显示模块用来将即使信号输出至七段数码管。因此计数的结果为BCD码,所以首先要改成BCD七段码的译码。显示采用扫描的形式,所有数码管轮流显示,一次只驱动一个数码管。显示模块的硬件描述语言(此程序只完成时钟的功能,由于日历的功能基本相似,不做重复)1BCD码转换成4_7译码模块MODULEDECODE4_7DECODEOUT,INDECOUTPUT60DECODEOUTINPUT30INDECREG60DECODEOUTALWAYSINDECBEGINCASEINDEC4B0000DECODEOUT7B11111104B0001DECODEOUT7B01100004B0010DECODEOUT7B11011014B0011DECODEOUT7B11110014B0100DECODEOUT7B01100114B0101DECODEOUT7B10110114B0110DECODEOUT7B10111114B0111DECODEOUT7B11100004B1000DECODEOUT7B11111114B1001DECODEOUT7B1111011DEFAULTDECODEOUT7BXENDCASEENDENDMODULE322顶层元件设计1整体电路图在分别完成了控制计时模块、校时模块、报时模块、显示模块的底层设计后,就可以很容易的进行顶层元件脉冲分配器的设计。顶层元件设计采用原理图输入方式,即根据接口方式,在一个顶层设计中将以上控制计时模块、校时模块、报时模块、显示模块四个模块通过元件例化,并针对EPF10K10LC844器件I/O管脚进行定义与锁定。连接成一个完整的设计整体,整体电路设计图如图33所示。图33顶层电路图其中输入CLR、CCK、MC、CLK1K输出LEDA、B、C、D、E、F、G、RING2主体程序的设计/信号定义CLK_1KHZ系统时钟输入,通过分频程序得到CLK_1HZ,CLK_100HZ,CLK_500HZ;MODE功能控制信号;为0计时功能;为1闹钟功能;为2手动校时功能;为3数字跑表功能;TURN接按键,在手动校时功能时,选择是调整小时,还是分钟;UPDATE接按键,手动调整时,每按一次,计数器加1;HOUR,MINUTE,SECOND此三信号分别输出并显示时、分、秒信号,皆采用BCD码计数,分别驱动6个数码管显示时间;ALARM输出到扬声器的信号,用于产生闹铃音和报时音;闹铃音为持续30秒的“嘀嘀嘀”音,若按住“UPDATE”键,则可屏蔽该音;整点报时音为“嘀嘀嘀嘀嘟”四低一高;CLEAR接按键,在数字跑表模式清零PAUSE接按键,在数字跑表模式暂停和启动/MODULECOUNTCLK_1KHZ,HOUR,MINUTE,SECOND,MODE,UPDATE,TURN,ALARM,CLEAR,PAUSEINPUTCLK_1KHZ,MODE,UPDATE,TURN,CLEAR,PAUSEOUTPUTALARM/OUTPUT60HOUR_H,HOUR_L,MINUTE_H,MINUTE_L,SECOND_H,SECOND_L/REG60HOUR_H,HOUR_L,MINUTE_H,MINUTE_L,SECOND_H,SECOND_L/以上定义的变量是把秒,分,时输出的BCD码译成4_7段的变量,由于实验板上自带4_7的译码,所以没有暂不用4_7译码OUTPUT70HOUR,MINUTE,SECONDREGALARM_INT,ALARM_CLOCKREGCLK_1HZ,CLK_100HZ,CLK_500HZREG70HOUR,MINUTE,SECONDREG10SELECT_HMREG20MREG70HOU_N,MIN_N,SEC_N,HOU_A,MIN_AREG70MSC,SC,MCREGMS_CARRY,S_CARRY,M_CARRYREG80JREG20KREGSEC_CARRY_N,MIN_CARRY_N,HOU_CARRY_N,MIN_CARRY_A,HOU_CARRY_AREGM_UPDATE_A,H_UPDATE_A,M_UPDATE_N,H_UPDATE_NWIREM_CLK_N,H_CLK_N,M_CLK_A,H_CLK_AALWAYSPOSEDGECLK_1KHZ/分频程序BEGINFJ499/通过计数器实现分频BEGINJ0CLK_1HZCLK_1HZ/通过1KHZ分成1HZENDELSEJJ1CLK_500HZJ0/得到500HZENDALWAYSPOSEDGECLK_1KHZ/分频程序BEGINIFK4BEGINK0CLK_100HZCLK_100HZ/得到100HZ,作为数字跑表的输入脉冲ENDELSEKK1ENDALWAYSPOSEDGEMODE/MODE信号控制系统在四种功能间转换BEGINIFM3M0/控制功能的数量ELSEMM1ENDALWAYSPOSEDGETURNSELECT_HMSELECT_HM/选择是调整小时还是分钟ALWAYSBEGINCASEM2BEGIN/计时模式和校时模式IFSELECT_HMM_UPDATE_NUPDATE/把UPDATE按键的值保存在M_UPDATE_N分钟中ELSEH_UPDATE_NUPDATE/通过TURN按钮后则保存在H_UPDATE_N小时中END1BEGIN/定时模式IFSELECT_HMM_UPDATE_AUPDATE/UPDATE按键操作的值保存在M_UPDATE_A分钟中ELSEH_UPDATE_AUPDATE/UPDATE按键操作的值保存在H_UPDATE_A小时中ENDDEFAULTM_UPDATE_A,H_UPDATE_A,M_UPDATE_N,H_UPDATE_N0ENDCASEENDASSIGNM_CLK_NSEC_CARRY_N/在计时和校时模式下分钟模块的触发条件ASSIGNM_CLK_AM_UPDATE_A/在定时模式下分钟模块的触发条件ASSIGNH_CLK_NH_UPDATE_N|MIN_CARRY_N/在计时和校时模式下小时模块的触发条件ASSIGNH_CLK_AH_UPDATE_A|MIN_CARRY_A/在定时模式下小时模块的触发条件ALWAYS/显示控制CASEM3B000/计时状态下的时、分、秒显示BEGINHOURHOU_NMINUTEMIN_NSECONDSEC_NEND3B001/定时状态下的时、分、秒显示BEGINHOURHOU_AMINUTEMIN_ASECOND8HZZEND3B010/校时状态下的时、分、秒显示BEGINHOURHOU_NMINUTEMIN_NSECOND8HZZEND3B011/数字跑表状态下的分、秒、百分秒显示BEGINHOURMCMINUTESCSECONDMSCENDENDCASEALWAYS/闹铃功能若按住“UPDATE”键不放,可屏蔽闹铃响IFMIN_NMIN_AELSEALARM_CLOCK0ASSIGNALARMALARM_CLOCKCLK_1KHZ0|ALARM_INT/产生闹铃音或整点报时音ALWAYS/产生整点报时信号ALARM_INTBEGINIFMIN_N8H59/在55,56,57,58钟时产生低音ELSEIFMIN_N8H59/在59秒时产生一高音ELSEALARM_INT0ENDCOUNT_60SEC_NCLK_1HZ,1,1,0,SEC_N,UPDATE,SEC_CARRY_N/实现计时和校时模式下秒的计数和进位COUNT_60MIN_NM_CLK_N,1,1,0,MIN_N,UPDATE,MIN_CARRY_N/实现计时和校时模式下分的计数和进位COUNT_60MIN_AM_CLK_A,1,1,0,MIN_A,UPDATE,MIN_CARRY_A/实现定时模式下分的计数和进位COUNT_24HOU_NH_CLK_N,1,1,0,HOU_N,HOU_CARRY_N/实现计时和校时模式下小时的计数和进位COUNT_24HOU_AH_CLK_A,1,1,0,HOU_A,HOU_CARRY_A/实现定时模式下小时的计数和进位COUNT_100M_SCCLK_100HZ,CLEAR,1,0,PAUSE,MSC,MS_CARRY/实现数字跑表模式下毫秒的计数和进位C60S_CMS_CARRY,CLEAR,1,0,SC,S_CARRY/实现数字跑表模式下秒的计数和进位C60M_CS_CARRY,CLEAR,1,0,MC,M_CARRY/实现数字跑表模式下分的计数和进位/DECODE4_7DE_SEC_HSECOND_H,SECOND74/调用DECODE4_7译码模块DECODE4_7DE_SEC_LSECOND_L,SECOND30/分别译码秒,分,时的高4位和低4位DECODE4_7DE_MIN_HMINUTE_H,MINUTE74DECODE4_7DE_MIN_LMINUTE_L,MINUTE30DECODE4_7DE_HOUR_HHOUR_H,HOUR74DECODE4_7DE_HOUR_LHOUR_L,HOUR30/ENDMODULE主体程序编译与仿真1分频程序的仿真波形下图为时、分、秒仿真图33芯片的选择在开发选择器件时,一般遵循“多”、“快”、“好”、“省”四个原则。“多”就是芯片功能多,“快”就是芯片速度快,“好

温馨提示

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

评论

0/150

提交评论