基于Verilog HDL及DE2开发板的数字钟设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《EDA技术与Verilog HDL》课程实验报告
实验项目名称:基于V erilog HDL及DE2开发板的数字钟设计
一、实验项目名称
基于Verilog HDL及DE2开发板的数字钟设计
二、实验目的和要求
(1)实验目的
1.掌握Verilog HDL语言的基本运用;
2.熟悉QuartusⅡ的简单操作;
3.掌握一个基本EDA工程设计流程;
4.掌握时钟的设计基本原理。
(2)实验要求
1.能够正常输出时钟信号,进行计时和显示
2.能够通过按钮进行时钟的校对
三、实验内容和原理
时钟共使用两类主要模块来实现其功能。
其总体结构如下图所示。
其中校时模块根据是否处于校时状态,选择给予计数模块哪个驱动信号。
(1)计数模块
功能:
该模块主要实现三个显示部分(时、分、秒)的计数和正
常进位,以及按照规定的方式输出信号,
实现方式:
本模块主要通过计数器来实现,本模块中包含有三个主要
计数部分,分别是十进制、六进制以及二十四进制,其中六进制和十进制共同组成六十进制,即实现分和秒的计数,之所以将其分开是便于分别显示个位和十位,通过编写计数器,来计数信号的数量,从而实现时分秒按各自的进制正常计数,同时,本模块将前一时钟单位的进位信号作为下一时钟单位的clk,即从后向前驱动,这样便实现了时钟的正常运转。
(2)校时模块
功能:
本模块实现在给予时钟一个set信号后,时钟进入校时状态,此时,时、分、秒均进入静止状态即停止计时,然后通过三个按钮seth(校时)setm(校分)rst(校秒)来进行时间校对,其中seth(setm)在每按一下时,时(分)在原来的基础上加一,而rst按下后则会让秒清零。
实现方式:
本模块为实现当得到一个set信号后,进入校时,而再一次信号后又进入正常状态,将set信号作为一个驱动信号,然后另设一个set0信号使其每得到一个set信号后翻转一次,其初始值为0,翻转后为1。
当set0值为1时,便将分和时的驱动信号锁定为seth和setm,这样时钟便冻结住了,此时每按一次seth或setm便可驱动计数器在原有时或分基础上加一。
同时考虑到对秒精确置数不实用,因此秒针改为按rst键置
零的方式进行,其实现方式是当rst为1时,秒针计数器清零。
当校时完毕后,再按一次set键,set0便重新置零,此时各计数器的驱动信号恢复正常
(3)数码管显示译码模块
该模块将输入的四位二进制代码(8421)码译成8位输出,用以驱动数码管的8个i/o口,由于开发板上的数码管是共阳极
的,所以输出为‘0’时数码管上相应LED被点亮,例如:当输
入为“0001”时,输出为“11111001”。
(4)分频模块
由于开发板上的可用时钟为50MHz,不能直接用来作为秒计时器的输入时钟,必须前置分频器,将分频后的1Hz时钟输入至秒计时器。
四、操作方法与实验步骤
步骤1:编写各个模块的VHDL代码并进行编译与波形仿真, 仿真无误后生成元件符号。
步骤2:设计数字钟电路的顶层文件,在顶层文件中调入第—步中生成的元件符号,并根据连接关系将它们连接在
一起。
步骤3:引脚分配,为顶层设计文件中的各个输入输出端口分配芯片相应的引脚。
步骤4:下载程序到芯片,观看实验现象是否为预想的那样。
同时使用清零按键看能否实现清零,时间正常走动情况下
通过按键能否实现校时。
五、实验数据记录与处理
图(1)计数模块波形仿真
(stpin:秒针十进制位,shpin:秒针六进制位)
图(2)校时模块波形仿真
(set:校时信号;seth修改“时”信号,setm:修改“分”信号;rst:秒清零信号)
图(3)整体仿真
六、实验结果与分析
通过对仿真结果的观察,本实验能够正确的计时和实现校时功能。
下载成功后,拨动开关DP4至髙电平,使六个数码管复位淸零;拨动开关DP4至低电平,数字钟开始自动计时,此过程中可以通过1键设置小时数,2键设置分钟数。
当秒数满60则进一位, 分钟数满60进一位,当显示为23:59:59时,秒数在加一则显示00:00:00,同时指示一天结束的LED灯亮10秒,之后从新计时。
七、教员评语。