(Verilog HDL)数字时钟设计.docVIP

  • 7
  • 0
  • 约2.35千字
  • 约 7页
  • 2019-12-09 发布于浙江
  • 举报
实验报告 课程名称: 可编程逻辑器件与数字系统设计 实验项目: 数字时钟设计 专业班级: 姓 名: 学 号: 实验室号: 实验组号: 实验时间: 批阅时间: 指导教师: 成 绩: 沈阳工业大学实验报告 专业班级: 学号: 姓名: 实验名称:数字时钟设计 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=4d0;Ql=4d0;C=0; end always @ (posedge CLK) begin if(EN==1) begin if(Rd==0) begin Qh=4d0;Ql=4d0;C=0; end else if(Qh4d2Ql4d9) Ql=Ql+1; else if(Qh4d2Ql==4d9) begin Qh=Qh+1;Ql=4d0; end else if(Qh==4d2Ql4d3) Ql=Ql+1; else begin Qh=4d0;Ql=4d0;C=0; end if(Qh==4d2Ql==4d3) 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=4d0;Ql=4d0;C=0; end always @ (posedge CLK) begin if(EN==1) if(Rd==0) begin Qh=4d0;Ql=4d0;C=0; end else if(Ql4d9) Ql=Ql+1; else if(Qh4d5Ql==4d9) begin Qh=Qh+1;Ql=4d0; end else begin Qh=4d0;Ql=4d0;C=0; end if(Qh==4d5Ql==4d9) C=1; end endmodule 3、保存一个名称,建立一个和module模块的名称一致的工程并进行调试。 4、新建一个波形文件,并且把各变量都输入到里面,绘制出波形。波形同上面的程序运行结果相同。 附录C(数字时钟) 1、功能实现与程序选择 数字时钟是实现从一天24小时的显示,精确到秒。(需要调用前面24进制计数器和60进制计数器的程序)由此可以运用Verilog HDL语言将此功能实现。 2、程序运行与调试 module clock(Rd,EN,CLK,Qhh,Qhl,Qmh,Qml,

文档评论(0)

1亿VIP精品文档

相关文档