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

    多功能数字钟设计实验报告ilinEDABasys2华中科技大学HUST.docx

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

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

    多功能数字钟设计实验报告ilinEDABasys2华中科技大学HUST.docx

    多功能数字钟设计试验报告院系:电子与通信工程学院姓名:班级:1301 学号:U指导教师:一、试验目标 把握可编程规律器件的应用开发技术设计输入、编译、仿真和器件编程 生疏 EDA 软件使用 把握 Verilog HDL 设计方法 分模块、分层次数字系统设计二、试验内容要求 根本功能 能显示小时、分钟、秒钟时、分用显示器,秒用 LED 能调整小时、分钟的时间 提高要求 任意闹钟;1 分 小时为 12/24 进制可切换1 分 报正点数几点钟 LED 闪耀几下1 分 三、试验条件Xilinx 工程环境,win7 操作系统,BASYS2 试验板。四、试验设计1. 设计分析数字钟大体上由 2 个 60 进制计数器,1 个 24 进制计数器构成,中间有数据选择器进展连接。为实现提高功能,还需 12 进制计数和整点推断模块。以下图为数字钟层次构造图。2. 试验原理振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,再经分频器输出标准秒脉冲。秒计数器计满 60 后向分计数器进位,分计数器满 60后向小时计数器进位,小时计数器按 24 或 12 进制规律计数。计数器的输送译码显示电路,即可显示出数码即时间。计时消灭误差时可以用校时电路进展校时和校分。小时显示1224切换电路、仿电台报时、定时闹钟为扩展电路,只有在计时主体电路正常运行的状况下才能进展功能扩展。本试验承受 Verilog HDL 进展描述,然后用 FPGA/CPLD 实现, 使用内部 50MHz 晶振作为时钟电路。3. 规律设计实现上述功能的 Verilog HDL 程序如下。实现根本功能的程序分为两层次四个模块,底层有 3 个模块构成,即 6 进制计数器模块,10 进制计数器模块和 24 进制计数器模块,顶层有一个模块,他调用底层的 3 个模块完成数字中的计时功能。module timeclock(Hour,Minute,Second,CP,nCR,EN,Adj_Min,Adj_Hour,number,Light,clk,t emp,change,AMTM,dingdong);output 7:0 Hour,Minute,Second;output 3:0 Light,temp;output 6:0 number;output clk,AMTM,dingdong;/clk 为分频之后的时钟信号,频率为 1Hz, AMTM 为 24 进制转换 12 进制时说明上下午的变量,dingdong 为整点报时时的闪耀信号。input CP;/输入的时钟信号,需分频后才能正常使用。input nCR;/清零input EN,change;/EN 为使能信号,change 为 12/24 进制转换开关。input Adj_Min;/校分掌握input Adj_Hour; /校时掌握wire 7:0 Hour,Minute,Second;reg clk;reg 29:0 count,count1;/分频需要的计数器reg 1:0 scan;/扫描时需要的计数器reg 3:0 Light,temp;/4Bit 变量 Light 代表四个数码管,temp 表示数码管需要显示的数字reg 6:0 number;/number 代表 7 个发光二极管reg clk1;/为分频后的扫描频率supply1 Vdd;wire MinL_EN,MinH_EN,Hour_EN;/中间变量/ Hour,Minute,Second counter/60 进制秒计数器counter10 U1(Second3:0,nCR,EN,clk);/个位counter6 U2(Second7:4,nCR,(Second3:0=4”h9),clk);/十位/产生分钟计数器使能信号。Adj_Min=1,校正分钟;Adj_Min=0,分钟正常计时assign MinL_EN=Adj_Min?Vdd:(Second=8”h59);assign MinH_EN=(Adj_Min&&(Minute3:0=4”h9)|(Minute3:0=4”h9)&&(Secon d=8”h59);/60 进制分钟计数器counter10 U3(Minute3:0,nCR,MinL_EN,clk);counter6 U4(Minute7:4,nCR,MinH_EN,clk);/产生小时计数器使能信号。Adj_Hour=1,校正小时;Adj_Hour=0,小时正常计时assign Hour_EN=Adj_Hour?Vdd:(Minute=8”h59)&&(Second=8”h59);/24 进制和 12 进制可切换的小时计数器counter24 U5(Hour7:4,Hour3:0,nCR,Hour_EN,clk,change,AMTM);/整点报时模块dingdong U6(clk,nCR,Minute7:4,Minute3:0,Hour7:4,Hour3:0,dingdong);/分频always (posedge CP)beginif(nCR) count<=30”d00;endelse if(count=30”d25000000) begin count<=30”d00; clk=clk;else count<=count+1”b1;end /产生 1Hz 的频率always (posedge CP)beginif(nCR) count1<=30”d00;endelse if(count1=30”d100000) begin count1<=30”d00; clk1=clk1;else count1<=count1+1”b1;end /产生扫描用的频率/扫描计数器always (posedge clk1)beginif(nCR) scan<=2”b00;else if(scan=2”b11) scan<=2”b00;else scan<=scan+1”b1;end/扫描always (scan1:0)begincase(scan1:0)2”b00: Light<=4”b0111;2”b01: Light<=4”b1011;2”b10: Light<=4”b1101;2”b11: Light<=4”b1110;endcaseend/显示数字always (scan1:0)begincase(scan1:0)2”b00: temp<=Hour7:4;2”b01: temp<=Hour3:0;2”b10: temp<=Minute7:4;2”b11: temp<=Minute3:0;endcaseendalways (temp)begincase(temp)4”d0:number<=7”b0000001; /04”d1:number<=7”b1001111; /14”d2:number<=7”b0010010; /24”d3:number<=7”b0000110; /34”d4:number<=7”b1001100; /44”d5:number<=7”b0100100; /54”d6:number<=7”b0100000; /64”d7:number<=7”b0001111; /74”d8:number<=7”b0000000; /84”d9:number<=7”b0000100; /9default:number<=7”b0000001;endcaseendendmodulemodule dingdong(clk,ncr,minuteh,minutel,hourh,hourl,dingdong);input ncr;input clk;input 3:0 minuteh,minutel;input 3:0 hourh,hourl;output reg dingdong;integer i=0;reg en;always(posedge clk or negedge ncr)beginif(ncr)begindingdong<=0;endelse if(minuteh=4”d5)&&(minutel=4”d9)begini=0;en<=1;endelse if(i<(hourh*20+hourl*2)&&(en)begindingdong<=dingdong;i=i+1;endelse if(i=(hourh*20+hourl*2)en<=0;elsedingdong<=0;endendmodulemodule counter10(Q,nCR,EN,CP);output 3:0 Q;input CP;input nCR;input EN;reg 3:0 Q;always (posedge CP or negedge nCR)beginif(nCR) Q<=4”b0000;/nCR=0,计数器被异步清零else if(EN) Q<=Q;/EN=0,暂停计数else if(Q=4”b1001) Q<=4”b0000;else Q<=Q+1”b1;/计数器增加 1endendmodulemodule counter6(Q,nCR,EN,CP);output 3:0 Q;input CP;input nCR;input EN;reg 3:0 Q;always (posedge CP or negedge nCR)beginif(nCR) Q<=4”b0000;else if(EN) Q<=Q;else if(Q=4”b0101) Q<=4”b0000;else Q<=Q+1”b1;endendmodulemodule counter24(CntH,CntL,nCR,EN,CP,change,AMTM);output 3:0 CntH;output 3:0 CntL;output AMTM;input nCR;input EN;input CP,change;reg 3:0 CntH,CntL;reg AMTM;always (posedge CP or negedge nCR)beginif(nCR) CntH,CntL<=8”h00;/清零else if(change=0)/推断 12 或者 24 小时进制。change=0 时为 24 进制,change=1 时为 12 进制begin AMTM<=0;/上下午显示关闭if(EN) CntH,CntL<=CntH,CntL;/暂停计数elsebeginif(CntH>4”b0010)|(CntL>4”b1001)|(CntH=4”b0010)&&(CntL>=4”b 0011)CntH,CntL<=8”h00;else if(CntH=4”b0010)&&(CntL<4”b0011)begin CntH<=CntH; CntL<=CntL+1”b1; endelse if(CntL=4”b1001)begin CntH<=CntH+1”b1; CntL<=4”b0000; endelsebegin CntH<=CntH; CntL<=CntL+1”b1; endendend/24 进制小时计数模块完成else if(change=1)/进入 12 小时计数模块beginCounter6:if(CntH>=4”b0001&&CntL>4”b0010) begin CntH<=CntH-1”b1; CntL<=CntL-2”b10; AMTM<=1; end/AMTM=1.,表示为下午else if(EN) CntH,CntL<=CntH,CntL;elsebeginif(CntH>4”b0001)|(CntL>4”b1001)|(CntH=4”b0001)&&(CntL>=4”b0010)begin CntH,CntL<=8”h01; AMTM<=AMTM; end/完成一次 12 小时计数,AMTM 翻转一次,表示上下午的转换else if(CntH=4”b0001)&&(CntL<4”b0001)begin CntH<=CntH; CntL<=CntL+1”b1; endelse if(CntL=4”b1001)begin CntH<=CntH+1”b1; CntL<=4”b0000; endelsebegin CntH<=CntH; CntL<=CntL+1”b1; endendend/12 进制小时计数完成endendmodule4.仿真波形Counter10:Counter24:24 进制时:12 进制时:总体波形:注:number,temp 等没有显示,change=0,即仿真波形为 24 进制。五、调试过程1. 调试步骤首先设置引脚接口,其代码如下: 引脚代码:NET “Light0“ LOC = F12; NET “Light1“ LOC = J12; NET “Light2“ LOC = M13; NET “Light3“ LOC = K14; NET “number6“ LOC = L14; NET “number5“ LOC = H12; NET “number4“ LOC = N14; NET “number3“ LOC = N11; NET “number2“ LOC = P12; NET “number1“ LOC = L13; NET “number0“ LOC = M12; NET “Second0“ LOC = M5; NET “CP“ LOC = B8;NET “nCR“ LOC = L3; NET “EN“ LOC = P11;NET “Adj_Hour“ LOC = B4; NET “Adj_Min“ LOC = K3;NET “change“ LOC = G3; NET “AMTM“ LOC = M11;NET “dingdong“ LOC = P7;接着连接 BASYS2 试验板,将程序下载到板子上,观看结果。2. 调试过程中遇到的问题及解决方法在调试过程中,观看到四个数码管都显示为 8,通过检查确定缘由为扫描频率过高,将扫描频率降低,结果正常显示。3. 试验结果在 BASYS2 试验板上观看到时钟运行正常,清零功能以及暂停功能可以正确实现,可以正常校正时间以及切换 12/24 小时进制,整点报时功能也能正确实现。六、 试验总结本次试验需要使用 Xilinx 进展软件编译,通过这次试验,加深了对verilog 语句的了解,了解了数字钟的工作原理以及对拓展功能如整点报时的原理。试验中几乎完全为软件编译代码,需要有一个格外准确的布局观念以及一个正确的流程认知,这就运用到了分层次设计的方法,这种方法对我们以后的硬件设计有着格外大的帮助。变异过程格外简洁出错,所以要有急躁、细心以及毅力才能完成整个试验,正确进展仿真, 然后下载软件到板子上进展结果观看。总而言之,通过这次试验我收获颇丰。

    注意事项

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

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




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

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

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

    收起
    展开