您的当前位置:首页正文

verilog数字钟课程设计

来源:帮我找美食网


课程设计报告

课程设计题目: 数字钟系统

学 号: 201420130228 学生姓名: 刘进辉 专 业: 通信工程 班 级: 1421301 指导教师: 钟凯老师

2017年 1 月 第 1 页

1

目录

一.摘要..........................................3 二.概念及原理 ...................................4 三.实验过程及分析................................5 四.实验心得 .....................................7 五.参考文献......................................7 六.实验代码......................................8 七.评分表........................................14

第 2 页

摘要

在社会快速发展的今天,时钟在人们的生活中显得越发重要,因此设计数字钟就变得尤为重要。本文介绍一种利用verilog语言产生多功能数字钟的设计方案,不仅让大家对数字钟更为了解,而且可以为人们的生活带来便利。数字钟它具有时、分、秒的正常显示功能及调节时和分的特殊功能,此外,以24小时循环计数,具有整点报时功能,并且由按键输入进行对数字钟的校时、清零功能。本文设计的数字钟方案由控制模块、计时模块、以及报时模块三大模块组成,满足所有的功能要求,并且代码是经modelsim软件编译和仿真所设计。

第 3 页

二.概念及原理

数字钟实际上是一个对标准频率(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。

第 4 页

三.实验过程及分析

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秒时有一个高电平脉冲信号发出低音,在正点时有一个高脉冲信号发出高音。

第 5 页

3. 功能:调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时;S2调整分钟,每按下一次,分钟增加一分钟。另用外reset按键作为系统时钟复位,复位后全部显示00—00—00。 仿真图:

上图可知,通过按键S1,S2控制了时和分的校准功能,并且通过reset键控制清除功能。

第 6 页

四.实验心得

通过本次verilog的数字钟课程设计,不仅巩固了所学的相关知识,还对其有了更加深刻的认识。学东西,基本功要学的扎实,这样会给上层建筑带来难以想象的益处,就如在本次实验中的测试模块的函数调用的内置变量的摆放位置的不当,导致程序无法得出自己想要的结果,还要不断的去检查,盲目的修改,耗时巨大。另有一些编程的小技巧,这点钟凯老师的功劳很大,虽然原理一样,但是用不同的方式去编写,有时会取得不一样的结果。这次实验考验的不仅是学生的基本功,而且考察学生自我学习,自我查找相关资料主动学习的能力,一路自己做下来,会收获你想象不到的东西。这或许就是能力的提高吧。在最后感谢钟凯老师的耐心解疑,学生受益匪浅。

六.参考文献

【1】 《数字系统设计与Verilog HDL》 第五版 王金明 编著 电子工业出版社 【2】 刘君,常明,秦娟,《基于硬件描述语言(VHDL)的数字时钟设计》,天津理工大学学报,2007,第23卷 第4期,40-41。 【3】 王开军,姜宇柏,《面向CPLD/FPGA的VHDL设计》,机械工业出版社,2006,28-65。

第 7 页

六.实验代码

module

kongzhi_count(clk,S1,S2,reset,hour_s,hour_g,minute_s,minute_g,second_s,second_g,cout_1,cout_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) begin if(S1==1) begin R1=1; end else if(S2==1) begin R2=1; end end always @(posedge clk) //秒个位显示 begin if(~reset)

second_g <= 0; else if(second_g==9) second_g <= 0; else

second_g <= second_g + 1; end

always @(posedge clk) //秒十位显示 begin if(~reset)

second_s<= 0; else if(second_g==9) begin

if(second_s==5) second_s<= 0; else

second_s <= second_s + 1; end

第 8 页

end

assign cout_1=((second_g==9)&&(second_s==5))?1:0; always @(posedge clk) //分个位显示 begin

if(~reset) begin

minute_g <= 0; end

else if(R2==1) begin if(minute_g==9) minute_g <= 0; else begin

minute_g<= minute_g+ 1; end R2<=0; end else if(cout_1) begin

second_g<=0; second_s<=0; if(minute_g==9) minute_g <= 0; else

minute_g<= minute_g+ 1; end end

always @(posedge clk) //分十位显示 begin if(~reset) begin

minute_s <= 0; end

else if(R2==1) begin if(minute_g==9) begin

if(minute_s==5) minute_g <= 0; else

minute_s <= minute_s + 1; end

第 9 页

R2<=0; end else if(cout_1) begin

second_g<=0; second_s<=0; if(minute_g==9) begin

if(minute_s==5) minute_g <= 0; else

minute_s <= minute_s + 1; end end end assign

cout_2=(((minute_g==9)&&(minute_s==5)&&(cout_1==1))||((minute_g==9)&&(minute_s==5)&&(S2==1)))?1:0;

always @(posedge clk) //时个位显示 begin if(~reset) begin

hour_g <= 0; end

else if(R1==1) begin if(hour_g==9) hour_g <= 0;

else if((hour_s==2)&&(hour_g==3)) hour_g <= 0; else begin

hour_g <= hour_g+ 1; end R1<=0; end else if(cout_2) begin

second_g<=0; second_s<=0; minute_g<=0; minute_s<=0; if(hour_g==9)

第 10 页

hour_g <= 0;

else if((hour_s==2)&&(hour_g==3)) hour_g <= 0; else

hour_g <= hour_g+ 1; end end

always @(posedge clk) //时十位显示 begin if(~reset) begin

hour_s<= 0; end else if(R1==1) begin if((hour_g==3)&&(hour_s==2)) hour_s <= 0; else if(hour_g==9) begin

hour_s <= hour_s + 1; end R1<=0; end else if(cout_2) begin

second_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; end end

always @(posedge clk) //低音警报 begin

if(!reset) begin

alarm_clock_low<=0; end

else if((minute_g==9)&&(minute_s==5))

第 11 页

if(((second_s==4)&&(second_g==9))||((second_s==5)&&(second_g==1))||((second_s==5)&&(second_g==3))||((second_s==5)&&(second_g==5))||((second_s==5)&&(second_g==7))) alarm_clock_low<=1; else

alarm_clock_low<=0; end

always @(posedge clk) //高音警报 begin if(!reset) begin

alarm_clock_high<=0; end

else if(cout_2)

alarm_clock_high<=1; else

alarm_clock_high<=0; end

Endmodule

module 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_count

u1(.clk(clk),.S1(S1),.S2(S2),.reset(reset),.hour_s(hour_s),.hour_g(hour_g),.minute_s(minute_s),.minute_g(minute_g),.second_s(second_s),.second_g(second_g),.cout_1(cout_1),.cout_2(cout_2),.alarm_clock_low(alarm_clock_low),.alarm_clock_high(alarm_clock_high)); always

#(cycle/2) clk = ~clk; initial begin clk = 0; reset = 1; S1=0; S2=0;

第 12 页

#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

第 13 页

东华理工大学 课程设计评分表

学生姓名:刘进辉 班级:1421301 学号:201420130228 课程设计题目:数字钟系统

选 题 项目内容 能结合所学课程知识、有一定的能力训练。符合选题要求 (5人一题) 工作量适中,难易度合理 能熟练应用所学知识,有一定查阅文献及运用文献资料能力 能 力 水 平 理论依据充分,数据准确,公式推导正确 能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等 能体现创造性思维,或有独特见解 总体设计正确、合理,各项技术指标符合要求。 说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰 设计说明书栏目齐全、合理,符号统一、编号齐全。 格式、绘图、表格、插图等规范准确,符合国家标准 有一定篇幅,字符数不少于5000 指导教师评语: 指导教师签名: 年 月 日

第 14 页

满分 10 10 10 10 10 10 10 10 10 10 100 实 评 成 果 质 量 总 分

第 15 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Top