verilog数字钟课程设计
- 格式:docx
- 大小:102.22 KB
- 文档页数:15
课程设计报告课程设计题目:数字钟系统学号:201420130228学生姓名: 刘进辉专业:通信工程班级:1421301指导教师:钟凯老师2017年1 月1 日目录一.摘要 (3)二.概念及原理 (4)三.实验过程及分析 (5)四.实验心得 (7)五.参考文献 (7)六.实验代码 (8)七.评分表 (14)摘要在社会快速发展的今天,时钟在人们的生活中显得越发重要,因此设计数字钟就变得尤为重要。
本文介绍一种利用verilog语言产生多功能数字钟的设计方案,不仅让大家对数字钟更为了解,而且可以为人们的生活带来便利。
数字钟它具有时、分、秒的正常显示功能及调节时和分的特殊功能,此外,以24小时循环计数,具有整点报时功能,并且由按键输入进行对数字钟的校时、清零功能。
本文设计的数字钟方案由控制模块、计时模块、以及报时模块三大模块组成,满足所有的功能要求,并且代码是经modelsim软件编译和仿真所设计。
二.概念及原理数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。
由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路。
如图所示为数字钟的一般构成框图。
主要包括时间基准电路、计数器电路、控制电路。
其中的控制逻辑电路是比较灵活多样的,不断完善它可以增强数字钟的功能。
数字钟应该具有的功能有:显示时—分—秒、整点报时、小时和分钟可调等基本功能。
整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23。
在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0~59,小时他的范围是从0~23,所以可以均用一个4位的二进制码显示十位和个位。
对于整点报时功能,本实验设计的是当进行正点发出一个高音信号和59分50、5254、56、58秒发出一个高音信号。
调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时;S2调整分钟,每按下一次,分钟增加一分钟。
VerilogHDL语言数字时钟EDA与数字系统设计报告实验名称:带有设臵时间功能和闹钟功能的数字钟一、设计内容和要求实验要求使用Verilog HDL进行多功能时钟的设计具体要求如下:1.能将基本的小时、分钟、及秒钟显示在数码管上2.能利用拨码开关进行时间的校正3.具有整点报时和闹钟的功能二、设计原理1.工作原理多功能数字钟系统共包括三个模块,即分频器模块、计数器模块和显示译码模块。
多功能数字钟的功能可以从整体上分为三类,分别是正常计时、时钟校对和闹钟设臵,所以考虑在系统中设臵一个模式控制信号mode。
模式控制信号对应一个按键,每按一次按键相当于工作模式进行一次变换,多次按下则数字钟将在正常计时、时间校对和闹钟设臵三个工作模式下依次循环。
在设计中,时钟校对和闹钟设臵工作模式都需要对时间进行设臵,通常是对小时和分钟进行设臵,所以需要在系统中设臵一个时间设臵信号set,对应一个按键,每按一次相当于在小时设臵和分钟设臵之间进行转换。
时间设臵时,分钟和小时计时单位之间互相独立,不存在进位关系。
同时设臵一个时间调整信号accum,每按一次与accum对应的按键,相当于对需要调整的分钟或小时的数字进行加1操作。
数字钟的计时输出信号时必不可少的,用hour,min和sec信号分别表示需要显示的小时、分钟和秒钟的计时结果,上述计时结果将通过译码显示模块进行译码后,连接到外部的七段数码显示器。
在带有闹钟设臵功能的数字钟中,闹钟输出信号也是必不可少的,到达到闹钟设臵的时间后,要向外部扬声器发送一个闹铃信号,设臵alert。
另外,我们还提供了闹钟铃声信号voice,当voice为0的时候,闹钟处于静音状态下,即使时间达到闹钟设定的时间也不会发声,当voice为1的时候,可以正常闹铃,voice信号对应一个拨码开关。
本设计中的小时、分钟和秒钟的计时结果采用BCD码表示方法。
采用这种表示方法便于对数结果的高位和低位分别进行译码。
《EDA技术与Verilog HDL》课程实验报告实验项目名称:基于Verilog HDL语言的数字钟(DE2)设计一、实验项目名称基于Verilog HDL语言的数字钟(DE2)开发板设计。
二、实验目的和要求(1)实验目的1.掌握Verilog HDL语言的基本运用;2.熟悉QuartusⅡ的简单操作;3.掌握一个基本EDA工程设计流程;4.掌握数字钟(DE2开发板)的设计基本原理。
(2)实验要求1.具有普通时钟的计时、调时功能。
2.能够下载到DE2开发板进行运行三、实验内容和原理数字钟共使用一类主要模块来实现其功能。
其总体结构如下图所示。
(1)时分秒计数器。
时计时器是一个24进制计数器,分秒则均为60进制计数器。
当秒计时器接受一个计时脉冲时,秒计数器从一计到六十,秒显像管依次显示00、01、02、03……,每当秒计时到00,就会有一个输出脉冲至分计时器,分计时器在原有基础上加一,显示器同样依次显示,每当分计时器计到00,相应的有一个脉冲使得时计数器在原有基础上加一,显示器一次显示00、01、……当计时器计数到23时59分59秒时,时分秒计数器自动归零。
(2)数码显像管译码模块。
该模块的功能就是将四位的8421码翻译成8位输出,用于显示各个数字,分为两组,高电平点亮,不同的数字对应不同的8位码。
因此程序设计需要考虑时分秒的每个数所对应的8位码。
例如:if(sec1[3:0]==4'b0000)//sec1 0-9beginHEX0[6:0]<=7'b1000000;endif(sec1[3:0]==4'b0001)beginHEX0[6:0]<=7'b1111001;endif(sec1[3:0]==4'b0010)beginHEX0[6:0]<=7'b0100100;(3)分频器模块开发板可用时钟为50MHZ,不可以用来做时钟输入,用作时钟信号前必须分频,该分频是用计数取反来分该总体模块实现功能:key2表示状态,key1表示转换改变分或时,key0表示在相应的状态下调整分或时。
verilog数字时钟课程设计一、课程目标知识目标:1. 学生能理解Verilog硬件描述语言的基本语法和结构;2. 学生能掌握数字时钟的工作原理,包括分频器、计数器等关键模块的功能与实现;3. 学生能运用Verilog语言设计并实现一个具有时、分、秒显示功能的数字时钟。
技能目标:1. 学生能运用所学知识,进行模块化设计和编程,具备初步的数字系统设计能力;2. 学生能通过仿真工具验证数字时钟设计的正确性,并解决简单的问题;3. 学生能通过课程学习,提高逻辑思维能力和团队协作能力。
情感态度价值观目标:1. 学生对数字电路设计产生兴趣,培养探究精神和创新意识;2. 学生在课程实践中,树立正确的工程观念,注重实际操作和实际应用;3. 学生在团队合作中,学会沟通与协作,培养集体荣誉感和责任感。
课程性质:本课程为电子信息类专业高年级学生设计,以实践性为主,结合理论教学。
学生特点:具备一定的电子技术和编程基础,对数字电路有一定了解。
教学要求:注重理论与实践相结合,强调动手能力培养,提高学生解决实际问题的能力。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高综合素养。
二、教学内容1. 数字时钟原理介绍:包括时钟信号产生、分频器、计数器等基本概念和工作原理。
- 教材章节:第三章 数字电路基础,第四节 时序逻辑电路。
2. Verilog语言基础:Verilog语法结构、数据类型、运算符、模块定义等。
- 教材章节:第四章 硬件描述语言Verilog,第一、二、三节。
3. 数字时钟设计:基于Verilog语言,分别设计秒、分、时计数器,以及分频器等模块。
- 教材章节:第四章 硬件描述语言Verilog,第四节 实例分析。
4. 仿真与验证:使用仿真工具(如ModelSim)对设计进行功能仿真和时序仿真。
- 教材章节:第五章 数字电路仿真,第一、二节。
5. 数字时钟综合与实现:将各模块整合,实现一个完整的数字时钟,并进行板级测试。
《数字电子技术课程设计》报告专业班级:姓名:学号:设计日期:一.设计题目多功能数字钟电路设计二.设计任务及要求多功能数字钟应该具有的功能有:显示时—分—秒、整点报时、小时和分钟可调等基本功能。
整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23时。
在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0~59,所以可以用一个3位的二进制码显示十位,用一个四位的二进制码(BCD 码)显示个位,对于小时因为他的范围是从0~23,所以可以用一个2位的二进制码显示十位,用一个4位的二进制码(BCD码)显示个位。
实验中由于七段码管是扫描的方式显示,所以虽然时钟需要的是1Hz 时钟信号,但是扫描需要一个比较高频率的信号,因此为了得到准确的1Hz 信号,必须对输入的系统时钟50Mhz进行分频。
对于整点报时功能,本实验设计的是当进行正点的倒计时5秒时,让LED来闪烁进行整点报时的提示。
调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时;S2调整分钟,每按下一次,分钟增加一分钟。
另外用S8按键作为系统时钟复位,复位后全部显示00—00—00。
管脚分配如下表:三.基于Verilog HDL语言的电路设计、仿真与综合(一)顶层模块本程序采用结构化设计方法,将其分为彼此独立又有一定联系的三个模块,如图1所示:LocationPIN_R16Option Value VCC S1INPUT Location PIN_P14Option Value VCC S2INPUT Location PIN_J3Option Value VCCCPINPUT Location PIN_M4Location PIN_F3Location PIN_F4Option Value SEL[2..0]OUTPUT Location PIN_L14Option Value LEDOUTPUTLocation PIN_N4Location PIN_G4Location PIN_H4Location PIN_L5Location PIN_L4Location PIN_K4Location PIN_K5Option Value LEDAG[6..0]OUTPUTCP CPoutf enpininst1CPoutS1S2RETHour[5..0]Minute[5..0]Second[5..0]LEDkongzhiqi inst2VCCRETINPUT CPout Hour[5..0]Minute[5..0]Second[5..0]SEL[2..0]LEDAG[6..0]xianshi inst图1:顶层结构框图(二)子模块 1.分频器分频器的作用是对50Mhz 的系统时钟信号进行分频,得到频率为1000hz 的信号,作为显示器的输入信号。
module ly2(clock,sec1,sec2,min1,min2,hou1,hou2);input clock;output sec1,sec2,min1,min2,hou1,hou2;reg[5:0] sec,min,hou;reg tun,mod;reg[3:0] sec1,sec2,min1,min2,hou1,hou2;wire mt,nt;initialbegintun=1;mod=1;min=0;hou=0;sec=0;sec1=0;sec2=0;min1=0;min2=0;hou1=0;hou2=0;endalways @(posedge clock) \\clock 标准1HZ时钟信号beginif(sec==59)beginsec<=0; \\秒为60进制计数器tun<=1; \\每60秒产生一个进位信号tun。
endelsebeginsec<=sec+1;tun<=0; \\进位信号置0。
endendassign mt=tun; \\生成分的控制信号,always@(posedge mt)beginif(min==59) \\分钟为60进制计数器beginmin<=0;mod<=1; \\每60分产生一个小时的进位。
endelsebeginmin<=min+1;mod<=0; \\分钟向小时的进位信号置0。
endendassign nt=mod; \\生成时的控制信号,always@(posedge nt)beginif(hou==23) \\小时为24进制计数器hou<=0;elsehou<=hou+1;endalways@(sec)beginsec1<=sec%10; \\sec1为秒个位sec2<=sec/10; \\sec2为秒十位endalways@(min)beginmin1<=min%10; \\min1为分个位min2<=min/10; \\min2为分十位endalways@(hou)beginhou1<=hou%10; \\hou1为时个位hou2<=hou/10; \\hou2为时十位endendmodule。
课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:实时时钟电路的设计Ⅱ、课程设计(论文)工作内容一、课程设计目标《硬件描述语言》是一门技术性、应用性很强的学科,实验课教学是它的一个极为重要的环节。
不论理论学习还是实际应用,都离不开实验课教学。
如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节、学习与应用脱节的局面。
《HDL项目设计》的目的就是让同学们在理论学习的基础上,通过完成一个涉及时序逻辑、组合逻辑、声光输出的,具有实用性、趣味性的小系统设计,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对分析、解决实际的数字电路问题进一步加深认识,为今后能够独立进行某些数字应用系统的开发设计工作打下一定的基础。
二、课程设计任务与要求(1)设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式);(2)为了演示方便,应具有分钟、小时快进功能;(3)时、分、秒设置功能(选作)。
三、课程设计考核平时20%;验收40%;报告40%摘要数字钟是人们日常生活中经常使用的计时工具,本次的课程设计是基于Verilog HDL的多功能数字钟,完成时、分、秒的显示功能。
设计利用Verilog HDL 语言自顶向下的设计理念,突出其作为硬件描述语言的良好的可读性、可移植性以及易于理解等优点。
通过Quartus II 5.0和ModelSim SE 6.1f软件完成仿真、综合。
程序下载到FPGA芯片后,可用于实际的数字钟显示中。
此次设计的逻辑结构主要由分频器、计数器和译码显示器三个模块构成。
分频模块将50Mhz系统基准时钟分频产生两路时钟信号,一路是1HZ的数字钟计时工作频率,一路是数码管动态显示的扫描频率;计时模块对1HZ的时钟信号进行计时,分为时、分、秒三个部分;译码显示模块采用动态扫描的方式完成数码管的显示。
最后通过主模块调用三个子模块函数完成整个设计。
合肥工业大学电子科学与技术专业集成电路前端课程设计报告设计题目:简易数字钟设计姓名学号班级电子科学与技术1班日期2010年12月6日模式:7按键7 PIO6 引脚7 change4 3 4 t_hou1 0 1 t_min时钟显示hou2 PIO 39-36 84 83 78 77hou1 35-32 76 75 74 73min2 31-28 72 71 70 69min1 27-24 68 67 52 51sec2 23-20 50 49 48 47sec1 19-16 42 41 40 39灯at 47 106clock clock0 123(选择1Hz的信号)模式1 正常计时模式at=0 灯灭模式2 手动较时模式at=1 灯亮按建功能:change 控制数字钟在计时和手动调整两个状态之间转换t_min 分钟手动调整按键t_hou 小时手动调整按键clock 标准1HZ时钟信号中间变量tun 秒到分的进位信号mod 分到时的进位信号mt 分钟的控制信号上升沿触发nt 时钟的控制信号上升沿触发输出sec1 秒个位sec2 秒十位min1分个位min2分十位hou1时个位hou2时十位at 表示模式的变量0为正常计时模式,1表示手动调整模式概述:要求:1设计一个能显示时、分、秒的简易数字钟。
具有时间调整功能。
2利用GW48-PK2系统上的数码管显示时间。
3 调整时间用的按键也使用GW48-PK2系统上的按键。
目的:本次课程设计的目的是为了掌握FPGA技术的层次化设计方法,掌握ModelSim和QuartusⅡ的使用方法。
步骤:用verilog语言在记事本编写程序,然后在ModelSim中仿真,查看波形,再用QuartusⅡ仿真,定义针脚,在面板上模拟。
数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的寿命,因此得到广泛的应用。
电子与电气工程系实习报告书实习名称:数字钟设计年纪专业及班级: 08通信工程1班姓名:学号:指导老师:评定成绩:教师评语:指导老师签名:20 年月日基于FPGA 的数字时钟设计一、课程设计目的1、进一步熟悉Quartus Ⅱ的软件使用方法;2、 熟悉可编程逻辑器件的开发流程及硬件测试方法;3、熟悉基于FPGA 的综合数字系统设计方法;二、课程设计任务设计一台可以显示时、分、秒的数字钟。
如图1所示为基于FPGA 的数字钟设计的系统框图。
FPGA数码管控制数码管控制数码管控制重启校时图1 数字钟系统三、设计要求1、能直接显示小时、分、秒,其中小时为以二十四为计数周期;2、当电路发生走时错误时,要求电路有校时功能,可以对时、分单独校正;3、具有闹钟功能,即输入想要定时的时间,当时钟到达该时间时报警,系统可由灯亮代表报警信号。
四、实验设备1、EDA6000实验箱一台2、PC 机一台五、整体系统设计方案1、总体思路和结构方框图由上面的方框图可以知道整个数字钟的设计分为6个功能模块,分别是时钟计时模块、闹钟设置模块、日期计数模块、校时模块(分别能对时钟时间、闹钟时间和日期进行校对)、闹钟报时模块以及数码管显示模块。
各个模块各自完成各自的功能互不干扰却相互合作,共同晚上数字钟的时间显示、日期显示、闹铃设置报时和时间、日期的校正功能。
数字钟的使用图如下:时钟部分闹钟部分 日期部分 校时部分 报时部分 显示切换部分 FPGAK2 K1CLK JF/D JH/M NF NH SOUND数码管显示如上图所示各个管脚的功能CLK:为数字钟整个系统的时钟信号,频率为1HZ;K1\K2:为时钟系统的使能端,用来切换显示功能和校时功能;JF/D:时间校时用来校正分的部分以及校正日期的天数;JH/M:时间校时用来校正时的部分以及校正日期的月数;NF:设置闹钟分的部分;NH:设置闹钟时的部分;SOUND:报时声音输出信号。
2、各模块设计思路(1)时钟模块由于数字钟设计要求用24进制,所以整个时钟用两个60进制计数器和一个24进制计数器分别级联在一起共同完成数字钟时间跳动功能。
课程设计报告课程设计题目:数字钟系统学号:201420130228学生姓名: 刘进辉专业:通信工程班级:1421301指导教师:钟凯老师2017年1 月1 日目录一.摘要 (3)二.概念及原理 (4)三.实验过程及分析 (5)四.实验心得 (7)五.参考文献 (7)六.实验代码 (8)七.评分表 (14)摘要在社会快速发展的今天,时钟在人们的生活中显得越发重要,因此设计数字钟就变得尤为重要。
本文介绍一种利用verilog语言产生多功能数字钟的设计方案,不仅让大家对数字钟更为了解,而且可以为人们的生活带来便利。
数字钟它具有时、分、秒的正常显示功能及调节时和分的特殊功能,此外,以24小时循环计数,具有整点报时功能,并且由按键输入进行对数字钟的校时、清零功能。
本文设计的数字钟方案由控制模块、计时模块、以及报时模块三大模块组成,满足所有的功能要求,并且代码是经modelsim软件编译和仿真所设计。
二.概念及原理数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。
由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路。
如图所示为数字钟的一般构成框图。
主要包括时间基准电路、计数器电路、控制电路。
其中的控制逻辑电路是比较灵活多样的,不断完善它可以增强数字钟的功能。
数字钟应该具有的功能有:显示时—分—秒、整点报时、小时和分钟可调等基本功能。
整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23。
在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0~59,小时他的范围是从0~23,所以可以均用一个4位的二进制码显示十位和个位。
对于整点报时功能,本实验设计的是当进行正点发出一个高音信号和59分50、5254、56、58秒发出一个高音信号。
调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时;S2调整分钟,每按下一次,分钟增加一分钟。
另用外reset按键作为系统时钟复位,复位后全部显示00—00—00。
三.实验过程及分析1.功能:显示时—分—秒、整点报时、小时和分钟可调等基本功能。
整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23。
仿真图:由图可知:hour_g,minute_s,minute_g,second_s,second_g分别对应于时、分、秒的十和个位,显然可以正常显示并满足条件。
2.功能:对于整点报时功能,本实验设计的是当进行正点发出一个高音信号和59分50、5254、56、58秒发出一个高音信号。
仿真图:上图可知在50、52、54、56、58秒时有一个高电平脉冲信号发出低音,在正点时有一个高脉冲信号发出高音。
3. 功能:调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时;S2调整分钟,每按下一次,分钟增加一分钟。
另用外reset 按键作为系统时钟复位,复位后全部显示00—00—00。
仿真图:上图可知,通过按键S1,S2控制了时和分的校准功能,并且通过reset键控制清除功能。
四.实验心得通过本次verilog的数字钟课程设计,不仅巩固了所学的相关知识,还对其有了更加深刻的认识。
学东西,基本功要学的扎实,这样会给上层建筑带来难以想象的益处,就如在本次实验中的测试模块的函数调用的内置变量的摆放位置的不当,导致程序无法得出自己想要的结果,还要不断的去检查,盲目的修改,耗时巨大。
另有一些编程的小技巧,这点钟凯老师的功劳很大,虽然原理一样,但是用不同的方式去编写,有时会取得不一样的结果。
这次实验考验的不仅是学生的基本功,而且考察学生自我学习,自我查找相关资料主动学习的能力,一路自己做下来,会收获你想象不到的东西。
这或许就是能力的提高吧。
在最后感谢钟凯老师的耐心解疑,学生受益匪浅。
六.参考文献【1】《数字系统设计与Verilog HDL》第五版王金明编著电子工业出版社【2】刘君,常明,秦娟,《基于硬件描述语言(VHDL)的数字时钟设计》,天津理工大学学报,2007,第23卷第4期,40-41。
【3】王开军,姜宇柏,《面向CPLD/FPGA的VHDL设计》,机械工业出版社,2006,28-65。
六.实验代码modulekongzhi_count(clk,S1,S2,reset,hour_s,hour_g,minute_s,minute_g,second_s,second_g,cout_1,cou t_2,alarm_clock_low,alarm_clock_high);input clk,S1,S2,reset;output reg[3:0] hour_s,hour_g,minute_s,minute_g,second_s,second_g ;output wire cout_1,cout_2;output reg alarm_clock_low,alarm_clock_high;reg R1,R2;always @(posedge clk)beginif(S1==1)beginR1=1;endelse if(S2==1)beginR2=1;endendalways @(posedge clk) //秒个位显示beginif(~reset)second_g <= 0;else if(second_g==9)second_g <= 0;elsesecond_g <= second_g + 1;endalways @(posedge clk) //秒十位显示beginif(~reset)second_s<= 0;else if(second_g==9)beginif(second_s==5)second_s<= 0;elsesecond_s <= second_s + 1;endendassign cout_1=((second_g==9)&&(second_s==5))?1:0; always @(posedge clk) //分个位显示beginif(~reset)beginminute_g <= 0;endelse if(R2==1)beginif(minute_g==9)minute_g <= 0;elsebeginminute_g<= minute_g+ 1;endR2<=0;endelse if(cout_1)beginsecond_g<=0;second_s<=0;if(minute_g==9)minute_g <= 0;elseminute_g<= minute_g+ 1;endendalways @(posedge clk) //分十位显示beginif(~reset)beginminute_s <= 0;endelse if(R2==1)beginif(minute_g==9)beginif(minute_s==5)minute_g <= 0;elseminute_s <= minute_s + 1;endR2<=0;endelse if(cout_1)beginsecond_g<=0;second_s<=0;if(minute_g==9)beginif(minute_s==5)minute_g <= 0;elseminute_s <= minute_s + 1;endendendassigncout_2=(((minute_g==9)&&(minute_s==5)&&(cout_1==1))||((minute_g==9)&&(minute_s==5)& &(S2==1)))?1:0;always @(posedge clk) //时个位显示beginif(~reset)beginhour_g <= 0;endelse if(R1==1)beginif(hour_g==9)hour_g <= 0;else if((hour_s==2)&&(hour_g==3))hour_g <= 0;elsebeginhour_g <= hour_g+ 1;endR1<=0;endelse if(cout_2)beginsecond_g<=0;second_s<=0;minute_g<=0;minute_s<=0;if(hour_g==9)hour_g <= 0;else if((hour_s==2)&&(hour_g==3))hour_g <= 0;elsehour_g <= hour_g+ 1;endendalways @(posedge clk) //时十位显示beginif(~reset)beginhour_s<= 0;endelse if(R1==1)beginif((hour_g==3)&&(hour_s==2)) hour_s <= 0;else if(hour_g==9)beginhour_s <= hour_s + 1;endR1<=0;endelse if(cout_2)beginsecond_g<=0;second_s<=0;minute_g<=0;minute_s<=0;if((hour_g==3)&&(hour_s==2))hour_s <= 0;else if(hour_g==9)hour_s <= hour_s + 1;endendalways @(posedge clk) //低音警报beginif(!reset)beginalarm_clock_low<=0;endelse if((minute_g==9)&&(minute_s==5))if(((second_s==4)&&(second_g==9))||((second_s==5)&&(second_g==1))||((second_s==5)&&(sec ond_g==3))||((second_s==5)&&(second_g==5))||((second_s==5)&&(second_g==7)))alarm_clock_low<=1;elsealarm_clock_low<=0;endalways @(posedge clk) //高音警报beginif(!reset)beginalarm_clock_high<=0;endelse if(cout_2)alarm_clock_high<=1;elsealarm_clock_high<=0;endEndmodulemodule clock_test();reg clk,reset,S1,S2;wire[3:0] hour_s,hour_g,minute_s,minute_g,second_s,second_g;wire cout_1,cout_2,alarm_clock_low,alarm_clock_high;parameter cycle = 100;kongzhi_countu1(.clk(clk),.S1(S1),.S2(S2),.reset(reset),.hour_s(hour_s),.hour_g(hour_g),.minute_s(minute_s),.m inute_g(minute_g),.second_s(second_s),.second_g(second_g),.cout_1(cout_1),.cout_2(cout_2),.a larm_clock_low(alarm_clock_low),.alarm_clock_high(alarm_clock_high));always#(cycle/2) clk = ~clk;initialbeginclk = 0;reset = 1;S1=0;S2=0;#300 reset = 0; #100 reset = 1;#100 S1=1;#100 S1=0;#100 S2=1;#100 S2=0;#100 S1=1;#100 S1=0;#100 S2=1;#100 S2=0;end endmodule东华理工大学课程设计评分表学生姓名:刘进辉班级:1421301 学号:201420130228课程设计题目:数字钟系统。