数字钟verilog

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1 设计任务及要求 (1)

2 总体设计分析 (1)

3 各模块设计 (2)

3.1 数字钟主体部分 (2)

3.1.1小时计数器 (2)

3.1.2 分、秒计数器 (3)

3.2 分频部分 (4)

3.3 秒表模块 (5)

3.4 闹钟模块 (5)

3.5 时间设置模块 (7)

3.6 报时模块 (7)

3.7 控制显示模块 (8)

3.8 顶层模块 (11)

4 总结 (11)

4.1 本次作业遇到的问题 (11)

4.2 建议和总结 (12)

附件 (13)

1 设计任务及要求

本次大作业的要求为设计一个多功能数字钟,其具体要求如下:

1.有基础的实时数字钟显示功能,即时、分、秒的正常显示模式,并且在此基础上增加上,下午显示。

2.手动校准。按动方式键,将电路置于校时状态,则计时电路可用手动方式校准,每按一下校时键,时计数器加1;按动方式键,将电路置于校分状态,以同样方式手动校分。

3.整点报时,仿中央人民广播电台整点报时信号,从59分50秒起每隔2秒发出一次低音“嘟”信号(信号鸣叫持续时间1S,间隙时间1S)连续5次,到达整点(00分00秒时),发一次高音“哒”信号(信号持续时间1S)。

4.闹时功能,按动方式键,使电路工作于预置状态,此时显示器与时钟脱开,而与预置计数器相连,利用前面手动校时,校分方式进行预置,预置后回到正常模式。当计时计至预置的时间时,扬声器发出闹铃信号,时间为半分钟,闹铃信号可以用开关“止闹”,按下此开关后,闹铃声立刻中止,正常情况下应将此开关释放,否则无闹时作用。

5.秒表功能。按start键开始计秒,按stop键停止计秒并保持显示数不变,直到复位信号加入。

2 总体设计分析

设计的总体部分按照要求可以分为基本的数字时钟显示、手动校准、整点报时、闹钟功能和秒表功能5大部分。其总体设计框图如下:

图1 总体设计框图

其中整点报时跟闹钟部分要求不同频率的声响,所以需要加入分频器模块

将输入的1kHZ的分频产生500HZ及1HZ的方波信号,其中1HZ的信号对应1S 的周期,可以用作时钟秒的显示及秒表部分。

3 各模块设计

根据总体设计以及各分模块的需要,将分立模块分为7个部分运用verilog HDL编程来实现。其分别为数字钟主体部分、手动设置、分频、整点报时、闹钟功能、秒表、控制显示和顶层8个模块。下面将对各个模块的设计思想做一详细的介绍。

3.1 数字钟主体部分

数字钟主体部分主要由三个计数器组成,包括1个24进制计数器,作为小时计数器,2个60进制计数器分别作为分计数器和秒计数器。一个60进制计数器由一个6进制计数器和一个10进制计数器组成,由于都是比较简单的计数器,所以在用verilog设计时作为一个整体部分进行编程实现。同理小时计数器也作为整体部分来编程实现。设计的流程框图如下图2所示。

图2 数字钟整体部分设计框图

3.1.1小时计数器

在verilog程序设计中,小时计数器为hour_counter模块,其中hour_data0为24进制计数器的低位,即4进制计数器,hour_data1则为高位,2进制计数器。编程用always语句实现,并且用clk上升沿触发实现计数。EN 为使能端,高电平有效。zox为显示早上、下午的标志位,其中小于12点之前为早上,zox为0,否则zox输出为1表示下午。其QuartusⅡ仿真波形如下图

3所示,由于verilog HDL程序显示不便,均附在附件上,下面各模块相同。

图3 小时计数器仿真

从仿真图中可以看出,当使能信号信号为高电平且始终上升沿到来时计数器开始计时,hour_data0计数为0—1—2—3—0···的计数规律,即4进制计数器,同理hour_data1为2进制计数器,zox信号由图中看出当小于12小时的时候输出为0,大于12小时时输出为1,与预计效果相同。

3.1.2 分、秒计数器

由于分、秒计数器均为60进制计数器,所以以分计数器作为示例说明其编程思想。其中分计数器模块在程序中为minute_counter程序段,由上面分析得分计数器由一个十进制计数器与一个六进制计数器组成,程序中有minute_data0表示分计数器低位即10进制计数器,minute_data1表示分计数器的高位为一个六进制计数器(秒计数器的低位、高位分别由second_data0、second_data1表示,其余均与分计数器相同)。其它信号定义与小时计数器相同,clk为时钟信号,时钟周期为1HZ,即1s,与小时计数器不同的是,EO为进位信号,即到60s后自动进位。Minute_data0、 minute_data1、second_data0、second_data1位宽均为4位reg型变量。仿真示意图如下图4所示。

图4 分计数器仿真结果

由图中可以看出,当使能端信号端EN变为1的时候,计数器开始计时,minute_data0计数规律为0—1—2—3—4—5—6—7—8—9—0—1···当计数到9的时候,minute_data1加1,minute_data1计数规则为0—1—2—3—4—5—0—1···当高位minute_data1计数到5的时候,进位信号EO变为1。秒计数器second_counter模块与分计数器完全一样,这里不再赘述。

3.2 分频部分

分频器的功能主要有三个:一是产生计时用的标准秒脉冲1HZ信号;二是提供仿电台用的1kHZ高音频信号和500HZ低音频信号;三是闹钟设置时用的200HZ闪烁信号和闹钟响铃用的500HZ音频信号。所用输入信号为1kHZ的高频信号。根据分析可知,1kHZ方波信号经过2分频可以得到500HZ方波,经过5分频得到200HZ信号,最后将分频得到的200HZ信号作为分频1HZ的时钟,经过200分频得到1HZ的信号。设计框图如下图5所示。

图5 分频信号框图

在程序设计的过程中,在复位信号rst为高电平时分频器工作,输入信号为1kHZ的高频信号,分别经过2分频、5分频、200分频得到f500HZ的500HZ 信号、f200HZ的200HZ信号和f1HZ的1HZ信号。仿真结果如下图6所示。

图6 分频信号结果仿真图

相关文档
最新文档