好文档 - 专业文书写作范文服务资料分享网站

基于VHDL的数字显示频率计的设计

天下 分享 时间: 加入收藏 我要投稿 点赞

※※※※※※※※※ ※※※

※ ※ ※

EDA课程设计

※※※※※※※※※

EDA课程设计报告书

课题名称 基于VHDL的数字显示频率计的设计 姓 名 学 号 院 系 专 业 指导教师

一、 设计任务及要求: 1.1设计任务 做一个四位十进制显示数字频率计。 1.2设计要求 (1)设计一个能测量方波信号的频率的频率计。 (2)测量的频率范围是0~9999Hz。 (3)结果用十进制数显示。 指导教师签名: 年 月 日 二、指导教师评语: 指导教师签名: 年 月 日 三、成绩 验收盖章 年 月 日 1

基于VHDL的数字显示频率计的设计

1设计目的

通过EDA的试验设计,加深我们对FPGA的了解,熟悉FPGA的工作原理和试验环境,知道FPGA的开发流程,熟悉各种软件如Quartus II 6.0的使用。通过设计小型试验项目学会仿真和硬件测试的基本方法。

2设计的主要内容和要求

在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更加重要。通过运用VHDL语言,实现4位数字频率计,并利用Quartus II 6.0集成开发环境进行编辑、综合、波形仿真,并下载到FPGA器件中,经实际电路测试,该系统性能可靠。

3 整体设计方案

3.1四位十进制数据显示频率计设计

在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、

测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。数字式频率计的测量原理有两类:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法即测周期法,如周期测频法。直接测频法适用于高频信号的频率测量,通常采用计数器、数据锁存器及控制电路实现,并通过改变计数器阀门的时间长短在达到不同的测量精度;间接测频法适用于低频信号的频率测量,本设计中使用的就是直接测频法,即用计数器在计算1S内输入信号周期的个数。 数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着现场可编程门阵列FPGA的广泛应用,以EDA工具作为开发手段,运用VHDL等硬件描述语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。

2

3.2具体设计方法

本实验通过频率控制模块,将时钟信号clk两分频后分别取反赋给所存使能和计数是能端,这样计数完成后就能实现数据的锁存,当计数使能和锁存使能同时无效,基都出现低电平的时候,计数复位信号有效,将计数器清零,重新开始计数。根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的脉冲计数允许信号,1秒计数结束后,计数值(即所测信号频率)锁入锁存器,并为下一次测频作准备,即将计数器清零。

3.3原理框图:

被测信号译码显示计数器锁存器频率控制部分 图3.3 实验原理框图

4. 实验程序和原理图模块

4.1四位十进制加法计数器模块

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;

entity cnt4 is --实体声明

port(clk,rst,ena:in std_logic; --端口声明clk,rst,ena是标准逻辑位类型输入端口 q0,q1,q2,q3:buffer std_logic_vector(3 downto 0);

cout: out std_logic); --端口声明cout是输出端口, end cnt4;

architecture one of cnt4 is

3

signal en1,en2,en3:std_logic; --内部信号声明 begin

process(clk,rst,ena) --描述四位十进制加法器的功能 begin

if rst='1' then q0<=\ --复位信号

elsif clk'event and clk='1' then --时钟上升沿来到时执行下一条语句 if ena='1' then --使能允许

if q0=\ --当q0等于9时清零,其他则加1 end if; end if; end if;

if q0=\当q0进位则将en1置位为1 end process;

process(clk,rst,en1) --对第二位十进制计数器进行功能描述 begin

if rst='1' then q1<=\

elsif clk'event and clk='1' then --上升沿时钟信号来到则执行下一条指令 if en1='1' then --当en1=1即第一位十进制计数器有进位时执行下一指令 if q1=\end if; end if;

if q1=\end process;

process(clk,rst,en2) --对第三位十进制计数器进行相似功能描述 begin

if rst='1' then q2<=\elsif clk'event and clk='1' then if en2='1' and en1='1' then

if q2=\end if;

4

基于VHDL的数字显示频率计的设计

※※※※※※※※※※※※※※※EDA课程设计※※※※※※※※※EDA课程设计报告书课题名称基于VHDL的数字显示频率计的设计姓名学号院系专业指导教师
推荐度:
点击下载文档文档为doc格式
1m8kw2hssm9d31q9oeda
领取福利

微信扫码领取福利

微信扫码分享