ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:240.13KB ,
资源ID:22759113      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22759113.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA的电子钟设计Word下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于FPGA的电子钟设计Word下载.docx

1、学习利用Verilog HDL语言完成基于FPGA的数字钟设计,最后完成在EDA实验箱上的下载和调试。1.功能描述该电子钟可以实现以数字形式(hhffmm)显示时、分、秒的时间和复位以及调时功能。(1)“SW0”键时,数字钟复位;(2)“SW1”键控制“秒”调整;(3)“SW2”键控制“分”调整;(4)“SW3”键控制“时”调整;2.其他要求掌握用Verilog HDL语言的设计思想以及整个数字系统的设计。利用编译仿真软件Quartus实现其基本功能,然后结合EDA试验箱,在试验箱上演示具体功能。本实验设计采用试验箱上的模式5,时、分、秒的计时结果通过8个数码管动态显示。二、总体设计1.设计思

2、路利用Verilog HDL语言编程实现电子时钟的功能,显示电路利用七段数码管进行显示。芯片采用Cyclone系列中的EP3C10E144C8。秒计数器的计数时钟clk1为1Hz的标准信号。数码管的动态扫描时钟clk2为1kHz的标准信号。本设计中clk1和clk2分别采用试验箱上的信号F0、F1来实现。时钟的段选数据和位选数据通过EP3C10E144C8芯片的I/O口送给数码管,从而实现时间显示。时间的复位和调整通过外加独立按键(SW0,SW1,SW2,SW3)来控制。2.器件选型器件名称EP3C10E144C8LED数码管独立按键数量1片8只4个三、硬件设计1.硬件框图硬件框图如下所示:2

3、.硬件模块因该设计非常简单,硬件模块很少,只有显示模块和按键模块。3.硬件电路图硬件电路如下图所示:四、软件设计1.软件框图软件总体框图2.软件流程图及其程序代码软件总体流程图如下:2.1分、时、秒(24*60*60)计时模块程序代码如下:always ( posedge clk1 )beginif(!reset)sec=0;min=0;hour=0;endelsesec=sec+1;if(sec=60)min=min+1;if(min=60)hour=hour+1;if(hour=24)2.2 译码及数码管显示模块always (negedge clk2) /clk2为1kHz的数码管动态扫

4、描时钟 begin scan= scan + 3b001; -数码管的位选和段选控制- case(scan) 3h0 : begin wei = 8hFE; seg=d0; end依次选中每个数码管,并将它要显示的数据给segh1 :hFD; seg=d1; end h2 :hFB; seg=d2;h3 :hF7; seg=d3;h4 :hEF; seg=d4;h5 :hDF; seg=d5;h6 :hBF; seg=d6;h7 :h7F; seg=d7; endcase -译码部分- case(seg) 4 duan= 8h3F; /数字“0”的译码h06; /数字“1”的译码h5B; /数

5、字“2”的译码h4F; /数字“3”的译码h66; /数字“4”的译码h6D; /数字“5”的译码h7D; /数字“6”的译码h07; /数字“7”的译码h8 : /数字“8”的译码h9 :h6F; /数字“9”的译码 default :duan= 8h40; /符号“-”的译码 endcase2.3数据处理子模块:对当前的时钟数据进行处理,实现原理是分别用时、分、秒这3个数据除以10,将得到的十位和个位分别存在2个单独的存储器里。模块代码为:always ( posedge clk0)d0=(sec%10);d1=(sec/10);d2=10;d3=(min%10);d4=(min/10);

6、d5=10;d6=(hour%10);d7=(hour/10);五、测试效果经过软件仿真,测试效果良好,上述功能基本都能实现。一下给出基本的仿真效果。仿真效果如下所示:1.时、分、秒计时仿真结果:2.译码显示仿真结果:3.EDA实验箱上的调试效果:六、问题分析1.实现过程中遇到的问题及解决方法分析刚开始因为不太懂Verilog语言,所以在实验过程中遇到了不小的麻烦。我所写的程序总是出现很多语法错误,最后通过查阅资料和同学们的帮助才是问题得以解决。另外,在EDA试验箱上调试时,因为对试验箱的硬件不是很了解,调试一直不成功。最后,通过查看EDA实验指导书,才知道是时钟信号的跳线帽没有接好。最后,经

7、过仿真,该设计虽能达到预期的要求,但也存在不足之处。因为时间仓促,该设计未能实现调时模块。2.收获与体会经过本次实验设计的学习,收获颇丰。首先,对FPGA有了一定的了解,同时锻炼了我的动手能力。其次,我学习了Verilog语言,会用Verilog语言编写简单的程序。特别是体会到了Verilog语言与C语言的不同。Verilog语言虽然语法与C语言很相似,但它与C语言还是有很大的差别的。C语言是串行的思想,而Verilog语言很多语句是并行的。全部代码如下:module clock(clk,clk0,sec,min,hour,wei,duan,reset);input clk,clk0,rese

8、t;output sec,min,hour,wei,duan;reg 7:0sec;0min;0hour;reg 2:0scan;0wei;0duan;reg 3:0 d7:0;0seg;0set;always ( posedge clk ) if(! sec=0; min=0; hour=0; else sec=sec+1; if(sec=60) min=min+1; if(min=60) hour=hour+1; if(hour=24) d0=(sec%10); d1=(sec/10); d2=10; d3=(min%10); d4=(min/10); d5=10; d6=(hour%10); d7=(hour/10);always (negedge clk0) case(seg)endmodule

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1