基于verilog数字钟设计报告 本文关键词:报告,设计,数字钟,verilog
基于verilog数字钟设计报告 本文简介:1、课程设计目标1.熟悉并掌握verilog硬件描述语言2.熟悉quartus软件开发环境3.学会设计大中规模的数字电路,并领会其中的设计思想二、课程设计实现的功能(1)设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式);(2)可以调节小时,分钟。(3)能够进行24小时和12小时的显示切
基于verilog数字钟设计报告 本文内容:
1、
课程设计目标
1.
熟悉并掌握verilog
硬件描述语言
2.
熟悉quartus
软件开发环境
3.
学会设计大中规模的数字电路,并领会其中的设计思想
二、课程设计实现的功能
(1)
设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式);
(2)
可以调节小时,分钟。
(3)
能够进行24小时和12小时的显示切换。
(4)
可以设置任意时刻闹钟,并且有开关闹钟功能。
(5)
有整点报时功能,几点钟LED灯闪亮几下。
(6)
有复位按键,复位后时间从零开始计时,但闹钟设置时间不变。
3、
设计原理:
1、总原理框图:
译码显示模块
切换12进制显示
复位
分钟校正
小时校正
分频模块
计数模块
是
输出整点报时信号
到达整点
输出闹钟信号
是否到闹钟时间
设置闹钟分钟
设置闹钟小时
模式选择模块
是
2、
各个子模块设计:
(1)、分频模块
:
分频模块的作用主要是要获得各种频率的时钟信号。输入信号为50MHZ的信号,要想获得1HZ的信号作为秒脉冲计时,则要对50MHZ信号分频。通过计数的方式,当计数从0开始到24
999999时,1HZ信号取反一次,计数又从0开始,如此循环,就可以得到1HZ脉冲信号。对于其他信号也是如此,只是计数值不一样,得到的分频信号不同。
部分代码如下:
[email protected](posedge
_50MHZ
or
negedge
nCR)begin
if(~nCR)
begin
Q1=32
d24999999)
begin
Q1=8
d720)begin
//响应时间完毕,关闭闹钟允许响应信号
Q=13)
HL12<=HL24+4
d8;
end
else
begin
HH12<=HH24-4
d1;
HL12<=HL24-4
d2;
end
end
endmodule
整点报时模块:
module
boshi(HH,HL,MH,ML,SH,SL,_500ms,bao_signal);
input[3:0]
HH,HL,MH,ML,SH,SL;
input
_500ms;
output
bao_signal;
reg
bao_signal;
reg
[7:0]Q1,Q2;
reg
bao;
[email protected](posedge
_500ms)begin
if(((SH*10+SL)==8
d59)
bao<=1
b1;end
else
if((Q1<10*HH+HL)
Q1<=Q1+bao_signal;
end
else
if(Q1==(10*HH+HL))
bao<=1
b0;
else
be