欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年多功能数字钟 .pdf

    • 资源ID:40340984       资源大小:170.17KB        全文页数:10页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年多功能数字钟 .pdf

    实验五多功能数字钟一、实验内容1.通过 ModelSim软件,运用 Verilog语言编程实现多功能数字钟功能。二实验要求及原理1.实验要求设计计数器多功能数字钟及分频器,并进行功能仿真。2.实验原理数字钟是一个最常用的数字系统,其主要功能是计时和显示时间。这里通过一个数字钟表的模块化设计方法,说明自顶向下的模块化设计方法和实现一个项目的设计步骤。这里实现的电子表具有显示和调时的基本功能,可以显示时、分、秒和毫秒,并通过按键进行工作模式选择,工作模式有 4 种,分别是正常计时模式、调时模式、调分模式、调秒模式。构成电子表的基本模块有四个,分别是时钟调校及计时模块myclock、整数分频模块 int_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(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;else 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;if(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可以实现对输入时钟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_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_DIV0?(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_div_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,clkout);input1:0flag;input clk_100hz,clk_2hz;名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 10 页 -input clk_100hz,clk_2hz;output clkout;assign clkout=(flag=2b00)?clk_100hz:clk_2hz;endmodule(4)七段显示模块1BCD 码显示模块BCD 码显示模块的功能是将8 位二进制数转换为2 位十进制数后,进行七段译码显示。为了实现显示功能,在其内部调用了dual_hex 2 位七段显示模块。module disp_dec(hex,dispout);input7:0hex;output15:0dispout;reg7:0dec;always(hex)begin dec7:4=hex/4d10;dec3:0=hex%4d10;end dual_hex u1(1b0,dec,dispout);endmodule22 位七段显示模块2位七段显示模块的功能是将2位十进制或十六进制数转换为对应的七段段码,内部调用了一位七段译码模块seg_decoder。module dual_hex(iflag,datain,dispout);input iflag;input 7:0datain;output 15:0dispout;seg_decoder u1(iflag,datain7:4,dispout15:8);seg_decoder u2(iflag,datain3:0,dispout7:0);endmodule31 位七段译码模块1位七段译码模块的功能是将4位二进制数转换为对应的共阴或共阳七段段码。module seg_decoder(iflag,iA,oY);input iflag;input3:0 iA;output reg7:0 oY;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 10 页 -always(iflag,iA)begin case(iA)4b0000:oY=8h3f;4b0001:oY=8h06;4b0010:oY=8h5b;4b0011:oY=8h4f;4b0100:oY=8h66;4b0101:oY=8h6d;4b0110:oY=8h7d;4b0111:oY=8h27;4b1000:oY=8h7f;4b1001:oY=8h6f;4b1010:oY=8h77;4b1011:oY=8h7c;4b1100:oY=8h58;4b1101:oY=8h5e;4b1110:oY=8h79;4b1111:oY=8h71;endcase if(!iflag)oY=oY;end endmodule(5)顶层模块的实现顶层模块是将各功能模块连接起来,实现电子表的完整功能。module clock(iCLK_50,RSTn,FLAG,UP,DN,H_dis,M_dis,S_dis,MS_dis,Mode,H,M,S);input iCLK_50;input RSTn,UP,DN;input 1:0FLAG;output 1:0Mode;output 15:0H_dis,M_dis,S_dis,MS_dis;output 7:0H,M,S;wire 7:0MS;wire clk_100hz,clk_2hz;wire clk;assign Mode=FLAG;int_div#(500000,32)nclk100(iCLK_50,clk_100hz);int_div#(50000000,32)nclk2(iCLK_50,clk_2hz);名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 10 页 -clkgen u0(FLAG,clk_100hz,clk_2hz,clk);myclck u1(RSTn,clk,FLAG,UP,DN,H,M,S,MS);disp_dec Hour(H,H_dis);disp_dec Minute(M,M_dis);disp_dec Second(S,S_dis);disp_dec hour(MS,MS_dis);endmodule 三实验内容(1)Testbench 设计为实现数字钟正常工作的仿真,设计相应的激励文件,参数根据仿真需要可做出相应修改。代码如下:timescale 100ns/1ns module myclock_tp;reg iCLK_50,RSTn,UP,DN;reg1:0 FLAG;wire1:0 Mode;wire15:0 H_dis,M_dis,S_dis,MS_dis;wire7:0 H,M,S;clock myclock(iCLK_50,RSTn,FLAG,UP,DN,H_dis,M_dis,S_dis,MS_dis,Mode,H,M,S);initial iCLK_50=0;always begin#10 iCLK_50=1b1;#10 iCLK_50=1b0;end initial begin 名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 10 页 -RSTn=0;UP=0;DN=0;FLAG=2b00;#500000 RSTn=1;end Endmodule(2)功能仿真1.正常工作图 1 所示是电子表在正常计时工作方式的功能仿真波形。图中,FLAG=2b00,H、M、S分别是时、分、秒的十进制计数值,图中的显示时间从 235957计数到 0016秒。信号 H_dis、M_dis、S_dis 以及MS_dis分别是当前时、分、秒和百分秒十进制数据的共阳极七段码的输出信号,例如当时间为 235957时,其七段段码数据分别为16ha4b0、16h9290、16h92d8,在共阳极数码管上显示“235957”。图 1 数字钟正常工作仿真波形2.调整时间电子表模块工作在时、分、秒的调整状态时的功能仿真波形如图2、3、4所示。图 2 中,当 FLAG=2b01时,即进入“时”调整状态,若 UP=1、DN=0,则小时数据 H进行加 1 调整,见图中小时数据H从 0 变化到 6 的调整过名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 10 页 -程;若 UP=0、DN=1,则小时数据 H进行减 1 调整,见图中小时数据H从5 变化到 21 的调整过程。分和秒的调整过程也类似,见图3、4。图 2 调时仿真波形图 3 调分仿真波形图 4 调秒仿真波形四实验总结名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 10 页 -

    注意事项

    本文(2022年多功能数字钟 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开