电子科技大学成都学院毕业论文_第1页
电子科技大学成都学院毕业论文_第2页
电子科技大学成都学院毕业论文_第3页
电子科技大学成都学院毕业论文_第4页
电子科技大学成都学院毕业论文_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、摘要摘要随着EDA(电子设计自动化)技术的发展和应用领域的扩大,EDA技术在电子信息、通信、自动化控制及计算机应用领域的重要性日益突出。EDA技术作为现代电子设计技术的核心,它依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description language)为系统逻辑描述手段完成的设计文件,自动完成逻辑化简、逻辑分割、逻辑综合(布局布线)、逻辑优化和仿真测试等项功能5,直至实现既定性能的电子线路系统功能。EDA的关键技术之一是用形式化方法来描述数字系统的硬件电路、即用所谓的硬件描述语言来描述硬件电路。 本设计是基于V

2、erilong语言的万年历。在设计中,首先介绍了万年历的设计思路,且在Quartus II开发环境中编译和仿真所设计各个模块的程序,并逐一调试程序使各模块达到设计目的。其次,利用各元器件生成顶层文件,进行系统仿真。最后,对顶层原理图进行引脚设定,并下载到试验箱验证,证明系统的可行性。 关键字:Verilong HDL  万年历   Quartus IIABSTRACTWith the development of EDA (electronic desig

3、n automation) technology  and expansion of application fields ,the importance of EDA technology in electronic information, communication, auto control, and computer applications is 

4、;becoming increasingly prominent. EDA technology is the core of the modern electronic design techniques, which rely on powerful computers . In EDA tools software platform, 

5、60;computer automatically completes logic simplification,logical partitions, logic synthesis , logic optimization ,logical simulation and other functions until the electronic circuit system achie

6、ves the stated performance. However, the realization of these function bases on the description of the system using the hardware description language HDL (Hardware Description 

7、;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&#

8、160;language to describe the hardware circuit. Thedesign is the calendar based on VerilongHDL language. Firstly, in which ,I introduce ideas about designing the calendar. In a

9、ddition, I compile and simulate the program of different modules in the Quartus II development environment and debug one by one to make different modules meet objectives&

10、#160;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 downl

11、oad to the test chamber to prove the feasibility of the system.     Key words: Verilong HDL   calendar:Quartus II第1章 引言目 录第1章 引言11.1选题意义 11.2电子万年历的研究背景 11.3国内外产品研究综述  21.4 FPG

12、A简介32.1设计要求 42.2设计方案42.2.1电子万年历的发展42.2.2电子万年历的工作原理53.1时钟问题83.1.1全局时钟83.1.2门控时钟83.1.3多级逻辑时钟93.1.4波动式时钟93.2电子万年历的控制系统93.2.1主控制模块 maincontrol103.2.2时间及其设置模块 time_auto_and_set113.2.3时间模块 timepiece_main113.2.4时间设置模块 timeset123.3时间数据与时间设置数据多路选择模块 time_mux143.3.1时间显示动态位选模块 time_disp_select163.3.2显示模块

13、disp_data_mux173.3.3秒表模块 stopwatch183.3.4日期显示与设置模块 date_main193.3.5日期自动工作模块 autodate203.3.6日期设置模块 setdate203.4闹钟模块alarmclock213.5分频模块 fdiv223.6顶层模块图23第4章 电子万年历系统代码254.1主控制模块254.2秒自动计时子模块284.3时间自动工作控制294.4时间数据与时间设置数据多路选择模块304.6时间显示动态位选模块344.7秒表模块364.8分频模块37第5章 结论40参考文献41致谢421第1章 引言1.1选题意义 钟表的数字化

14、给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭路灯等。所有这些,都是以钟表数字化为基础的。因此,研究电子万年历及扩大其应用,有非常现实的意义。数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。电子万年历从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。 因此,我们此次设计与制做电子万年历就是为了了解数字钟的原理,从而学会制作数字钟。而且通过万年历的制作进一步了解各种在制作中用到的中

15、小规模集成电路的作用及使用方法,且由于电子万年历包括组合逻辑电路和时序电路,通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。 本设计基于 FPGA 芯片6,外围电路简单,系统集成化程度高,精度高,采用 Verilog HDL语言编程,用软件的方式设计硬件,灵活性好,方便以后的产品升级。1.2电子万年历的研究背景  在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。为了更好的利用我们自己的时间,我们必须对时间有一个度量,因此产生了钟表。钟表的发展是非常迅速的,从刚开始

16、的机械式钟表到现在普遍用到的数字式钟表,即使现在钟表千奇百怪,但是它们都只是完成一种功能计时功能,只是工作原理不同而已,在人们的使用过程中,逐渐发现了钟表的功能太单一,没有更大程度上的满足人们的需求。因此在这里,我想能不能把一些辅助功能加入钟表中。在此设计中所设计的钟表不但具有普通钟表的功能,它还能实现额外的功能:世界时、农历显示。人类不断研究,不断创新纪录。发展到现在人们广泛使用的万年历。  万年历是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们常生活中不可少的必需品,由于数字集成电路的发展和石英晶体

17、振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。 诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有这些,都是以钟表数字化为基础的。因此,研究万年历及扩大其应用,有着非常现实的意义。它可以对年、月、日、周日、时、分、秒进行计时,对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒等信息,还具有时间校准等功能。 综上所述此万年历具有读取方便、显示直观、功能多样、电路

18、简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。1.3国内外产品研究综述  万年历具有读取方便、显示直观、功能多样、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 近些年我国也开始重视对电子万年历的开发与设计,让更多的电子时钟能够走进人民生活,让更多的人能够应用到功能强大,精度高的电子时钟。但是仍然存在很多问题。  中国电子万年历产业发展出现的问题中,许多情况不容乐观,如产业结构不合理、产业集中于劳动力密集型产品;技术密集型产品明显落后于发达工业国家;生产要素决定性作用正在削弱;产业能源消耗大、产

19、出率低、环境污染严重、对自然资源破坏力大;企业总体规模偏小、技术创新能力薄弱、管理水平落后等。     中国电子万年历产业发展研究报告阐述了世界电子万年历产业的发展历程,分析了中国电子万年历产业发展现状与差距,开创性地提出了“新型电子万年历产业” 及替代品产业概念,在此基础上,从四个维度即“以人为本”、“科技创新”、“环境友好”和“面向未来”准确地界定了“新型电子万年历产业” 及替代产品的内涵。根据“新型电子万年历产业” 及替代品的评价体系和量化指标体系,从全的研究。 新的角度对中国电子万年历产业发展进行

20、了推演和精准预测,在此基础上,对中国的行政区划和四大都市圈的电子万年历产业发展进行了全面随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。1.4 FPGA简介PLD/FPGA是近几年集成电路中发展最快的产品。由于PLD性能的高速发展以及设计人员自身能力的提高,可编程逻辑器件供应商将进一步扩大可编程芯片的领地,将复杂的专用芯片挤向高端和超复杂应用。据IC Insights的数据显示,PLD市场从1999年的29亿美元增长到去年的56亿美元,几乎翻了一番。Matas预计这种高速增长局面以后很难出现,但可编程逻辑器件依然是集成电路中最具活力和前途的产业

21、。复杂可编程逻辑器件。 可编程逻辑器件的两种主要类型是现场可编程门阵列(FPGA)和复杂可编程逻辑7(CPLD)。 在这两类可编程逻辑器件中,FPGA提供了最高的逻辑密度、最丰富的特性和最高的性能。 现在最新的FPGA器件,如Xilinx Virtex"系列中的部分器件,可提供八百万"系统门"(相对逻辑密度)。 这些先进的器件还提供诸如内建的硬连线处理器(如IBM Power PC)、大容量存储器、时钟管理系统等特性,并支持多种最新的超快速器件至器件(device-to-device)信号技术。 FPGA被应用于范围广泛的应用中,从数据处理和存储,以及到

22、仪器仪表、电信和数字信号处理等。第2章 多功能电子万年历第2章 多功能电子万年历2.1设计要求 基于FPGA设计多功能电子万年历,其中要包括对FPGA的介绍、电子万年历的八个模块以及顶层模块的工作原理和仿真调试。1设计的内容及目的 2 简介并了解FPGA 3了解FPGA的工作原理; 4了解万年历的工作原理,比较不同的设计方案; 了解万年历的八个模块及顶层模块的结构功能、工作流程,并仿真; 了解时钟万年的控制系统。2.2设计方案2.2.1电子万年历的发展钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时

23、功能,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭路灯等。所有这些,都是以钟表数字化为基础的。因此,研究电子万年历及扩大其应用,有非常现实的意义。数字钟是一种用数字电路技术实现时、分、秒计时的装置8,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。电子万年历从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。因此,我们此次设计与制做电子万年历就是为了了解数字钟的原理,从而学会制作数字钟。而且通过万年历的制作进一步了解各种在制作中用到的中小规模集成电路的作用及使用方法,且由于电子万年历包括组合逻辑电路和时序电

24、路,通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。2.2.2电子万年历的工作原理按键消抖 可 编功能键 程调整键1 逻调整键2 辑 器 件 CPLD/FPGA LED显示模块图2-1 万年历的工作原理功能键用来选择不同的工作模式如图2-1所示:时间正常显示功能、时间调整与显示、秒表功能、闹钟设置与查看、日期显示、日期调整与设置。调整键1:主要用于闹钟设置、日期显示与调整、秒表、时间调整与设置中的位置选择按钮,与功能键配合使用。2号键功能模式,即时间调整与设置时,用作时、分、秒的移位,按一下,将会实现“时-分-秒”的依次移位,便于在特定位置进行调整;4号键功能模式,即闹钟

25、设置与查看时,同样用作时、分、秒的移位,按一下,将会实现“时-分-秒”的依次移位,便于在特定位置进行调整;6号键功能模式,即日期调整与设置时,用作月、日的移位,按一下,将会实现“月-日”的依次移位,便于在特定位置进行调整。调整键2:主要用于闹钟设置、日期显示与调整、秒表、时间调整与设置中的调整按钮,与功能键配合使用。2号键功能模式,即时间调整与设置时,用作时、分、秒的调整,按一下,将会使得当前调整键1选择的位置数字增加1;4号键功能模式,即闹钟设置与查看时,同样用作时、分、秒的调整,按一下,将会使得当前调整键1选择的位置数字增加1;6号键功能模式,即日期调整与设置时,用作月、日的移位,按一下,

26、将会使得当前调整键1选择的位置数字增加1。时钟万年历的设计方案选择与比较  方案一:基于FPGA设计万年历 方案二:采用 Dallas 公司的专用时钟芯片 DS1302。该芯片内部采用石英晶体振荡器,其芯片精度不大于 10ms/年,可直接读取时间、日期,使得软件编程相对简单。而 且 DS1302 可以在很小电流的后备电源(2.5V-5.5V,在2.5V 时耗电小于 300nA)下继续计时,时钟在电网电压不足或突然掉电等突发情况下仍能正常工作。 方案三:本方案完全用软

27、件实现走时,原理为:利用定时器与软件结合实现 1 秒定时中断,每产生一次中断,存储器内相应的秒值加 1;若秒值达到 60,则将其清零,并 将相应的分字节值加 1;若分值达到 60,则清零分字节,并将时字节值加 1;若时值达 到 24,则将十字节清零9。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高,而且由于是软件实现,当单片机不上电,程序不执行时钟将不工作。 4选择与比较  选择:方案一 比较:方案一采用FPGA技术,方案二和方案三采用的是

28、单片机。相比单片机,FPGA组织逻辑能力更强,时序能力更强,且有以下优点,所以本次设计采用FPGA技术。 FPGA运行速度快 FPGA内部集成锁项环,可以把外部时钟倍频,核心频率可以到几百M,而单片机运行速度低的多.在高速场合,单片机无法代替FPGA ,FPGA管脚多,容易实现大规模系统 单片机IO口有限,而FPGA动辄数百IO,可以方便连接外设.比如一个系统有多路AD,DA,单片机要进行仔细的资源分配,总线隔离,而FPGA由于丰富的IO资源,可以很容易用不同IO连接各外设  FPGA内部程序并行运行,有处理更复杂功能的能力 

29、;单片机程序是串行执行的,执行完一条才能执行下一条,在处理突发事件时只能调用有限的中断资源;而FPGA不同逻辑可以并行执行,可以同时处理不同任务,这就导致了FPGA工作更有效率  FPGA有大量软核10,可以方便进行二次开发 FPGA甚至包含单片机和DSP软核,并且IO数仅受FPGA自身IO限制,所以,FPGA又是单片机和DSP的超集,也就是说,单片机和DSP能实现的功能,FPGA一般都能实现41第3章 多功能电子万年历各功能模块实现第3章 多功能电子万年历各功能模块实现3.1时钟问题无论是用离散逻辑、可编程逻辑,还是用全定制器件实现任何数字电路,设计不良的时钟在

30、极限温度、电压或制造工艺存在偏差的情况下将导致系统错误的行为,所以可靠的时钟设计是非常关键的。在FPGA设计时通常采用四种时钟:全局时钟、门控时钟、多级逻辑时钟和波动式时钟,多时钟系统是这四种时钟类型的任意组合。3.1.1全局时钟对于一个设计项目来说,全局时钟(或同步时钟)是最简单和最可预测的时钟。在FPGA设计中最好的时钟方案是:由专用的全局时钟输入引脚驱动单个主时钟去控制设计项目中的每一个触发器。FPGA一般都具有专门的全局时钟引脚,在设计项目时应尽量采用全局时钟,它能够提供器件中最短的时钟到输出的延时。3.1.2门控时钟在许多应用中,整个设计项目都采用外部的全局时钟是不可能或不实际的,所

31、以通常用阵列时钟构成门控时钟。门控时钟常常同微处理器接口有关,例如用地址线去控制写脉冲。每当用组合逻辑来控制触发器时,通常都存在着门控时钟。在使用门控时钟时,应仔细分析时钟函数,以避免毛刺的影响。如果设计满足下述两个条件,则可以保证时钟信号不出现危险的毛刺,门控时钟就可以像全局时钟一样可靠工作:驱动时钟的逻辑必须只包含一个“与门”或一个“或门”,如果采用任何附加逻辑,就会在某些工作状态下出现由于逻辑竞争而产生的毛刺。逻辑门的一个输入作为实际的时钟,而该逻辑门的所有其他输入必须当成地址或控制线,它们遵守相对于时钟的建立和保持时间的约束。3.1.3多级逻辑时钟当产生门控时钟的组合逻辑超过一级,即超

32、过单个的“与门”或“或门”时,该设计项目的可靠性将变得很差。在这种情况下,即使样机或仿真结果没有显示出静态险象,但实际上仍然可能存在危险,所以我们不应该用多级组合逻辑区作为触发器的时钟端。不同的系统 需要采用不同的方法消除多级时钟,并没有一个固定的模式。3.1.4波动式时钟许多系统要求在同一设计内采用多时钟,最常见的例子是两个异步微处理器之间的接口,或微处理器和异步通信通道的接口。由于两个时钟信号之间要求一定的建立和保持时间,所以上述应用引进了附加的定时约束条件,它们会要求将某些异步信号同步化。而在许多应用中只将异步信号同步化还是不够的,当系统中有两个或两个以上非同源时钟时,数据的建立和保持时

33、间很难得到保证,设计人员将面临复杂的时间分析问题。最好的方法是将所有非同源时钟同步化。使用FPGA内部的锁相环(PLL)是一个效果很好的方法,但并不是所有FPGA都带有PLL,而且带有PLL功能的芯片大多价格昂贵。这时就需要使用带使能端的D触发器,并引入一个高频时钟来实现信号的同步化。稳定可靠的时钟是保证系统可靠工作的重要条件,设计中不能够将任何可能含有毛刺的输出作为时钟信号,并且尽可能只使用一个全局时钟,对多时钟系统要特别注意异步信号和非同源时钟的同步问题。为了获得高驱动能、低抖动时延、稳定的占空比的时钟信号,一般使用FPGA内部的专用时钟资源产生同步时序电路的主工作时钟。专用时钟资源主要指

34、两部分,一部分是布线资源,包括全局时钟布线资源和长线资源等,另一部分则是FPGA内部的PLL。3.2电子万年历的控制系统此电子万年历系统主要有8个模块分别设计仿真,分别是以下8个模块:主控制模块 maincontrol时间及其设置模块 timepiece_main时间显示动态位选模块 time_disp_select显示模块 disp_data_mux秒表模块 stopwatch日期显示与设置模块 date_main闹钟模块 alarmclock分频模块 fdiv3.2.1主控制模块 maincontrol该模块实现对各个功能模块的整体控制,包括对时间显示与调整、日期显示与调整、闹钟显示与调整

35、、秒表操作等的控制,结构功能图如3-1所示,波形仿真图如3-2所示。图3-1 主控制模块的结构功能图 图3-2主控制模块的波形仿真图SW3是功能键,从波形图中可知,SW3每出现一次上升沿,输出都会发生相应的变化,即按照Timepiece_EN(时钟自动显示使能),TimeSet_EN(时钟设置与调整使能),Stopwatch_EN(秒表功能使能),Alarmclock_EN(闹钟时间设置使能),Date_EN(日期显示使能),DateSet_EN(日期显示与设置使能)的顺序依次输出有效波形“1”,对相应的模块输入有效使能,从而实现相应的功能。3.2.2时间及其设置模块 time_auto_an

36、d_set时间及其设置模块主要完成时间的自动正常运行与显示,以及在相应的功能号下,实现时间的调整与设置。3.2.3时间模块 timepiece_main该模块主要完成时间的自动增加与显示功能,即为正常的自动模式运行,其结构功能图如3-3所示,波形仿真图如3-4所示。 图3-3 时间及其设置模块的结构功能图 图3-4 时间模块的结构功能图秒自动计时子模块 second_counter,结构功能图如3-5所示,图3-5 秒自动计时子模块的结构功能图分自动计时子模块 minute_counter,结构功能图如3-6示。图3-6分自动计时子模块的结构功能图小时自动计时子模块 hour_counter,

37、结构功能如图3-7,图3-8所示。图3-7小时自动计时子模块的结构功能图图3-8 时间模块的波形仿真图当Timepiece_EN为1时,即处于时间自动工作状态,即每出现一次时钟信号clk,计数一次,先计数second0,当计数到1001(即十进制的9)时,向second1发出一个计数信号,此时second1进行一次计数,类推,second1计数到0101(即十进制的5),且second0计数到1001(即十进制的9)时,minute0则进行一次计数,按照此规律进行时间的计数。当计满24小时,向day_EN发出一个计数信号,即此使能端输出有效信号1,进行日期的计数。3.2.4时间设置模块 tim

38、eset该模块主要完成对时间的设置相关的闪烁显示控制以及时间中的小时、分钟、秒等数据的改变,流程图如3-9所示,结构功能图如3-10所示,波形仿真图如3-11所示,表3-12所示。 开 始disp_drive<=3b0结 束初始化,将当前时间赋予设置后的时间Timeset_EN=1?disp_drive<3b101?disp_drive<= disp_drive+3b1依SW2,按位进行数字调整 图 3-9 时间设置模块的流程图图3-10 时间设置模块的结构功能图图3-11 时间设置模块的波形仿真图表3-12 时间设置模块的端口说明输入端口功能TimeSet_EN时间设置使能

39、,当其电平为高时,时间设置有效SW1,SW2调整键1与调整键2输入信号hour1,hour0当前时间的小时数输入minute1,minute0当前时间的分钟数输入second0,second1当前时间的秒数输入输出端口功能hour_set1,hour_set0设置时间后的小时数minute_set1,minute_set0设置时间后的分钟数second_set1,second_set0设置时间后的秒数disp_drive设置中的闪烁显示设置当Timeset_EN为1时,即实现时间设置功能。SW1实现时间格式中小时高、低位,分钟高、低位,秒钟高、低位的位选,即每出现一个SW1上升沿,disp_d

40、rive的相应数值加1(选择具体的需要调整的位置)。SW2实现相应得位的数值得调整,即每出现一个SW2上升沿,相应位的数值增加1。3.3时间数据与时间设置数据多路选择模块 time_mux该模块用来分时向显示单元传输显示数据,流程图如3-13所示,结构功能图如3-14所示,波形仿真图如3-15所示,表3-16所示。图3-13 多路选择模块的结构功能图开 始依输入条件,判断是自动显示时间,或显示调整后的时间Timeset_EN=1?显示设置后的时间显示自动模式时的时间结 束图 3 -14 多路选择模块的流程图图3-15 多路选择模块的波形仿真图表3-16 多路选择模块的端口说明输入端口功能Tim

41、eSet_EN时间设置使能信号hour1,hour0自动模式中当前时间的小时数输入minute1,minute0自动模式中当前时间的分钟数输入second0,second1自动模式中当前时间的秒数输入hour_set1,hour_set0时间设置后的小时数输入minute_set1,minute_set0时间设置后的分钟数输入second_set1,second_set0时间设置后的秒数输入输入端口功能hour_1,hour_0当前需要显示的小时输出minute_1,minute_0当前需要显示的分钟输出second_0,second_1当前需要显示的秒输出3.3.1时间显示动态位选模块 ti

42、me_disp_select该模块用来分时显示时间数据,但是在选择合适的时间间隔下,人眼并不能分辨出是分时显示的,这样显示的方式可以降低功耗,结构功能图如3-17所示,波形仿真图如3-18所示,如图3-19所示。图3-17 时间显示动态位选模块的结构功能图图3-18 时间显示动态位选模块的波形仿真图图3-19 时间显示动态位选模块的波形仿真图TimeSet_EN表示时间设置使能,Time_EN表示时间自动显示使能,clk_1kHz用于动态显示时间,clk_200Hz用于闪烁显示时间,timeset_disp_drive表示时间设置数据显示的同步信号,time_disp_select表示显示动态

43、位选输出信号。当TimeSet_EN为0,Time_EN为1时,以clk_1kHz为是时钟信号,输出自动显示的时间,按位依次显示;当TimeSet_EN为1,Time_EN为0时,则以clk_200Hz为时钟信号,输出以timeset_disp_drive对应的位置。3.3.2显示模块 disp_data_mux模块是时间、日期等数据用数码管显示的控制与数据传输模块,包括数据的传输以及BCD码的译码等,结构功能图如3-20所示。图3-20 显示模块的结构功能图 显示原理采用的是七段数码管的现实原理,如图3-21,图3-22所示:图3-21七段数码管的显示原理图3-22显示模块的波形仿

44、真图3.3.3秒表模块 stopwatch该模块实现秒表的功能,在实际中,可以通过改变自动工作模式下的时间的计数时钟的频率来实现秒表的功能,流程图如3-23所示,结构功能图如3-24所示,波形仿真图如3-25所示。开 始EN=1?秒表工作状态时间自动工作状态结 束图3-23秒表模块的流程图图3-24秒表模块的结构功能图图3-25秒表功能的波形仿真图EN表示秒表使能控制信号4,clk1表示自动工作模式的时钟信号,clk2表示秒表工作模式的时钟信号,故当EN为有效信号1时,输出F_out与clk2同,即处于秒表工作状态,同理EN为0时,输出F_out与clk1同,即处于自动工作状态。3.3.4日期

45、显示与设置模块 date_main该模块实现日期的显示和日期的调整与设置,结构功能图如2-25所示。图3-26时间显示与设置模块的结构功能图3.3.5日期自动工作模块 autodate该模块实现的是日期的自动工作功能3,结构功能图如3-27所示,波形仿真图如3-28,如图3-29所示。图3-27日期自动工作模块的结构功能图图3-28 日期自动工作模块的波形仿真图图3-29 日期自动工作模块的波形仿真图23.3.6日期设置模块 setdate该模块用于日期,结构功能图如3-30所示。图3-30日期设置模块的结构功能图3.4闹钟模块alarmclock该模块实现的功能包括闹钟的设置以及闹钟时间1到

46、后的提示,流程图如3-31所示,结构功能图如3-32所示,波形仿真图如3-33所示。开 始设置的闹钟与当前时间比较alarm<=1b1闹钟工作alarm<=1b0闹钟不工作EN=1disp_drive<3b101?disp_drive<=disp_drive+3,b1disp_drive<=3b0根据不同的disp_drive选择在不同的位置上的数值加1结 束 图3-31闹钟模块的流程图图3-32闹钟模块的结构功能图图3-33 闹钟模块的波形仿真图EN为闹钟设置使能,clk_200Hz用于设置中的闪烁显示的时钟,其中还定义了hour_set1,hour_set0,

47、minute_set1,minute_set0,second_set1,second_set0,用来表示已经设置好的闹钟时间。闹钟一直处于工作状态,当前时间(hour1,hour0,minute1,minute0,second1,second0)与设置的闹钟时间相比较,当小时、分钟、秒钟的时间完全相同时,则闹铃响,输出信号alarm为有效信号1。SW1和SW2是调整键,分别控制位选和数值的调整。3.5分频模块 fdiv该模块完成全局时钟信号分频输出200Hz、60Hz、1Hz的三种时钟信号,流程图如3-34所示,结构功能图如3-35所示,波形仿真图如3-36所示。图3-34 分频模块的结构功能

48、图图3-35分频模块的波形仿真图开始,输入1kHz时钟信号posedge clkCNT<4?输出200Hz时钟信号f200HzCNT=CNT+1posedge f200HzCNT2<2?CNT2=CNT2+1输出60Hz时钟信号posedge f200HzCNT3<199?CNT3=CNT3+1输出1Hz时钟信号结 束图3-36 分频模块的流程图3.6顶层模块图将各个主模块综合成电子万年历系统,其包括:fdiv分频模块,maincontrol主控制模块,stopwatch秒表模块,time_auto_and_set时间及其设置模块,date_main日期及其设置模块,alar

49、mclock闹钟模块,time_disp_select时间显示动态位选模块及disp_data_mux显示模块,该顶层电路Top如图3-37所示。图3-37顶层电路Top第4章 电子万年历系统代码第4章 电子万年历系统代码4.1主控制模块 module maincontrol(clk,SW3,Timepiece_EN,TimeSet_EN,Stopwatch_EN,Alarmclock_EN,Date_EN,DateSet_EN);output Timepiece_EN; /时间自动显示使能output TimeSet_EN; /时间调整与设置使能output Stopwatch_EN; /秒

50、钟功能使能output Alarmclock_EN; /闹钟时间设置使能output Date_EN; /时期显示使能output DateSet_EN; /日期调整与设置使能input SW3; /功能号选择input clk;reg Timepiece_EN; reg TimeSet_EN; reg Stopwatch_EN; reg Alarmclock_EN; reg Date_EN; reg DateSet_EN; reg 2:0 Function;reg 31:0 cnt;reg q1,q2,q3;reg CLK;always(posedge clk)begin if(cnt<

51、;49999) begin cnt=cnt+1; CLK<=0; end else begin cnt=0; CLK<=1'b1; end endalways(posedge CLK)begin begin q2<=q1; q1<=SW3; end begin q3<=q1&(q2); endendalways(posedge q3 ) /*实现对时间显示与调整,日期显示与 调整,闹钟显示与调整,秒表操作等的控制*/ begin /功能号的产生以及其自动循环 if(Function<3'b101 && SW3=1

52、9;b1) Function<=Function+3'b1; else Function<=3'b0; case(Function) /各个分功能的控制和实现 /时钟自动显示 3'b000:begin Timepiece_EN<=1'b1; TimeSet_EN<=1'b0; Stopwatch_EN<=1'b0; Alarmclock_EN<=1'b0; Date_EN<=1'b0; DateSet_EN<=1'b0; end /时钟调整与设置 3'b001:beg

53、in end /秒表 3'b010:begin end /闹钟时间设置 3'b011:begin end /日期显示 3'b100:begin end /日期调整与设置 3'b101:begin end default:begin end endcase endendmodule 4.2秒自动计时子模块module second_counter(EN,clk,second_data1,second_data0,E0);output 3:0 second_data1,second_data0;output E0;input clk,EN;reg 3:0 secon

54、d_data1,second_data0;reg E0;always(posedge clk) begin if(EN=1'b1) begin if(second_data0<4'b1001) second_data0<=second_data0+4'b1; else begin E0<=1'b0; second_data0<=4'b0; if(second_data1<4'b0101) second_data1<= second_data1+4'b1; else begin second_data1&

55、lt;=4'b0; E0<=1'b1; end end end endendmodule4.3时间自动工作控制module timepiece_main(CLK,Timepiece_EN,day_EN,hour0,hour1,minute0,minute1,second0,second1);input CLK;input Timepiece_EN;output day_EN;output 3:0 hour1,hour0;output 3:0 minute1,minute0;output 3:0 second1,second0;wire SYNTHESIZED_WIRE_0;wire SYNTHESIZED_WIRE_1;hour_counter /*小时计时*/b2v_inst(.clk(SYNTHESIZED_WIRE_0),.EN(Timepiece_EN),.E0(day_EN),.hour_data0(hour0),.hour_data1(hour1);minute_counter /*分钟计时*/

温馨提示

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

评论

0/150

提交评论