数字钟实验报告_3.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字电子技术 实验报告 数字钟设计实验 1.设计要求 在Xilinx FPGA上实现数字钟。 2.问题分析 数字钟Verilog程序采用8421BCD计数,并行在一个模块中实现时钟功能。时钟主程序可用一个模块来实现,此外还包括有数码管动态显示、初始化、校时、计时和反馈模块。 3.功能描述 数字钟cp信号为通过FPGA上集成的主时钟(50MHz)分频得到秒信号,计秒到60时分加1,秒清零,计分到60时,分清零,计时到24时,则全部清零。数字钟校时模块是通过四个开关进行操作,四个开关分别控制时位和分位,通过长按开关以达到校时的目的。 4.实验程序 1)HDL程序 //顶层设计 module clock(input clk, input en, input key1, input key2, input key3, input key4, output sec, output wire[7:0] seg, output wire[3:0] digit ); wire[3:0] num0,mum1,num2,num3; disp u0(clk,num0,mum1,num2,num3,seg,digit); clk_gen u1(clk,en,key1,key2,key3,key4,sec,num0,mum1,num2,num3); endmodule ////////////////////////////////////数码管动态显示 module disp(input clk, input [3:0] num0, input [3:0] num1, input [3:0] num2, input [3:0] num3, output reg[7:0] sm_seg, output reg[3:0] an ); reg[1:0] s; reg[3:0] digit; reg[16:0] clkdiv; always@(*) begin an=4b1111;//禁止所有数码管显示 s=clkdiv[16:15];//间隔2.6ms使能an an[s]=0;//根据s使能数码管其中之一 case(s)//根据s取对应的数码管上要显示的数据 0:digit=num0; 1:digit=num1; 2:digit=num2; 3:digit=num3; default:digit=num0; endcase case(digit)//七段译码表,跟书上的其实是一样的,只不过用的是16进制 4h0 : sm_seg = 8hc0; // 0 4h1 : sm_seg = 8hf9; // 1 4h2 : sm_seg = 8ha4; // 2 4h3 : sm_seg = 8hb0; // 3 4h4 : sm_seg = 8h99; // 4 4h5 : sm_seg = 8h92; // 5 4h6 : sm_seg = 8h82; // 6 4h7 : sm_seg = 8hf8; // 7 4h8 : sm_seg = 8h80; // 8 4h9 : sm_seg = 8h90; // 9 default : sm_seg = 8hff; // x endcase end always@(posedge clk)//主时钟计数:50MHz时钟,周期20ns,计数到1FFFFh时长2621420ns,约2.6ms clkdiv=clkdiv+17d1; endmodule ///////////////////////////////////////////初始化 module clk_gen(input clk, input en, input bt0, input bt1, i

文档评论(0)

134****4822 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档