基于VHDL的数字显示频率计的设计.doc
文本预览下载声明
EDA课程设计报告书
课题名称 基于VHDL的数字显示频率计的设计 姓 名 学 号 院 系 专 业 指导教师
设计任务及要求:
1.1设计任务
做(1)(2)(3)
指导教师签名:
年 月 日
二、指导教师评语:
指导教师签名:
年 月 日
三、成绩
验收盖章
年 月 日 基于VHDL的数字显示频率计的设计
1设计目的
通过EDA的试验设计,加深我们对FPGA的了解,熟悉FPGA的工作原理和试验环境,知道FPGA的开发流程,熟悉各种软件如Quartus II 6.0的使用。通过设计小型试验项目学会仿真和硬件测试的基本方法。
2设计的主要内容和要求
在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更加重要。通过运用VHDL语言,实现4位数字频率计,并利用Quartus II 6.0集成开发环境进行编辑、综合、波形仿真,并下载到FPGA器件中,经实际电路测试,该系统性能可靠3 整体设计方案
3.1四位十进制数据显示频率计设计
在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。数字式频率计的测量原理有两类:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法即测周期法,如周期测频法。直接测频法适用于高频信号的频率测量,通常采用计数器、数据锁存器及控制电路实现,并通过改变计数器阀门的时间长短在达到不同的测量精度;间接测频法适用于低频信号的频率测量,本设计中使用的就是直接测频法,即用计数器在计算1S内输入信号周期的个数。。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
signal en1,en2,en3:std_logic; --内部信号声明
begin
process(clk,rst,ena) --描述四位十进制加法器的功能
begin
if rst=1 then q0=0000; --复位信号
elsif clkevent and clk=1 then --时钟上升沿来到时执行下一条语句
if ena=1 then --使能允许
if q0=1001 then q0=0000;else q0=q0+1; --当q0等于9时清零,其他则加1
end if;
end if;
end if;
if q0=1001 then en1=1; else en1=0;end if; --当q0进位则将en1置位为1
end process;
process(clk,rst,en1) --对第二位十进制计数器进行功能描述
begin
if rst=1 then q1=0000;
elsif clkevent and clk=1
显示全部