数字时钟设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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、下载到实验箱观察程序结果是否如预期一样。

相关文档
最新文档