基于cpld的数字钟_第1页
基于cpld的数字钟_第2页
基于cpld的数字钟_第3页
基于cpld的数字钟_第4页
基于cpld的数字钟_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

基于CPLD的数字钟摘要本设计为一个基于CPLD的多功能数字钟,具有时、分、秒计数显示功能,以24小时循环计数;具有时间校对、闹钟以及整点报时功能。本设计采用EDA技术,以硬件描述语言VHDL为系统逻辑描述手段。在QUARTUS全集成开发环境下,采用自顶向下的设计方法,由各个基本模块共同构建一个基于CPLD的数字钟。系统主芯片采用ALTERA公司MAX系列的EPM570T100C5N,由时钟模块、控制模块、计时模块、定时模块、显示以及报时模块组成。设计方案经编译和仿真后,可在可编程逻辑器件上下载验证,本系统能够完成时、分、秒的显示,并可由外部按键输入进行数字钟的校时、清零、设闹钟功能。关键词数字钟;硬件描述语言;VHDL;CPLD;动态扫描ADIGITALCLOCKBASEDONCPLDABSTRACTTHEDESIGNFORAMULTIFUNCTIONALDIGITALCLOCK,WITHAHOURS,MINUTESANDSECONDSCOUNTDISPLAYTOA24HOURCYCLECOUNTHAVEPROOFFUNCTIONSANDTHEWHOLEPOINTTIMEKEEPINGFUNCTIONANDSETAALARMTHEUSEOFEDADESIGNTECHNOLOGY,HARDWAREDESCRIPTIONLANGUAGEVHDLDESCRIPTIONLOGICMEANSFORTHESYSTEMDESIGNDOCUMENTS,INQUARTUSTOOLSENVIRONMENT,ATOPDOWNDESIGN,BYTHEVARIOUSMODULESTOGETHERBUILDACPLDBASEDDIGITALCLOCKTHEMAINSYSTEMCHIPSUSEDEPM570T100C5N,MAKEUPOFTHECLOCKMODULE,CONTROLMODULE,TIMEMODULE,DATADECODINGMODULE,DISPLAYANDBROADCASTMODULEAFTERCOMPILINGTHEDESIGNANDSIMULATIONPROCEDURES,THEPROGRAMMABLELOGICDEVICETODOWNLOADVERIFICATION,THESYSTEMCANCOMPLETETHEHOURS,MINUTESANDSECONDSRESPECTIVELY,USINGKEYSTOMODIFY,CLEARED,SETAALARMKEYWORDSDIGITALCLOCKHARDWAREDESCRIPTIONLANGUAGEVHDLCPLDDYNAMICSCANNING目录摘要IABSTRACTII前言11方案选择及论证311方案的比较312芯片的选择313设计方案的概述42数字钟总体设计方案521数字钟的构成522数字钟的工作原理623数字钟的硬件电路设计73单元电路设计831分频模块电路设计与实现832独立按键消抖模块1033计数模块设计与实现1234闹钟模块设计与实现1535整点报时模块设计与实现1636动态扫描显示模块设计与实现174编译与调试2041编译软件介绍2042编译与仿真2043实现与布局布线2244调试与下载配置225实验结论与研究展望2451实验结论2452研究展望24结束语26参考文献27致谢28前言现代社会的标志之一就是信息产品的广泛使用,而且是产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。前者以微细加工技术为代表,而后者的代表就是电子设计自动化(ELECTRONICDESIGNAUTOMATIC,EDA)技术。本设计采用VHDL硬件描述语言进行设计,VHDL主要用于描述数字系统的结构、行为、功能和接口;支持结构、数据流、行为三种描述形式的混合描述、覆盖面广、抽象能力强,因此在实际应用中越来越广泛。ASIC是一种为专门目的而设计的集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。CPLD是ASIC的近亲,一般通过原理图、VHDL对数字系统建模,运用EDA软件仿真、综合,生成基于一些标准库的网络表,配置到芯片即可使用。它与ASIC的区别是用户不需要介入芯片的布局布线和工艺问题,而且可以随时改变其逻辑功能,使用灵活。在控制系统中,键盘是常用的人机交换接口,当所设置的功能键或数字键按下的时候,系统应该完成该键所设置的功能。因此,键输入是与软件结构密切相关的过程。根据键盘的结构不同,采用不同的编码方法。但无论有无编码以及采用什么样的编码,最后都要转换成为相应的键值,以实现按键功能程序的转移。钟表的数字化给人们的生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传统的电子产品在设计上的显著区别是大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低。同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。美国ALTERA公司的可编程逻辑器件采用全新的结构和先进的技术,加上QUARTUS开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。EDA技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软什,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片。本设计是利用VHDL硬件描述语言结合可编程逻辑器件进行的,并通过数码管动态显示计时结果。数字钟可以由各种技术实现,如单片机等利用可编程逻辑器件具有其他方式没有的特点,它具有易学、方便、新颖、有趣、直观、设计与实验项目成功率高,理论与实践结合紧密,体积小、容量大、I/O口丰富、易编程和加密等特点,并且它还具有开放的界面、丰富的设计库、模块化的工具以及LPM定制等优良性能,应用非常方便。因此,本设计采用可编程逻辑器件实现。现在是一个知识爆炸的新时代。新产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人。数字化的钟表给人们带来了极大的方便。近几年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。本设计主要研究基于CPLD的数字钟,要求时间以24小时为一个周期,显示时、分、秒。具有校时、设闹钟及整点报时的功能,可以对时、分、秒进行单独校对,使其校正到标准时间,并能调整闹钟的时间,校对时间的时分秒的按键和设闹钟的时分秒的按键相同,通过另一按键来切换至校对时间或是设闹钟,为保证计时的稳定及准确须由晶体振荡器提供时间基准信号。1方案选择及论证11方案的比较本时钟的设计具体有三种方法。一是通过单纯的数字电路来实现;二是使用单片机来控制实现;三是使用可编程逻辑器件(CPLD/FPGA)来实现。由于纯数字电路实现不仅造价很高、设计麻烦,且后期的调试与验证会有很多连线与布局的问题,此方法已经很不实用了,所以放弃此方法;而第二种和第三种方法均是采用一个主控芯片来控制时钟电路,再外接不同的模块来实现完整的功能,需进一步说明两种方法的不同。1单片机单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。2可编程逻辑器件可编程逻辑器件PLD(PROGRAMMABLELOGICDEVICEPLD是做为一种通用集成电路生产的,他的逻辑功能按照用户对器件编程来搞定。一般的PLD的集成度很高,足以满足设计一般的数字系统的需要。这样就可以由设计人员自行编程而把一个数字系统“集成”在一片PLD上,而不必去请芯片制造厂商设计和制作专用的集成电路芯片了。相比较而言,单片机一般用于操作控制,PLD一般用于组合逻辑,功能各不相同,但PLD功能比普通的单片机更强、速度更快、价格也越来越便宜。并且PLD更加高端一些,灵活性更强,近来发展很快,之后的电子技术发展PLD的应用将会非常广泛。选择PLD进行设计会对以后的专业发展有很大的帮助,所以选择第三种方法即采用可编程逻辑器件进行设计。12芯片的选择目前使用比较广泛的可编程逻辑器件主要有CPLDCOMPLEXPROGRAMMABLELOGICDEVICE复杂可编程逻辑器件和现场可编程门阵列FPGA(FIELDPROGRAMMABLEGATEARRAY。CPLD相比FPGA功能相当并相对容易、成本较低。因此本设计使用的芯片是ALTERA公司MAX系列的EPM570T100C5N,ALTERA的MAXII系列CPLD是有史以来功耗最低、成本最低的CPLD。在所有CPLD系列中,其单位I/O引脚的功耗和成本都是最低的。此芯片能满足本设计的要求,改进升级也比较方便。13设计方案的概述本方案以CPLD芯片为核心,将外接时钟信号送至CPLD作为时钟基准信号和动态扫描信号。在芯片内部分别设计出数字钟的各个模块,如分频模块、计时模块、闹钟模块、整点报时模块和动态扫描模块等。将各位信号送出至数码管显示。本方案的电路比较简单,只用外接一个稳压电源为主控芯片和数码管供电,再接一个晶振和一个数码管即可。本设计的电路简单,但功能齐全,可以设置闹钟、时间校对和整点报时,CPLD的设计改动非常方便,只用改变程序设计出相应的内部模块就可以实现一些基本门电路的功能。根据需要可以增添日历、温度显示等功能,所以本设计具有很强的升级前景。2数字钟总体设计方案21数字钟的构成数字钟实际上是一个对标准频率1HZ进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。图21所示为数字钟的一般构成框图。主要包括时问基准电路、计数器电路、控制电路、译码和显示电路。其中的控制逻辑电路是比较灵活多样的,不断完善它可以增强数字钟的功能。控制开关调试和设闹秒计数六十进制分计数六十进制时计数二十四进制动态扫描显示晶振分频整点报时六位数码管图21数字钟的设计框图控制开关有五个,分别为复位开关(用于系统复位清零)、设闹与时钟切换开关(用于设置闹钟和时钟的切换)、调秒开关(用于调整闹钟或时钟的秒位)、调分开关(用于调整闹钟或时钟的分钟位)、调时开关(用于调整闹钟或时钟的小时位)。晶振为24MHZ石英晶体振荡器,产生稳定的频率为24MHZ的时钟信号,接至芯片内的分频模块,分成1KHZ信号和1HZ信号,1KHZ信号接至动态扫描模块作为扫描信号,1HZ信号接至秒计数模块作为时钟基准信号。动态扫描模块输出时、分、秒的显示信号和位选信号接至六位数码管,作为动态扫描显示信号。扫描的频率由分频电路从外接晶振分频得到,且六位数码管的电源有外接稳压电源提供。本设计的总体框架如图22所示。图22数字钟的总体框架22数字钟的工作原理晶体振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器分别输出标准秒脉冲(1HZ)和扫描信号(1KHZ)。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻L”的规律计数。计满后各计数器清零,重新计数。计数器的输出分别经译码器送数码管显示。计时出现误差时,可以用校时电路校小时、校分或校秒。在控制信号中除了一般的校时信号外,还有时钟清零信号、设闹与计时显示的切换信号。控制信号由独立按键输入并加有按键去抖电路。时基电路可以由石英晶体振荡电路构成,如果晶振频率为24MHZ,经过24000000分频就可以得到秒脉冲信号。显示由六位七段数码管构成,通过动态扫描译码显示,可节省I/O资源。23数字钟的硬件电路设计数字钟需外接24MHZ的晶振为电路提供时钟基准,并外接按键控制电路功能,外接六位数码管显示,以及稳压电源模块为电路提供电源。硬件电路的框图如图23所示。稳压电路CPLDEPM570T100C5N五位按键晶振六位数码管图23数字钟的硬件电路框架本电路的外接晶振采用24MHZ的石英晶体振荡器,经分频后输出时钟基准和扫描时钟基准;稳压模块采用AMS1117/33三端稳压器,通过USB接口输入5V电压,经稳压器输出33V为CPLD芯片和数码管显示提供电压;五位按键分别控制系统复位、计时与设闹的显示切换、秒调节、分钟调节和小时调节;六位数码管用于显示时钟。3单元电路设计31分频模块电路设计与实现晶体振荡器是构成数字式时钟的核心,振荡器的稳定度及频率的精度决定了数字钟计时的准确程度,它保证了时钟的走时准确及稳定。石英晶体的选频特性非常好,只有某频率点的信号可以通过它,其它频率段的信号均会被它所衰减,而且,振荡信号的频率与振荡电路中的R、C元件的数值无关。因此,这种振荡电路输出的是准确度极高的信号。然后再利用分频电路,将其输出信号转变为秒信号和扫描信号,其组成框图如图31所示。晶振分频电路图31秒信号产生电路框图本系统使用的晶体振荡器电路给数字钟提供了一个频率稳定准确的24MHZ的方波信号,其输出至分频电路。分频电路的逻辑框图如图32所示。图32分频电路模块分频电路的程序如下LIBRARYIEEEUSEIEEESTD_LOGIC_1164ALLUSEIEEESTD_LOGIC_UNSIGNEDALLENTITYFENPINISPORTCLKININSTD_LOGICCLKOUT1OUTSTD_LOGICCLKOUT1KOUTSTD_LOGICENDARCHITECTUREBEHAVEOFFENPINISSIGNALCLK1KHZSTD_LOGICSIGNALCLK1HZSTD_LOGICBEGINPROCESSCLKINVARIABLECOUNTINTEGERRANGE0TO1199BEGINIFCLKINEVENTANDCLKIN1THENIFCOUNT1199THENCLK1KHZENENENENENENENDISPLAYDISPLAYDISPLAYDISPLAYDISPLAYDISPLAYDISPLAYDISPLAYDISPLAYDISPLAYDISPLAY“0000000“ENDCASEENDIFENDPROCESSEND动态扫描方式不仅节约了大量的I/O口,而且也节约了软件资源。因为如果使用每个数码管单独显示的话,六个数管将需要68个I/O口;并且每个数码管都需要相应的译码电路模块,很多软件资源就被浪费掉了。所以动态扫描模块是非常实用的,在后期升级时,如果需要显示年、月、日及温度等信息,则可将此模块换成LCD液晶模块,同样非常节省I/O口,并能显示较多的信息。4编译与调试41编译软件介绍本设计使用的芯片是ALTERA公司的MAX系列CPLD,因此设计的编译和调试要使用ALTERA公司的开发工具QUARTUS。QUARTUS是ALTERA公司的综合性PLD开发软件,支持原理图、VHDL、VERILOGHDL以及AHDL(ALTERAHARDWAREDESCRIPTIONLANGUAGE)等多种设计输入形式,内嵌有自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。是一个完全集成化、易学易用的可编程逻辑设计环境,可以在多个平台上运行。QUARTUS具有以下主要模块1设计输入QUARTUS软件中的工程由所有设计文件和与设计有关的设置组成。用户可以建立包括ALTERA宏功能模块、参数化模块库(LPM)函数和知识产权函数(IP)再内的设计。2综合用户可以利用编辑器中的ANALYSISSYNTHESIS模块综合VHDL文件或VERILOG文件,也可以使用其他综合工具进行综合,然后生成EDF网表文件或VQM文件。3仿真利用仿真器进行时序仿真和功能仿真。可以仿真整个设计,也可以仿真设计中的任何部分,还可以使用第三方仿真工具进行仿真。4布局布线利用QUARTUSFITTER,执行布局布线。通过ANALYSISSYNTHESIS建立的数据库,将工程的逻辑和时序要求与器件的可用资源相匹配。5时序分析利用TIMINGANALYZER对设计进行时序分析,帮助满足设计的时序要求。在默认情况下,自动生成时序信息以供分析、调试和验证设计的时序性能;还可以进行最优时序分析,提供最佳的时序结果,从而得到外部信号的时钟至引脚的延时。42编译与仿真一般说来,一个比较大的完整的项目应该采用层次化的描述方法分为几个较大的模块,定义好各功能模块之问的接口,然后各个模块再细分去具体实现,这就是TOPTODOWN(自顶向下)的设计方法。目前这种高层次的设计方法已被广泛采用。高层次设计只是定义系统的行为特征,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换成针对某种工艺优化的网络表,使工艺转化变得轻而易举。CPLD/FPGA系统设计的工作流程如图41所示。系统划分VHDL代码或图形方式输入编译器代码级功能仿真仿真综合库综合器适配前时序仿真CPLD/FPGA实现适配报告ASIC实现适配后时序仿真器件编程文件适配后仿真模型适配器图41CPLD/FPGA系统设计流程前面已经进行了VHDL代码输入,在ANALYSISSYNTHESIS综合器中进行编译和综合正确无误。之后进行功能仿真和时序仿真。进行时序仿真和功能仿真时,可以使用QUARTUS自带的仿真工具,也可以使用第三方的仿真工具进行仿真,本设计使用自带的仿真工具,设置仿真属性,建立波形矢量文件用于存储仿真波形;选择GENERATEFUNCTIONALSIMULATIONNETLIST命令产生功能仿真网表文件;之后再选择STARTSIMULATION命令进行仿真,仿真运行结束后,产生仿真报告及输出波形文件。使用引脚规划器(PINPLANNER)进行引脚分配,本设计的引脚分配图如图42所示。图42芯片引脚分配图43实现与布局布线各模块均通过编译综合,生成相应的编译报告,再将各模块连接起来在进行总体的编译和综合,综合结果的本质是一些由与、或、非门,触发器,RAM等基本逻辑单元组成的逻辑网表,它与芯片的实际的配置情况还有较大差距,因此须将综合输出的逻辑网表适配到具体的CPLD期间上进行验证,这个过程就叫做实现过程。在实现过程中最主要的过程是布局布线(PAR,PLACEANDROUTE);所谓布局(PLACE)是指将逻辑网表中的硬件原语或者底层单元合理地适配到CPLD内部的固有硬件结构上;所谓布线(ROUTE)是根据布局的拓扑结构,利用CPLD内部的各种连线资源,合理正确的连接各个元件的过程。44调试与下载配置经上述一系列的编译、综合、分析、验证后证明此设计可以正确运行,最后的步骤就是在线调试或者将生成的配置文件写入芯片中进行测试。本设计采用JTAG编程方式,可以进行在系统的编程与调试,将JTAG的四个引脚分别与CPLD芯片的相应引脚相连进行下载验证和调试,JTAG的四个引脚分别为TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。JTAG与CPLD的连接方式如图43所示。图43CPLD与JTAG编程连接观察数字钟运行是否正常再进行相应的调整,在调试中发现按键的反应有一定的延迟,感觉是去抖的扫描时间过长造成的,便将去抖模块的扫描时间减小,再下载调试发现此问题解决。再不断的进行测试以验证设计是否还有瑕疵,慢慢进行改正。本设计采用了资源丰富的可编程逻辑器件,整个设计全部VHDL来编写,使得本系统的软件系统很大而硬件结构十分简单,因此在软硬件都基本调通的情况下,系统的软硬件联调难度不是很大。在通过了QUARTUS软件的编译后,再经功能仿真和定时分析,在确认程序没问题后,直接下载到芯片进行硬件调试,单独调试好每一个模块,然后再连接成一个完整的系统调试。调试时,使用逻辑分析仪,分析CPLD输入输出,可以发现时序与仿真结果是否有出入,便于检查电路中的故障。CPLD的时钟频率很高,对周围电路的一定影响。我们采取了一些抗干扰措施。例如引线尽量短,减少交叉,每个芯片的电源与之间都有接有去耦电容,数字地与模拟分开。实践证明,这些措施对消除某些引脚上的“毛刺”及高频噪声起到了很好的效果5实验结论与研究展望51实验结论将设计程序下载到电路板上运行调试后,最终结果与预期效果基本一致,时、分、秒能够正常计数并能由控制键分别显示,整点报时和闹钟响铃功能正常。在此次的数字钟设计过程中,更进一步地熟悉了有关数字电路的知识和具体应用。学会了利用QUARTUS软件进行原理图的绘制,硬件描述语言VHDL的编写,程序的仿真等工作。并能根据仿真结果分析设计的存在的问题和缺陷,从而进行程序的调试和完善。在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的,例如在对具体模块的仿真的过程中,往往没有考虑到整体设计的层面以及与上下模块接口的设计。再加上器件对信号的延时等问题,实际下载到电路板上后会出现一系列的问题,因此仿真图和电路连接图还是有一定区别的。此次的数字钟设计的重点在于各个模块代码的编写,虽然能把各个模块的代码编写出来,并能正常显示,但对于各个模块的优化设计还有一定的缺陷和不足。总的来说,通过这次的设计实验更进一步地增强了实验的动手能力,对数字钟的工作原理也有了更加透彻的理解。在本设计调试过程中遇到了一些问题如下1当程序下载到电路板上后,数码管显示全部为零,计数器不工作,经分析得知程序中总的清零信号一直保持有效状态,改动程序后计数器开始计数。2当秒时钟计数到59时变0时,分计数模块滞后计数,考虑到器件的延时,将程序中秒的进位信号提前1秒。3利用控制按键给分模块加计数时,发现的分加到60时,时则在没有按键按下的情况下一直加计数。检查程序后得知,分的进位信号在分为60后变一直有效,其它模块也存在这种情况,改动程序后整个模块工作正常。4在检测按键时,由于扫描按键的时钟频率不是很高,所以控制起来显得稍慢些,但是工作正常,能够满足实际的需要。52研究展望本设计虽然能显示时钟,但是日常使用中常常要用到年、月、日,在实际应

温馨提示

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

评论

0/150

提交评论