多功能数字钟设计(Verilog语言编写)

上传人:l**** 文档编号:145300519 上传时间:2020-09-18 格式:DOC 页数:28 大小:1.27MB
返回 下载 相关 举报
多功能数字钟设计(Verilog语言编写)_第1页
第1页 / 共28页
多功能数字钟设计(Verilog语言编写)_第2页
第2页 / 共28页
多功能数字钟设计(Verilog语言编写)_第3页
第3页 / 共28页
多功能数字钟设计(Verilog语言编写)_第4页
第4页 / 共28页
多功能数字钟设计(Verilog语言编写)_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《多功能数字钟设计(Verilog语言编写)》由会员分享,可在线阅读,更多相关《多功能数字钟设计(Verilog语言编写)(28页珍藏版)》请在金锄头文库上搜索。

1、. . 多功能数字钟设计 院系:电光学院 班级:* 学号: * : * 指导老师:* 时间:2010.4.20.摘要:利用QuartusII软件设计一个数字钟,利用模块化的程序设计思想,核心模块均采用Verilog语言编写(译码显示模块采用原理图设计),软件仿真调试编译成功后,再下载到SmartSOPC实验系统中。经过硬件测试,查找软件设计缺陷,并进一步完善软件,最终设计得到较为满意的多功能数字钟。关键词:QuartusII; 多功能数字钟; 模块化; Verilog; 可编程; Abstract:Using the QuartusII software design a digital be

2、ll with the blocking method.The design takes theory drawing instead of Verilog language.After emluating and debuging successfully,translate and edit the code.Then,download the result to the programmable SmartSOPC system and test it in hardware.Realizing the soul of designing hardware by software. Ke

3、ywords:QuartusII; digital bell; blocking method; VHDL; programmable; hardware目录设计容简介3设计要求说明3方案论证(整体电路设计原理) 3各子模块设计理5分频模块: 5计数模块: 7 -校准模块程序实现:8 -秒计数模块程序实现:9 -分计数模块程序实现:10 -时计数模块程序实现:10整点报时模块: 12闹钟设定模块: 13 -闹钟调节模块程序实现:14 -输出信号选择模块程序实现:14彩铃模块: 15译码显示模块: 18万年历模块: 19 -日计数模块程序设计:20 -月计数模块程序设计:23 -年计数模块程序设

4、计:23 -万年历波形仿真结果:25结论: 26实验感想: 26附图: 27 设计容简介设计一个数字计时器,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、快速较秒等功能。在设计的电路具有上述基本功能的前提下,我又进行了功能扩展:整点报时、闹钟设置、彩铃和万年历功能。(由于时间限制,万年历功能未经硬件测试,仅通过软件层面简单调试仿真)设计要求说明设计基本要求:1、能进行正常的时、分、秒计时功能;2、分别由六个数码管显示时分秒的计时;3、K1是系统的使能开关(K1=0正常工作,K1=1时钟保持不变);4、K2是系统的清零开关(K2=0

5、正常工作,K2=1时钟的分、秒全清零);5、K3是系统的校分开关(K3=0正常工作,K3=1时可以快速校分);6、K4是系统的校时开关(K4=0正常工作,K4=1时可以快速校时);设计提高部分要求1、使时钟具有整点报时功能(当时钟计到5953”时开始报时,在5953”, 5955”,5957”时报时频率为512Hz,5959”时报时频率为1KHz);2、 闹表设定功能;方案论证(整体电路的工作原理)本实验在实现实验基本功能的基础上,加入了整点报时、闹钟设置、彩铃和万年历显示调节功能。整个电路由计数模块、分频模块、校时、校分较秒模块,清零模块、保持模块,整点报时模块,闹钟设定模块、彩铃模块,以及

6、万年历模块构成。(如下图所示)基本功能:数字计时器基本功能是计时,因此首先需要获得具有精确振荡时间的脉振信号,以此作为计时电路的时序基础,实验中可以使用的振荡频率源为48MHZ,通过分频获得所需脉冲频率(1Hz,2Hz,4Hz,1KHz,500Hz,6MHz)。经过Verilog编程可以轻松获得较为精确的分频信号。 在计数模块中,秒位和分位分别通过编程用模60计数器实现,时位通过编程用模24计数器实现。校时、校分及校秒模块则通过语言选择实现。清零及保持功能在计数模块中用判断语句可轻松实现。计数模块总共输出6路信号:秒位的个、十位,分位的个、十位及时位的个、十位。整点报时:利用计数模块的输出作为

7、报时模块的输入,当检测到5953”, 5955”,59 实验模块原理图57”时令报时模块的输出为500Hz,5959”时令报时模块的输出为1Kz.,驱动蜂鸣器产生不同的响声。闹钟设定模块:这里设计一个闹钟模块,输入为计数模块的输出及一系列调节信号,输出接到译码模块上。在闹钟模块部,核心模块是一个选择模块,选择输出的信号是闹钟显示还是正常的计数显示。为了使闹钟模块与计数模块是相互独立的,因此单独设计模24(闹钟小时)和模60(闹钟分钟)作为选择模块的输入。设计程序语言的思想是,当检测到与设定闹钟相同的时、分位时就输出一个信号1,并保存当前计数位(加1)当检测到当前信号与保存位相同时输出信号恢复为

8、0。(这个信号将作为闹铃结束的判断信号)彩铃模块:本程序选用了一段悠扬的梁祝音乐,该模块的输入分别为6MHz和4Hz,通过编程实现输出为符合音律的不同频率。程序实现的思想并不复杂,只要有乐谱可以实现各种不同的音乐输出。蜂鸣器何时鸣叫取决于闹钟模块的输出。译码显示模块:本模块没有采用Verilog语言实现,通过搭建原理图实现。显示功能是通过数选器、译码器、码转换器和7段显示管实现的。因为实验中只用一个译码显示单元,6个7段码(用于显示时分秒 ),所以通过1个24选4MUX和一个3-8译码器配合,显示译码器采用7447,根据计数器的信号进行数码管的动态显示。万年历模块:通过编程可以轻松实现,原理与

9、上述计数模块,调节模块很是类似。由于未经硬件测试(时间限制),将在下面的子模块介绍中给出软件层面的实现和编译调试结果。各子模块设计原理本数字钟设计主要用Verilog语言实现,严格采用了模块化的程序设计思想,自顶向下逐步求精,模块之间高度独立。(仅译码显示模块采用原理图搭建)下面将分别介绍各主要子模块及其子模块以及算法语言的实现和部分波形仿真编译调试结果。分频模块:(clkout输出为1Hz,clkout1K输出为1Kz,clkout500输出为500Hz,clkout2输出为2Hz,clkout6M输出为6MHz,clkout4输出为4Hz.)module clkdiv(clk,clkout

10、,clkout1k,clkout500,clkout2,clkout6M,clkout4);input clk;output clkout,clkout1k,clkout500,clkout2,clkout6M,clkout4;reg clkout,clkout1k,clkout500,clkout2,clkout6M,clkout4;reg 31:0cnt,cnm,cnn,cmm,caa,cbb;always(posedge clk) /产生1Hz信号begin if(cnt= 32d24000000) begin clkout=1d1; t=cnt+32d1; end else if(cn

11、t=32d48000000) begin clkout=1b0; t=32d0; end else t=cnt+32d1;endalways(posedge clk) /产生1KHz信号begin if(cnm= 32d24000) begin clkout1k=1d1; m=cnm+32d1; end else if(cnm=32d48000) begin clkout1k=1b0; m=32d0; end else m=cnm+32d1;endalways(posedge clk) /产生500Hz信号begin if(cnn= 32d48000) begin clkout500=1d1; n=cnn+32d1; end else if(cnn=32d96000) begin clkout500=1b0; n=32d0; end else n=cnn+32d1;endalways(posedge clk) /产生2Hz信号begin if(cmm= 32d12000000) begin clkout2=1d1; cmm=cmm+32d1; end else if(cmm=32d24000000) begin clkout2=1b0; cmm=32d0; en

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号