您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数字钟verilog
目录1设计任务及要求.....................................................................................12总体设计分析.........................................................................................13各模块设计..............................................................................................23.1数字钟主体部分..................................................................................23.1.1小时计数器................................................................................23.1.2分、秒计数器..........................................................................33.2分频部分.............................................................................................43.3秒表模块...........................................................................................53.4闹钟模块...........................................................................................53.5时间设置模块....................................................................................73.6报时模块...........................................................................................73.7控制显示模块....................................................................................83.8顶层模块.........................................................................................114总结..........................................................................................................114.1本次作业遇到的问题.........................................................................114.2建议和总结.....................................................................................12附件..............................................................................................................13多功能数字钟verilogHDL设计11设计任务及要求本次大作业的要求为设计一个多功能数字钟,其具体要求如下:1.有基础的实时数字钟显示功能,即时、分、秒的正常显示模式,并且在此基础上增加上,下午显示。2.手动校准。按动方式键,将电路置于校时状态,则计时电路可用手动方式校准,每按一下校时键,时计数器加1;按动方式键,将电路置于校分状态,以同样方式手动校分。3.整点报时,仿中央人民广播电台整点报时信号,从59分50秒起每隔2秒发出一次低音“嘟”信号(信号鸣叫持续时间1S,间隙时间1S)连续5次,到达整点(00分00秒时),发一次高音“哒”信号(信号持续时间1S)。4.闹时功能,按动方式键,使电路工作于预置状态,此时显示器与时钟脱开,而与预置计数器相连,利用前面手动校时,校分方式进行预置,预置后回到正常模式。当计时计至预置的时间时,扬声器发出闹铃信号,时间为半分钟,闹铃信号可以用开关“止闹”,按下此开关后,闹铃声立刻中止,正常情况下应将此开关释放,否则无闹时作用。5.秒表功能。按start键开始计秒,按stop键停止计秒并保持显示数不变,直到复位信号加入。2总体设计分析设计的总体部分按照要求可以分为基本的数字时钟显示、手动校准、整点报时、闹钟功能和秒表功能5大部分。其总体设计框图如下:图1总体设计框图其中整点报时跟闹钟部分要求不同频率的声响,所以需要加入分频器模块秒表闹钟手动校准整点报时数字钟多功能数字钟verilogHDL设计2将输入的1kHZ的分频产生500HZ及1HZ的方波信号,其中1HZ的信号对应1S的周期,可以用作时钟秒的显示及秒表部分。3各模块设计根据总体设计以及各分模块的需要,将分立模块分为7个部分运用verilogHDL编程来实现。其分别为数字钟主体部分、手动设置、分频、整点报时、闹钟功能、秒表、控制显示和顶层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Ⅱ仿真波形如下图数字钟主体小时计数器分计数器秒计数器24进制计数器60进制计数器6进制计数器10进制计数器12(早上)12(下午)多功能数字钟verilogHDL设计33所示,由于verilogHDL程序显示不便,均附在附件上,下面各模块相同。图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分计数器仿真结果多功能数字钟verilogHDL设计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分频信号结果仿真图2分频5分频1kHZ信号(clk)500HZ(f500hz)200HZ(f200hz)1HZ(f1hz)200分频多功能数字钟verilogHDL设计5从仿真图中可以看到,在rst为高电平时分频过程开始,f500HZ、f200HZ和f1HZ也与预期的输出结果一样。3.3秒表模块秒表模块实现秒表功能,在实现的过程中,通过改变自动工作模式下的时钟频率来实现秒表的功能。即按动start键闹钟开始工作,再次按动start键,闹钟便停止工作。由于秒表模块比较简单,流程图在此省略。根据分析,在verilogHDL实现过程中,clk作为时钟正常工作时候的频率,f500hz为秒表工作时候的频率,仿真结果如下图7所示。图7秒表仿真模块由图中可以看出,根据start高低电平的变化,时钟在正常工作与秒表之间相互转换。3.4闹钟模块闹钟模块实现的是闹钟的设置及闹钟所设定的时间到之后的响铃提示。闹钟模块的设置主要思想是由控制键来设置数字钟的闹钟响的时间,经过与当前数字钟实时时间的比较,来决定闹钟提醒的时间。设计框图如下图8所示。图8闹钟模块设计框图hour0hour1minute0minute1hour_set0hour_set1minute_set0minute_set1设置时间与当前时间的比较不相等相等con_alarm01闹钟不响alarm=0闹钟响alarm=1多功能数字钟verilogHDL设计6在verilogHDL实现的过程中,由SW1、SW2两个调整键来实现,其中SW1为移位控制键,即按SW1一次,将移位一次,闪烁显示当前设置为数字,SW2为当前位的闹钟数字设置,每按SW2一次,当前数字设置位数字增加1,每一位上数字变化范围由当前位循环上限决定,不会超出范围。EN为设置使能端,为1有效。Hour1、hour0、minute1和minute0分别为当前时间每个位上显示的数字,hour_set1、hour_set0、minute_set1和minute_set0为与当前时间所对应的每一位上设置的时间显示,f200hz为闹钟设置过程中显示闪烁的频率。Con_alarm为闹钟响铃的控制键,其值为1时,表示闹钟已设置,并且在闹钟响的时
本文标题:数字钟verilog
链接地址:https://www.777doc.com/doc-5391839 .html