数字时钟设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称:可编程逻辑器件与数字系统设计实验项目:数字时钟设计
专业班级:
姓名:学号:
实验室号:实验组号:
实验时间:批阅时间:
指导教师:*绩:
沈阳工业大学实验报告
专业班级:学号::
实验名称:数字时钟设计
1.实验目的:
熟悉Quartus II 6.0运行环境,掌握基本使用方法;
学会使用Quartus II编写程序,进行下载验证。
2.实验内容:
(1)60进制计数器;
(2)24进制计数器;
(3)调用24进制和60进制计数器制作数字时钟。
3. 实验方案
(1)编写题目要求的程序;
(2)按照要求将相关程序进行检测和调试,运行正确的程序;
(3)程序完成后,将其与实验箱连接,并打开电源;
(4)下载程序到芯片内;
(5)观察程序功能是否成功实现。
4. 实验步骤或程序
详细过程见附录。
5.程序运行结果
运行结果如下图所示:
24进制计数器
60进制计数器
6.出现的问题及解决方法
首次运行程序时,没有任何出错状况;而在下载后,发现24进制计数器中的频率有些快,只要把频率的短路针调到1Hz即可,没有其他问题。
附录A(24进制计数器)
1、功能实现与程序选择
24进制计数器是实现从0到23的计数。由此可以运用Verilog HDL 语言将此功能实现。
2、程序运行与调试
module count24(Rd,EN,CLK,Qh,Ql,C);
input Rd,EN,CLK;
output [3:0]Qh,Ql;
output C;
reg [3:0]Qh,Ql;
reg C;
initial
begin
Qh=4'd0;Ql=4'd0;C=0;
end
always (posedge CLK)
begin
if(EN==1)
begin
if(Rd==0)
begin
Qh=4'd0;Ql=4'd0;C=0;
end
else if(Qh<4'd2&&Ql<4'd9)
Ql=Ql+1;
else if(Qh<4'd2&&Ql==4'd9)
begin
Qh=Qh+1;Ql=4'd0;
end
else if(Qh==4'd2&&Ql<4'd3)
Ql=Ql+1;
else begin
Qh=4'd0;Ql=4'd0;C=0;
end
if(Qh==4'd2&&Ql==4'd3)
C=1;
end
end
endmodule
3、保存一个名称,建立一个和module模块的名称一致的工程并进行调试。
4、新建一个波形文件,并且把各变量都输入到里面,绘制出波形。波形同上面的程序运行结果相同。
附录B(60进制计数器)
1、功能实现与程序选择
60进制计数器是实现从0到59的计数。由此可以运用Verilog HDL语言将此功能实现。
2、程序运行与调试
module count60(Rd,EN,CLK,Qh,Ql,C);
input Rd,EN,CLK;
output [3:0]Qh,Ql;
output C;
reg [3:0]Qh,Ql;
reg C;
initial
begin
Qh=4'd0;Ql=4'd0;C=0;
end
always (posedge CLK)
begin
if(EN==1)
if(Rd==0)
begin
Qh=4'd0;Ql=4'd0;C=0;
end
else if(Ql<4'd9)
Ql=Ql+1;
else if(Qh<4'd5&&Ql==4'd9)
begin
Qh=Qh+1;Ql=4'd0;
end
else
begin
Qh=4'd0;Ql=4'd0;C=0;
end
if(Qh==4'd5&&Ql==4'd9)
C=1;
end
endmodule
3、保存一个名称,建立一个和module模块的名称一致的工程并进行调试。
4、新建一个波形文件,并且把各变量都输入到里面,绘制出波形。波形同上面的程序运行结果相同。
附录C(数字时钟)
1、功能实现与程序选择
数字时钟是实现从一天24小时的显示,精确到秒。(需要调用前面24进制计数器和60进制计数器的程序)由此可以运用Verilog HDL语言将此功能实现。2、程序运行与调试
module clock(Rd,EN,CLK,Qhh,Qhl,Qmh,Qml,Qsh,Qsl);
input Rd,EN,CLK;
output[3:0] Qhh,Qhl,Qmh,Qml,Qsh,Qsl;
count60 A1(Rd,EN,CLK,Qsh,Qsl,Cs);
count60 A2(Rd,EN,nCs,Qmh,Qml,Cm);
count24 A3(Rd,EN,nCm,Qhh,Qhl);
not A4(nCs,Cs);
not A5(nCm,Cm);
endmodule
3、保存一个名称,建立一个和module模块的名称一致的工程并进行调试。
4、输入管脚,查表对应输入。保存后再调试,没有错误后,就可以下载到试验箱了。
5、下载到实验箱观察程序结果是否如预期一样。