基于Verilog HDL及DE2开发板的数字钟设计

更新时间:2023-09-09 09:50:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《EDA技术与Verilog HDL》课程实验报告

实验项目名称: 基于Verilog 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秒,之后从新计时。 七、 教员评语

本文来源:https://www.bwwdw.com/article/bznh.html

Top