文档库 最新最全的文档下载
当前位置:文档库 › 毕业设计(论文)--基于fpga的数字频率计设计

毕业设计(论文)--基于fpga的数字频率计设计

毕业设计(论文)--基于fpga的数字频率计设计
毕业设计(论文)--基于fpga的数字频率计设计

目录

摘要......................................................................................................................................... I ABSTRACT .................................................................................................................................. I I 前言.. (1)

1、 FPGA及VHDL (2)

1.1 FPGA简介 (2)

1.2 VHDL 概述 (2)

2、数字频率计的设计原理 (3)

2.1设计要求 (3)

2.2 频率测量 (3)

2.2.1时间门限测量法 (3)

2.2.2标准频率比较测量法 (3)

2.2.3 等精度测量法 (4)

2.3方案提出及确定 (4)

2.4系统设计与方案论证 (5)

2.5小结 (6)

3、频率计层化设计方案 (8)

3.1频率计主体电路顶层电路原理图 (8)

3.1.1频率计主体电路顶层原理图设计 (8)

图3.1 频率计主体电路电路顶层原理图 (9)

3.1.2仿真设计 (9)

3.2功能模块设计 (10)

3.2.1十进制计数器元件cnt10_v的设计 (10)

3.2.2 四位十进制计数器的顶层设计 (12)

3.2.3 闸门控制模块EDA设计 (15)

3.2.4译码显示模块 (18)

3.3小结 (23)

总结 (24)

谢辞 (25)

参考文献 (26)

摘要

数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着现场可编程门阵列FPGA的广泛应用,以EDA工具作为开发手段,运用VHDL等硬件描述语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。

采用FPGA现场可编程门阵列为控制核心,通过硬件描述语言VHDL编程,在QuartusII仿真平台上编译、仿真、调试,并下载到FPGA芯片上,通过严格的测试后,能够较准确地测量方波、正弦波、三角波、矩齿波等各种常用的信号的频率,而且还能对其他多种物理量进行测量。

关键词:硬件描述语言,现场可编程门阵列,频率计,频率测量

ABSTRACT

Digital frequency meter is a digital circuit in a typical application, the actual hardware design of devices used in more complicated connection, but will have relatively large delay, caused by measurement error, poor reliability. With the FPGA field programmable gate array ,a wide range of applications to the development of EDA tools as a means of using the VHDL hardware description language , will greatly simplify the whole system to improve overall system performance and reliability.

The use of field programmable gate array FPGA for the control of the core, through the VHDL hardware description language programming, in QuartusII compiled simulation platform, simulation, debugging, and downloaded to the FPGA chip, through rigorous testing, to more accurately measure square wave, sine wave, triangle wave, moment-tooth wave signals such as the frequency of commonly used, but also a variety of other physical measurements.

Key words: VHDL, FPGA, the cymometer,the frequency measurement

前言

在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。数字式频率计的测量原理有两类:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法即测周期法,如周期测频法。直接测频法适用于高频信号的频率测量,通常采用计数器、数据锁存器及控制电路实现,并通过改变计数器阀门的时间长短在达到不同的测量精度;间接测频法适用于低频信号的频率测量,本设计中使用的就是直接测频法,即用计数器在计算1S内输入信号周期的个数。

数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着现场可编程门阵列FPGA的广泛应用,以EDA工具作为开发手段,运用VHDL等硬件描述语言语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。

采用FPGA现场可编程门阵列为控制核心,通过硬件描述语言VHDL编程,在QuartusII仿真平台上编译、仿真、调试,并下载到FPGA芯片上,通过严格的测试后,能够较准确地测量方波、正弦波、三角波、矩齿波等各种常用的信号的频率,而且还能对其他多种物理量进行测量[1]。

1、 FPGA及VHDL

本章首先对设计所采用的可编程逻辑器件FPGA及VHDL进行了简单的介绍,对设计有些基本的了解。

1.1 FPGA简介

FPGA是20世纪80年代中期出现的高密度可编程逻辑器件,它一般由布线资源分隔的可编程逻辑单元构成阵列,又由可编程I/O单元围绕阵列构成整个芯片,排列阵列的饿逻辑单元由布线通道中的可编程内连线连接起来实现一定的逻辑功能。一个FPGA包含丰富的具有快速系统速度的逻辑门、寄存器和I/O组成。

FPGA/CPLD芯片都是特殊的ASIC芯片,除了具有ASIC的特点外还有一下几个优点:随着超大规模集成电路VLSI工艺的不断提高,单一芯片内部可以容纳上百万个晶体管;FPGA/CPLD芯片出厂前100%都做过测试,不需要设计人员承担风险和费用;用户可以反复地编程、擦除、使用或者在外围电路不动的的情况下,用不同软件就可实现不同的功能,用FPGA/CPLD试制样片,能以最快的速度占领市场。FPGA/CPLD软件包中有各种输入工具、仿真工具、版图设计及编程器等全线产品,使电路设计人员在较短的时间内就可以完成电路的输入、编译、优化、仿真,直至最后芯片的制作[2]。

1.2 VHDL 概述

VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点通过以上的介绍,可以看出课题中所用的编程语言、采用的可编程逻辑器件对课题有了基本的了解,下面将对设计的具体方案进行探讨[3]。

2、 数字频率计的设计原理

本章首先介绍了数字频率计设计的要求和频率测量的工作原理,最后对系统的设计方案进行探讨,综合起来形成数字频率计的设计思路以及原理框图。

2.1设计要求

(1)控制功能:能测量输入信号的频率,频率范围1HZ~999MHZ ,波形可以是正弦波,三角波,方波和其他任何有固定频率的信号,信号的幅值0.5~5V [4]。

(2)在EDA 软件平台上建立计数器电路的顶层电路文件并完成编译和仿真。

2.2 频率测量

数字频率计是用于测量信号频率的电路。测量信号的频率参数是最常用的测量方法之一。实现频率测量的方法比较多, 在此我们主要介绍三种常用的方法:时间门限测量法、标准频率比较测量法、等精度测量法[5]。

2.2.1时间门限测量法

在一定的时间门限T 内,如果测得输入信号的脉冲数为N , 设待测信号的频率为,则该信号的频率为:

T

N f x = 改变时间T ,则可改变测量频率范围。例如,当T =1s, 则)(Hz N f x =;T =1ms ,则)(KHz N f x =。

2.2.2标准频率比较测量法

用两组计数器在相同的时间门限内同时计数,测得待测信号的脉冲个数为、已知的标准频率信号的脉冲个数为,设待测信号的频率为, 已知的标准频率信号的频率为;由于测量时间相同,则可得到如下等式:

21f N f N x = 从上式可以得出待测频率的公式为

02

1f N N f x = 标准频率比较测量法对测量时产生的时间门限的精度要求不高,对标准频率信号的频率准确度和频率的稳定度要求较高,标准信号的频率越高,测量的精度就比较高。该方法的测量时间误差与时间门限测量法的相同,可能的最大误差为正负一个待测信号周期,即x f t /1±=?。

2.2.3 等精度测量法

等精度测量法的机理是在标准频率比较测量法的基础上改变计数器的计数开始和结束与闸门门限的上升沿和下降沿的严格关系。当闸门门限的上升沿到来时,如果待测量信号的上升沿未到时两组计数器也不计数,只有在待测量信号的上升沿到来时,两组计数器才开始计数;当闸门门限的下降沿到来时,如果待测量信号的一个周期未结束时两组计数器也不停止计数,只有在待测量信号的一个周期结束时两组计数器才停止计数。这样就克服了待测量信号的脉冲周期不完整的问题,其误差只由标准频率信号产生,与待测量信号的频率无关。最大误差为正负一个标准频率周期,即x f t /1±=?。由于一般标准信号频率都在几十兆赫兹以上,因此误差小于610-HZ [6]。

2.3方案提出及确定

方案一: 采用小规模数字集成电路制作

被测信号经过放大整形变换为脉冲信号后加到主控门的输入端,时基信号经控制电路产生闸门信号送至主控门,只有在闸门信号采样期间内输入信号才通过主控门,若时基信号周期为T ,进入计数器的输入脉冲数为N ,则被信号的测频率其频率F=N/T ,其原理方框图如图2.1所示[7]。

待测信号

图2.1 方案一测频原理图

方案二:采用单片机进行测频控制

整形放大 闸门 计数器 译码器 显示 逻辑控制

单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入测频电路,由单片机对测频电路的输出信号进行处理,得出相应的数据送至显示器显示。原理方框图如图图2.2所示[8]。

待测信号

图2.2 单片机测频原理图

采用这种方案优点是依赖成熟的单片机技术、运算功能较强、软件编程灵活、自由度大、设计成本也较低,缺点是显而易见的,在传统的单片机设计系统中必须使用许多分立元件组成单片机的外围电路,整个系统显得十分复杂,并且单片机的频率不能做得很高,使得测量精度大大降低。

方案三:采用现场可编程门阵列(FPGA)为控制核心

采用现场可编程门阵列(FPGA)为控制核心,利用VHDL 语言编程,下载烧制实现。将所有器件集成在一块芯片上,体积大大减小的同时还提高了稳定性,可实现大规模和超大规模的集成电路,测频测量精度高,测量频率范围大,而且编程灵活、调试方便[9]。

综合上述分析,方案三为本设计测量部分最佳选择方案。

2.4系统设计与方案论证

数字频率计的测量原理,可选择合适的时基信号即闸门时间,对输入被测信号脉冲进行计数,实行测频的目的,在进行设计之前,首先搞清楚在什么情况下是测频率,在什么情况下是测周期,其实就是一个选择合适的时基信号的问题。在这个设计中,要在频率计提供的基准信号和输入信号直接作出选择,充当时基信号即闸门的时间。在测频率的时候,要以输入信号作为时钟信号,因为输入信号的频率大于频率计提供的基准频率,在频率计提供的基准信号周期内,计算输入信号的周期数目,再乘以频率计提供的基准频率,就是输入信号的频率值了。此时的时基信号为频率计的基准信号。当测周期的时候,要以频率计提供的基准信号作为时钟信号,因为频率计提供的时基频率大于输入信号的频率,在输入信号周期内,计算频率计提供的基准信号的周期数目,再乘以基准信号频率,就是输入信号的周期值了。此时的时基信号为输入信号。

信号整形 测频电路 单片机 显示

晶振

数字频率计基本原理是用计数器来计算1S 内输入信号周期的个数。如图2.3所示是4位十进制数字频率计的系统方框原理图,当系统正常工作时,脉冲发生器提供的1 Hz 的输入信号,经过测频控制信号发生器进行信号的变换,产生计数信号,被测信号通过信号整形电路产生同频率的矩形波,送入计数模块,计数模块对输入的矩形波进行计数,将计数结果送入锁存器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在七段数码显示管上可以显示的十进制结果[10]。

量程选择

存储 系统基准时钟 清零

使能

待测频率信号X F X F 转换为数字脉冲

图2.3 系统方案图

图2.3,可以把数字频率计分为4个部分:4位十进制计数器模块,闸门控制模块、译码显示器模块和脉冲整形模块。该数字频率计的精度取决于系统基准时钟,实际设计可采用石英晶体振荡器电路,以便为闸门控制电路产生精确的系统基准时钟。脉冲整形模块主要对待测频率信号进行整形,以确保待测频率信号与BCD 计数器模块的输入脉冲相兼容。只要待测频率信号具有足够的幅度,就可采用施密特触发器对输入信号进行整形,把非方波信号转换为数字脉冲信号。在EDA 设计中不考虑此模块的设计,下面将给出各底层模块的层化设计方案。

2.5小结

本章对数字频率的设计要求进行阐述,由此对频率测量的工作原理进行探讨引申出几个设计的方案,采用的时间门限测量法根据此方法确定了以现场可编程门阵列为控制核心的设计方案,它最为灵活方便。然后得出论述对方案的进行细节方面的论证,

闸门控制模

块 译码显示模块 脉冲整

形 4位十进制计数器模块

产生了设计的原理方框图。但是在设计中有个特别需要注意的地方是:在测频控制信号发生器的设计当中,要对其进行仔细的时序仿真,防止可能产生的毛刺。

3、频率计层化设计方案

本章先对数字频率计设计的顶层电路原理图进行了阐述,然后对系统设计的模块一一进行描述。

3.1频率计主体电路顶层电路原理图

3.1.1频率计主体电路顶层原理图设计

顶层电路原理图如图3.1所示。文件名Frec_top.bdf。

在成功完成底层单元电路模块设计仿真后,可根据图3.1(a)所示的频率计电路顶层原理图的设计文件。该电路图中Timer(定时信号模块)、T_con(控制信号发生器模块)、4cnt10(4位十进制计数器模块)、reg_16(寄存显示器模块)为前面设计的底层单元电路模块。为系统基准输入信号;F_in为待测频率信号;K1、K2为量程选择开关,K1K2=00时选1档,K1K2=01时选2档,K1K2=10时选3档,K1K2=11时选4档;P0P1P2P3为量程状态显示驱动信号和数码小数点位置指示信号,本设计测试中用4个发光二极管表示量程状态显示;Alarm是进位扩展信号,用于超量程提示功能,在超出目前量程档次时发出报警信号,驱动蜂鸣报警器[11]。在QuartusII利用原理图输入对频率计电路顶层原理图Frec_top.dbf 编译仿真正确无误后,即可生成如图3.1(b)所示的元件符号图。

(a)频率计顶层电路原理图

(b)元件符号图

图3.1 频率计主体电路电路顶层原理图

3.1.2仿真设计

在QuartusII中选择波形编辑器,创建一个新的波形文件,本设计中腰仿真的对象为频率计电路,下面给出频率计主体电路(不含扫扫描显示)波形仿真输出结果,如图3.2所示。F_in为待测频率信号,在仿真时设其周期为50ns;

F为标准频率信

S

号,周期为100ns,图3.2(a) (b) (c) (d)分别给出了K2K1=00、01、10、11时所得的测频输出X=2000(1档),X=0200(2档),X=0020(3档),X=0002(4档)。

(a)K2K1=00,波形仿真输出结果

(b)K2K1=01,波形仿真输出结果

(c)K2K1=10,波形仿真输出结果

(d)K2K1=11,波形仿真输出结果

图3.2 频率计主体电路仿真波形输出

3.2功能模块设计

3.2.1十进制计数器元件cnt10_v的设计

十进制计数器即可采用QuartusII的宏元件74160,也可用VHDL语言设计,其源程序如下。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY cnt10_v IS

PORT(CLK,RST,EN:IN STD_LOGIC;

CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

COUT:OUT STD_LOGIC );

END cnt10_v;

ARCHITECTURE behav OF cnt10_v IS

BEGIN

PROCESS(CLK,RST,EN)

VARIABLE CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

IF RST='1'THEN CQI:=(OTHERS=>'0');--计数器异步复位

ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿

IF EN='1' THEN --检测是否允许计数(同步使能)

IF CQI<9 THEN CQI:=CQI+1; --允许计数,检测是否小于9

ELSE CQI:=(OTHERS=>'0'); --大于9,计数值清零

END IF;

END IF;

END IF;

IF CQI=9 THEN COUT<='1'; --计数等于9,输出进位信号

ELSE COUT<='0';

END IF;

CQ<=CQI; --将计数值向端口输出

END PROCESS;

END behav;

在源程序中:COUT:计数器进位输出;

CQ[3..0]:计数器的状态输出;

CLK:时钟输入端;

RST:复位控制输入端,当RST=1时,CQ[3..0]=0;

EN:使能控制输入端,当EN=1时,计数器计数,当EN=0

时,计数器保持状态不。

图3.3 十进制计数器源程序仿真输出波形

在项目编译仿真成功后将设计的十进制计数器电路设置成可调用的元件cnt10_v.bsf,用于以下四位十进制计数器的顶层设计。

图3.4 十进制计数器元件符号

3.2.2 四位十进制计数器的顶层设计

顶层电路原理图如图3.5所示。文件名4cnt10.bdf

该顶层设计可以用原理图输入的方法完成。在QuartusII中,新建一个原理图编辑窗口,从当前的工程目录中调出4片十进制计数器元件cnt10_v,并按3.5所示的4位十进制计数器的顶层原理图完成电路接线。

完成4位十进制计数器的顶层原理图编辑以后,即可进行仿真测试和波形分析,其仿真输出波形如图3.6(a),3.6 (b)所示,当CLR=0,EN=1时其计数值在0~9999之间的变化,COUT为计数进位输入信号,在实际应用中可作为超量程报警信号,因此仿真结果真确无误[12]。此后,可将以上设计的4位十进制计数器设置成可调用的元件4cnt10.bsf以备高层设计中使用,其元件符号如图3.6(f)所示。

相关文档
相关文档 最新文档