2022年多功能数字钟 .pdf
《2022年多功能数字钟 .pdf》由会员分享,可在线阅读,更多相关《2022年多功能数字钟 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验五多功能数字钟一、实验内容1.通过 ModelSim软件,运用 Verilog语言编程实现多功能数字钟功能。二实验要求及原理1.实验要求设计计数器多功能数字钟及分频器,并进行功能仿真。2.实验原理数字钟是一个最常用的数字系统,其主要功能是计时和显示时间。这里通过一个数字钟表的模块化设计方法,说明自顶向下的模块化设计方法和实现一个项目的设计步骤。这里实现的电子表具有显示和调时的基本功能,可以显示时、分、秒和毫秒,并通过按键进行工作模式选择,工作模式有 4 种,分别是正常计时模式、调时模式、调分模式、调秒模式。构成电子表的基本模块有四个,分别是时钟调校及计时模块myclock、整数分频模块 i
2、nt_div、时钟信号选择模块clkgen 和七段显示模块 disp_dec。(1)时钟调校及计时模块时钟调校及计时模块myclock 实现的功能是根据当前的工作状态进行时、分、秒的调整或正常的计时。module myclock(RSTn,CLK,FLAG,UP,DN,H,M,S,MS);input RSTn,CLK,UP,DN;output 7:0H,M,S;output 7:0MS;input 1:0FLAG;reg 5:0m_H,m_M,m_S;reg 6:0m_MS;assign H=m_H;assign M=m_M;assign S=m_S;assign MS=m_MS;always
3、(posedge CLK)if(RSTn)名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 10 页 -begin m_H=8d23;m_M=8d52;m_S=8b0;m_MS=8b0;end else if(FLAG=2b01)begin if(UP)begin if(m_H=8d23)m_H=8d0;else m_H=m_H+1b1;end else if(DN)begin if(m_H=8h00)m_H=8d23;else m_H=m_H-1b1;end end else if(FLAG=2b10)begin if(UP)begin if(m_M=8d59)m_M=8d0;e
4、lse m_M=m_M+1b1;end else if(DN)begin if(m_M=8h00)m_M=8d59;else m_M=m_M-1b1;end end else if(FLAG=2b11)begin 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 10 页 -if(UP)begin if(m_S=8d59)m_S=8d0;else m_S=m_S+1b1;end else if(DN)begin if(m_S=8h00)m_S=8d59;else m_S=m_S-1b1;end end else begin if(m_MS=8d99)begin m_MS=8d0;i
5、f(m_S=8d59)begin m_S=8d0;if(m_M=8d59)begin m_M=8d0;if(m_H=8d23)m_H=0;else m_H=m_H+1b1;end else m_M=m_M+1b1;end else m_S=m_S+1b1;end else m_MS=m_MS+1b1;end endmodule 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 10 页 -(2)整数分频模块由于数字系统提供的基准时钟信号的频率往往比较高,因此需要分频模块产生所需频率的时钟信号,例如上面时钟调校及计时模块所需的100 Hz的时钟信号。整数分频模块int_div可以实现
6、对输入时钟clock 进行 F_DIV分频后输出clk_out。F_DIV分频系数范围为 12n(n=F_DIV_WIDTH),若要改变分频系数,改变参数 F_DIV或 F_DIV_WIDTH 到相应范围即可。若分频系数为偶数,则输出的时钟占空比为 50%;若分频系数为奇数,则输出的时钟占空比取决于输入的时钟占空比和分频系数(当输入为 50%时,输出也是 50%)。module int_div(clock,clk_out);parameter F_DIV=48000000;parameter F_DIV_WIDTH=32;input clock;output clk_out;reg clk_p
7、_r;reg clk_n_r;regF_DIV_WIDTH-1:0count_p;regF_DIV_WIDTH-1:0count_n;wire full_div_p;wire half_div_p;wire full_div_n;wire half_div_n;assign full_div_p=(count_pF_DIV-1);assign half_div_p=(count_p1)-1);assign full_div_n=(count_nF_DIV-1);assign half_div_n=(count_n1)-1);assign clk_out=(F_DIV=1)?clock:(F_D
8、IV0?(clk_p_r&clk_n_r):clk_p_r);always(posedge clock)begin if(full_div_p)begin count_p=count_p+1b1;名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 10 页 -if(half_div_p)clk_p_r=1b0;else clk_p_r=1b1;end else begin count_p=0;clk_p_r=1b0;end end always(negedge clock)begin if(full_div_n)begin count_n=count_n+1b1;if(half_di
9、v_n)clk_n_r=1b0;else clk_n_r=1b1;end else begin count_n=0;clk_n_r=1b0;end end endmodule(3)时钟信号选择模块时钟信号选择模块clkgen 实际上是一个二选一电路,用于提供时钟调校及计时模块所需的时钟脉冲。当电子表工作在正常计时状态时选择100 Hz时钟信号;当电子表工作在调时、调分、调秒三种设置模式时,如果采用100 Hz时钟信号,那么手动按键一次可能引起设置数据的一串跳变,因此为了方便按键动作对时间的设置,这里采用2 Hz的时钟信号。module clkgen(flag,clk_100hz,clk_2hz
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年多功能数字钟 2022 多功能 数字
限制150内