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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(基于Verilog HDL设计的数字时钟.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

基于Verilog HDL设计的数字时钟.doc

1、1深圳大学考试答题纸(以论文、报告等形式考核专用)二 18 二 19 学年度第 一 学期课程编号 1602080001 课程名称 硬件描述语言与逻辑综合 主讲教师 刘春平 评分学 号 姓名 李思豪 专业年级 电子科学与技术 16 级 1 班 教师评语:题目: 基于 Verilog HDL 设计的数字时钟摘 要:本文利用 Verilog HDL 语言自顶向下的设计方法设计多功能数字钟,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点,并通过 Altera Quartus 6.0 和 cyclnoe II EP2C35F672C6 完成综合、仿真。此程序通过下载到 FPGA 芯片后,

2、可应用于实际的数字钟显示中关键词:Verilog HDL;硬件描述语言;FPGA2目录一、实验任务 .3实验目的 .3实验要求 .3二、设计思路 .3三、实验结果 .10四、总结与收获 .1431、实验任务实验目的1. 深入了解基于 quartus ii 工具的复杂时序逻辑电路的设计。2. 理解并熟练利用 EDA 工具进行综合设计。3. 熟练掌握芯片烧录的流程及步骤。4. 掌握 Verilog HDL 语言的语法规范及时序电路描述方法。实验要求设计一个带秒表功能的 24 小时数字钟,它包括以下几个组成部分: 显示屏,由 6 个七段数码管组成,用于显示当前时间(时:分,秒)或设置的秒表时间; 复

3、位键 复位所有显示和计数 设置键,用于确定新的时间设置,三个消抖按键分别用于时分秒的设置 秒表键,用于切换成秒表功能基本要求(1) 计时功能:这是本计时器设计的基本功能,每隔一秒计时一次,并在显示屏上显示当前时间。(2) 秒表功能:设置时间,进行倒计时功能(3) 设置新的计时器时间:按下设置键后,用户能通过时分秒三个消抖按键对时间进行设置。二、设计思路1、总原理框图:4原理如上图所示,时钟由分频器模块,数码管显示模块,计时器模块三个模块构成,每个模块实现如下的不同功能,最后通过在顶层模块的调用,来实现时钟功能。2. 顶层模块:顶层模块调用三个字模块,并且定义输入输出口,代码输入所示:modul

4、e myclock2(daojishi,stop,clk,reset,shi,fen,miao,miaoout1,miaoout2,fenout1,fenout2,shiout1,shiout2);input clk,reset,stop,shi,fen,miao,daojishi; output6:0 miaoout1,miaoout2,fenout1,fenout2,shiout1,shiout2;wire3:0 miao1,miao2,fen1,fen2,shi1,shi2;wire clk_1hz;divider_1HZ divider1hz(clk_1hz,reset,clk);co

5、unt count1(daojishi,shi,fen,miao,stop,miao1,miao2,fen1,fen2,shi1,shi2,reset,clk_1hz);decode4_7 d0(miaoout1,miao1);decode4_7 d1(miaoout2,miao2);decode4_7 d2(fenout1,fen1);decode4_7 d3(fenout2,fen2);decode4_7 d4(shiout1,shi1);decode4_7 d5(shiout2,shi2);endmodule 输入输出端口类型功能表:引脚名 类型 功能daojishi input 秒表倒

6、计时模式stop input 暂停按键clk input 晶振脉冲reset input 复位按键shi input 小时调节按键fen input 分钟调节按键miao input 秒调节按键miaoout1 output 秒个位数码管输出miaoout2 output 秒十位数码管输出fenout1 output 分个位数码管输出fenout2 output 分十位数码管输出shiout1 output 时个位数码管输出shiout2 output 时十位数码管输出三个子模块的原理和代码:(1)分频模块 :分频模块的作用主要是要获得各种频率的时钟信号。输入信号 27MHZ 的信号,要想获得

7、 1HZ 的信号作为秒脉冲计时,则要对 27MHZ 信号分频。通过计数的方式,当计数从 0 开始到 13999999 时,1HZ 信号取反一次,计数又从 05开始,如此循环,就可以得到 1HZ 脉冲信号。对于其他信号也是如此,只是计数值不一样,得到的分频信号不同。模块代码如下:module divider_1HZ(clk_1hz,reset,clk);output clk_1hz;input reset,clk;reg clk_1hz;reg23:0 count;always (posedge clk)begin if(reset)begincount=2)begin shi2=0;enden

8、dendendif(!reset)if(miao1=9)begin 8miao1=0;miao2=miao2+1;if(miao2=5)beginmiao2=0;fen1=fen1+1;if(fen1=9)begin fen1=0;fen2=fen2+1;if(fen2=5)begin fen2=0;shi1=shi1+1;if(shi1=9)|(shi1=3)shi2=shi2+1;if(shi2=2)begin shi2=0;endendendendendendendelse /倒计时程序beginif(!(shi1=0)if(miao1=0)begin miao1=9;miao2=mia

9、o2-1;if(miao2=0)beginmiao2=5;fen1=fen1-1;if(fen1=0)begin 9fen1=9;fen2=fen2-1;if(fen2=0)begin fen2=5;shi1=shi1-1;if(shi1=0)begin shi1=9;shi2=shi2-1;if(shi2=0)begin shi2=0;endendendendendendendendend endendmodule103. 引脚排布:如下所示:引脚分布图二、实验结果(1)波形仿真在 Quartus II 中利用仿真波形进行功能或时序仿真的基本步骤如下:(1)创建新的矢量波形文件(*.vwf)

10、.(2)添加输入、输出节点。(3)编译输入节点的波形。(4)完成矢量波形文件的创建之后,用户即可以对设计进行功能或时序仿真。11(5)仿真启动后,状态窗口会同时自动打开,在状态窗口中显示仿真进度及所用时间。(6)默认情况下,仿真器报告窗口内在仿真过程中会显示仿真波形部分,其中还包括当前仿真器的设置信息和仿真信息等。下面我们单独对三个子模块分别进行仿真并分析仿真结果:(1)分频器模块仿真结果:分频器仿真图仿真分析:我们取时钟信号的周期是 20ns,为了让仿真结果更明显,取每三个时钟周期让秒脉冲 clk_1hz 翻转一次,而不是 1349999 翻转一次。并且让 reset 复位信号在仿真的 16

11、0ns-300ns 有效。结果如图所示,在每三个时钟信号出现时,秒脉冲都会翻转一次,在 reset 信号有效时,秒脉冲无输出,仿真结果符合预计要求。12(2)显示译码模块仿真结果:数码管输出数字 8 仿真图数码管输出数字 8 仿真图仿真结果分析: indec 是我们要输出的十进制数,temp 是连接 7 段数码的 7 位二进制数,已知数码管为共阴极数码管。我们设定 indec 为 8,从图中可以看见temp7:0都是 0;所以 7 个数码管都会被点亮,就是显示 8。我们再设定 indec 为 1,可以预见 1 在数码管中应该是亮两个,如第二图所示只有 temp1和 temp2是 0,所以就是亮

12、两个灯,显示 1。仿真结果符合设计要求。13(3)计时器模块仿真结果:计数器计数仿真图计数器复位测试仿真图仿真结果:miao1,miao2,fen1,fen2,shi1,shi2 分别是秒分时的个位和十位,时钟脉冲 clk_1hz 每一个上升沿,miao1 就加 1,miao1 再依次进位给更高的为。如图所示,当 miao1 计数到 9 的时候,miao2 加 1,当 miao2 计数到 5的时候,fen1 加 1,时钟计数功能实现,仿真符合设计要求。图二是复位信号 reset 的测试,当 reset 为 1 有效时,累计的时间清零。如图所以,当 reset=1 时,miao1,miao2,f

13、en1,fen2,shi1,shi2 全部变 0,仿真符合技术要求。此模块还有设置时间和倒计时的功能,但是在波形仿真中不够直观,所以不做波形仿真。14(2)DE2 开发板实现将开发板插入电脑中,烧录进程序,进行各项功能测试,包括计时功能,时间调节功能,秒表功能,复位功能,暂停功能。实验过程记录:(1)烧录程序完成,DE2 立刻开始从 0 秒计数,依次向分钟,小时进位,当时间为23:59:59 时,下一秒全部跳 0;时钟功能实现。(2)复位功能测试:switch0 为复位信号按键,拨下该按键,时间清零,复位功能实现。(3)暂停功能测试:switch1 为暂停信号按键,拨下该按键,时间暂停,暂停功

14、能实现。(4)时间设置测试:消抖按钮 key0,key1,key2,分别是秒分时设置键。按下暂停键,计数停止,每按一下 key0,秒加一;每按一下 key1,分加一;每按一下 key2,小时加一。时间设置完成,回拨暂停键,时钟从设置的时间开始计时。时间设置功能实现。(5)秒表倒计时功能测试:switch2 为倒计时信号按键,拨下该键后,时钟开始倒计时,倒计时功能实现。测试完成,所有测试结果符合设计要求,完成 verilong 时钟设计。四、总结与心得体会在 QuartusII 开发环境下,采用自顶向下的设计方法有利于在早期发现结构设计中的错误,避免不必要的重复设计。再结合基于 FPGA 的可编程实验板,轻轻松松就能实现各种电子产品的设计,现场观察实验测试结果。大大缩短了产品的设计周期和调试周期,提高了设计的可靠性和成功率,充分体现了可编程逻辑器件在数字电路设计中的优越性。在经过了四个星期的编写和仿真后,终于完成了设计要求,这次设计,我15克服了很多关于设计问题方面的困难,特别是对 verilog 语法和规则的不熟悉导致很多困难,最后使我对 Quartus II 软件的使用有了更进一步的了解,同时也积累了一些经验。很多时候我们想要的功能,写出来的代码,并不是正确的,需要不断的调试,要理论联系实际,这样才能更快的完成设计任务。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报