- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA实验数字钟详解
《综合设计性实验》预习报告
实验项目: 数字钟
一 引言:
使用verilog实现数字钟的设计,并能正常使用。
二 实验目的:
进一步掌握用VerilogHDL 语言编写任意进制计数器的方法,通过本次实验要充分认识到,顶层结构的设计和优化在综合设计中的重要性。
三 实验原理:
基本原理:数字钟秒到分、分到时均为60进制,利用VerilogHDL编写模60的计数器,秒模块的CLK可从实验板上取得,秒模块的本身输出用来驱动显示秒的数码管,进位输出恰好是分模块的CLK。分模块的进位作为时模块的CLK。时模块为24进制。
需要调整时间时,可以用数据选择器将正常的各个模块时钟切断取而代之的是由实验箱上的按键产生的单脉冲,从而实现调整时间的功能。
闹铃时间与当前时间要共用数码管的方式显示,同样我们可以采用多位数据选择器来实现。
闹铃实现可采用比较计时模块输出与闹钟设定输出完全相等时,输出控制信号使扬声器发声。
四 实验内容:
1、计时可选十二进制计时和二十四进制计时;
2、可手动校时,能分别进行时、分的校正;
3、带闹钟功能,当计时计到闹铃时间时,发光二极管点亮,闹铃时间为1分,可用按键提前终止闹铃。
五 重点问题:
1、能够用数码管显示当前时间的时、分、秒。(时采用24小时制)
2、能够通过按键调整时钟的时、分。
3、能够设定闹铃时间。闹铃时间到,有声音提示。
4、闹铃时间与当前时间要共用数码管的方式显示,并能用按键来切换。
六 参考文献:
潘松,黄继业,潘明.2011.EDA技术实用教程.北京:科学出版社
《综合设计性实验》实验报告
实验名称: 数字钟
摘要:
计时、调时、闹铃。
一 引言:
使用verilog实现数字钟的设计,并能正常使用。
二 实验要求:
1、能够用数码管显示当前时间的时、分、秒。(时采用24小时制)
2、能够通过按键调整时钟的时、分。
3、能够设定闹铃时间。闹铃时间到,有声音提示。
4、闹铃时间与当前时间要共用数码管的方式显示,并能用按键来切换。
三 实验仪器:
PC机、试验箱
四 实验步骤:
在草稿纸上画出设计框图
分模块设计60进制计数器,24进制计数器,6进制计数器,DAC数字钟顶层模块
程序仿真
引脚锁定、硬件测试。
五 数据处理及实验结果表示:
仿真图
引脚锁定图
模式5.
实验结果
在硬件测试时,按键1是模式选择位,按键2是增加位。
在测试中看到,数字钟的计时功能,时间调整功能,闹铃功能都已经实现。
六 实验结果分析:
在实验过程中发现,按键要按下两次才有作用,分析原因后发现是因为程序里面把按键的触发当成了是一个脉冲,而实际上,模式5的按键,按下是一个高电平,并且是一直保持的,只有当再次按下的时候才会切换电平,所以导致了按键要按下两次才有作用。
七 实验心得:
通过这个实验,我更加深入了的学习了verilog语言,以及一些程序规则,另外,也加深了我对FPGA器件的了解。
八 参考文献:
潘松,黄继业,潘明.2011.EDA技术实用教程.北京:科学出版社
实验verilog HDL描述:
module DAC(CLK0,key1,key2,aout1h4,aout1l4,aout2h4,aout2l4,aout3h4,aout3l4,speaker);
input CLK0,key1,key2;
output [3:0] aout1h4,aout1l4,aout2h4,aout2l4,aout3h4,aout3l4;
output speaker;
reg [3:0] aout1h4,aout1l4,aout2h4,aout2l4,aout3h4,aout3l4,out1h4,out1l4,
out2h4,out2l4,out3h4,out3l4,out4h4,out4l4,out5h4,out5l4;
reg[2:0] keycout;
reg i,j=0,CH0=0,speaker,Cout0,Cout1,Cout2,EN0,EN1,ENN0,ENN1,ENN2,CK0,
C0,C1,C2,C3,key,key2cout,key1cout,k1;
wire y;
parameter s0=0,s1=1,s2=2,s3=3,s4=4,s5=5;
assign y=(out5l4==out3l4out5h4==out3h4out4l4==out2l4out4h4==out2h4j==1);
count60 u1(.CLK(CLK0),.EN(EN0),.EN1(ENN0),.outh4(out1h4),.outl4(out1l4),.
文档评论(0)