FPGA的数字频率计设计 精品Word格式文档下载.docx
- 文档编号:17601367
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:33
- 大小:437.99KB
FPGA的数字频率计设计 精品Word格式文档下载.docx
《FPGA的数字频率计设计 精品Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《FPGA的数字频率计设计 精品Word格式文档下载.docx(33页珍藏版)》请在冰豆网上搜索。
1个字的误差是指在规定的闸门时间内存在±
1个信号的脉冲计数误差),而且这些方法设备复杂,不利于推广。
频率误差倍增法可以减小计数器的±
1个字的误差,提高测量精度,但用这种方法来提高测量精度是有限的,因为如要得到2×
10-13的测量精度,就要把被测频率fx倍频到mfx=1/2×
1011Hz=5000MHz,这无论是对倍频技术,还是对目前的计数器都是很难实现的。
频差倍增—多周期法是一种频差倍增法和差拍法相结合的测量方法。
这种方法是将被测信号和参考信号经频差倍增使被测信号的相位起伏扩大,在通过混频器获得差拍信号,用电子计数器在低频下进行多周期测量,能在较少的倍增次数和同样的取样时间情况下,得到比测频法更高的系统分辨率和测量精度。
但是仍然存在着时标不稳而引入的误差和一定的触发误差。
以上只是对现存的几种主要的测频方法的概述,很显然从以上的分析中知道:
不同的测频方法在不同的应用条件下是具有一定的优势的。
本文设计的频率计主要应用于一般性的频率测量,对测量精度要求不是很高,通过比较各种测频方法优缺点,决定使用多周期同步测频法进行频率计的设计。
1.3课题研究的主要内容
本课题主要研究如下内容:
1.分析比较常用的几种测频方式的测量精度,选择一种合适的测频实现方式。
2.根据确定的测频方式分模块设计频率计。
3.用VHDL语言实现频率计的各个模块及频率计的总体设计。
4.将设计程序下载到FPGA中,并设计频率计的附件电路,完成频率计总体硬件设计。
1.4各章主要内容
本文旨在通过对于频率计数器理论,频率技术器这样一个完整系统的制作。
来加深自己对于FPGA技术的认识,同时加深对于频率计数器的学习。
具体主要包含以下内容:
第一章是绪论,主要介绍了课题的研究背景、研究现状以及该课题的研究内容。
第二章介绍了频率计量的原理、研究价值和几种常用的频率测量方法,重点介绍了直接测频法、周期测频法,对于本文的设计原理有了更加深入了解原理。
第三章介绍了FPGA的工作原理,同时介绍了VHDL语言。
并且进行了本电路FPGA的软件和硬件设计。
提出了频率计的总体设计方案,并按照不同功能对频率计的总体设计进行了模块划分。
第四章根据第三章的设计理论对各个模块进行了设计与实现,并对FPGA数字频率计进行了仿真。
验证了设计的搭建硬件仿真平台、计数仲裁单元仿真、除法器单元仿真、计时过程仿真。
第二章频率计测量原理
频率测量是电子测量领域的最基本测量之一。
由于频率信号抗干扰性强、易传输,可以获得较高的测量精度,所以测频方法的研究越来越受到重视,在检测技术中,常将一些电量或其他电参量转换成频率进行测量,以提高测量的精度。
2.1常用频率测量方法
目前,用于测量频率的方法很多,频率测量的准确度主要取决于所测量的频率范围以及被测对象的特点。
而测量所能达到的精度,不仅取决于作为标准使用的时钟频率的精度,也取决于所使用的测量设备和测量方法。
下面对几类常用的频率测量方法进行简单介绍。
2.1.1直读法测频
直读法测频是利用电路的频率特性进行频率的判读。
直读法测量频率有电桥测频法、谐振测频法、频率—电压转换测频法等。
1.电桥法
电桥法测频是利用交流电桥的平衡条件与电桥电源频率有关这一特性来测频的。
在电桥面板上将调节电桥平衡的可变电阻(或电容)的调节旋钮(度盘)按频率刻度,则在电桥指示平衡时,测试者便可从刻度上直接读得被测信号频率fx。
电桥法测频的测量精度约为±
(0.5~1)%,一般用于低频段的测量。
在高频时,由于寄生参数影响严重,会使测量精确度大大下降,电桥测频法仅适用于10KHz以下的音频范围。
2.谐振法测频
谐振法测频是利用电感、电容组成的串联谐振回路或并联谐振回路的谐振特性来实现频率的测量。
当被测频率加到变压器式的谐振电路中时,调节电容使谐振电路达到谐振。
如果电容的调节度盘按谐振频率刻度,则可直接从该刻度读出被测频率值。
谐振法测量频率的误差大约在±
(0.25~1)%范围内,主要用于高频段的频率测量。
谐振法优点是体积小、重量轻,不要求电源等,因而它目仍获得广泛的应用。
3.频率—电压转换测频法
频率—电压转换(f-v)测频法的原理是利用相关电路把正弦频率fx转换为周期相等、宽度、幅度均为定值的矩形脉冲序列,用低通滤波器滤除其全部交流分量,则平均值即直流分量。
如下式:
(2-1)
输出的直流电压Uo按频率刻度的电压表指示,则从电压表指针所指刻度便可直接读出被测频率fx。
f-v转换式频率计最高测量频率可达几兆赫。
可以连续监视频率的变化是这种测量法的突出优点。
2.1.2比较法测频
比较法测频就是用标准频率fc与被测频率fx进行比较,当把标准频率调节到与被测频率相等时指零仪表(零示器)便指零,此时的标准频率值即被测频率值。
比较法测频可分为拍频法测频与差频法测频两种。
前者是将待测频率信号与标准频率信号在线性元件上叠加产生拍频。
后者是将待测频率信号与标准频率信号在非线性元件上进行混频。
目前拍频法测量频率的绝对误差约为零点几赫兹,差频法测量频率的误差可优于10-5量级,最低可测信号电平达0.1μV~1μV。
拍频法和差频法在常规场合很少采用。
2.1.3脉冲计数法测频
计数法测频是数字频率计常用的、最基本的频率测量方法。
计数法就是在单位时间内对信号的周期个数进行计数。
计数法测频的精确度取决于基准时间的精确度和计数误差。
本设计采用计数法进行频率测量,下面对计数法的测频原理和基于计数法的几种的测频方法进行详细分析。
2.2脉冲计数法测量原理
计数法的原理就是在一定的时间内,对周期性脉冲的重复次数进行计数。
可用图2-1来说明。
设时间间隔为T,若周期性脉冲的周期为TA,则计数结果为:
(2-2)
由于T和TA两个量是不相关的,T不一定正好是TA的整数N倍,即T与NTA之间有一定误差,如图2-1所示。
图2-1计数法测量原理
图中∆t1是闸门开启时刻到第一个计数脉冲前沿的时间(假设计数脉冲前沿使计数器翻转计数),∆t2是闸门关闭时刻至下一个计数脉冲前沿的时间。
处在T区间内计数脉冲个数(即计数器计数结果)为N,则有:
(2-3)
其中,∆N的产生是由于计数时闸门的开启时刻与计数脉冲之间的时间关系不相关造成的,即在相同的闸门开启时间内,计数器所得的数并不一定相同。
当闸门开启时间T接近甚至等于被测信号周期Tx的整数倍时,∆N的绝对值最大,为∆N=±
1。
所以,脉冲计数的最大绝对误差(又称量化误差)为:
(2-4)
最大相对误差为:
(2-5)
以上是脉冲计数法的测量原理和误差分析。
具体到应用脉冲计数法进行频率测量,通常根据频率值高低,又可分为直接测频法(M法)和周期测频法(T法)。
2.3基于脉冲计数的直接测频法
2.3.1直接测频法原理
直接测频法又称M法,是在脉冲计数法的基础上,选用一个频率相对较低的基准频率信号作为闸门信号(图2-1中信号b),而将被测信号转换为同频的周期性脉冲信号(图2-1中信号a),在固定闸门时间T内对其计数。
若计数结果为N,则用该方法测得的信号的频率为:
(2-6)
这里,时间间隔T=M·
Tc=M/fc,Tc、fc分别是基准频率信号的周期和频率值,M为T时间内包含的基准频率信号的周期数。
很显然,直接测频法适合于测量频率较高的信号。
2.3.2直接测频法误差及测频范围分析
直接测频法的误差分析:
经过对直接测频法的分析,我们知道这种方法的主要误差来自阈门时间T以及计数器的结果正确与否,所以,我们可以得到总误差同可用分项误差这二者的绝对值进行相加,得到:
(2-7)
在上面这个公式中,最大量化误差的绝对值主要是由于阈门与被测计数脉冲这二者未在同一时刻打开的原因,然而,根据理论我们可以知道,即便这二者在同一时间开启,也未必能够得到一个相同的值。
在上面的公式中fx为预测基本频率,Δfx为预测频率变化量,我们用Δf0/f0来表示直测法的阈门时间相对误差,这一误差值是由于电路标准频率的偏差而产生的。
通常情况下,阈门时间的正确与否是根据不同的测频需求而先行制定的。
在以往的测频率误差中,阈门时间都会对结果造成一定的影响,为了避免这种影响,我们选取的标准频率的准确度应该取值高于被测信号2个数量级或2个数量级以上。
2.4基于脉冲计数的周期测频法
2.4.1周期测频法原理
周期测频法又称T法,是在脉冲计数法的基础上,将频率相对较高的基准信号作为周期性脉冲计数信号(图2-1中信号a),将被测信号转换为时间长度等同于被测信号周期的闸门信号(图2-1中信号b),在闸门时间T(被测信号周期)内对基准脉冲信号计数。
若计数结果为N,则用该方法测得的信号的周期为:
(2-8)
被测信号的频率为:
(2-9)
很显然,周期测频法适合于测量频率较低的信号。
2.4.2周期测频法的误差分析
经过对直接测周期法的分析,我们知道这种方法的主要误差在于标准频率
数器的结果正确与否,所以,我们可以得到总误差同可用分项误差这二者的绝对值进行相加,得到:
(2-10)
在上面这个2-10式中,最大量化误差的绝对值主要是由于阈门与被测计数脉冲这二者未在同一时刻打开的原因。
在上面的公式中,我们用Δf0/f0测法的阈门时间相对误差,这一误差值是由于电路标准频率的偏差而产生的。
由上文可以得出,被测频率fx越高,闸门开启时间T越长(M的值越大),测频的相对误差Δfx/fx越小,即测频的精确度越高。
2.5本章小结
本章主要介绍了常用的几种频率测量方法,并对各个测量方法的测量原理进行了说明,在原理说明的基础上对各个测量方法的最大相对误差进行了分析,给出了各个频率测量方法适用的测频场合。
第三章基于FPGA频率计的设计方案
FPGA是现场可编程逻辑阵列(FieldProgrammableGateArray)的英文缩写。
它和CPLD(plexProgrammableLogicDevice,复杂可编程逻辑器件)一样,是目前常用的一类大规模可编程逻辑器件。
3.1FPGA的结构与工作原理
3.1.1查找表的原理与结构
对于组合逻辑电路来说,当前的输出总是当前输入的函数,并且当电路结构固定时,输入量不变,输出量也不会发生变化。
如图3-1所示组合逻辑电路。
图3-1组合逻辑电路示例
图3-1所示电路实现的组合逻辑为:
P=AB+C;
Q=A(B+C)。
该组合逻辑电路的真值表如表3-1所示。
表3-1示例组合电路的真值表表3-2RAM中存储的数据
ABC
PQ
000
00
001
10
010
011
100
101
11
110
111
A2A1A0
D1D0
真值表决定了输入和输出之间的逻辑关系。
将真值表和随机存储器联系起来,我们会看到,若输入量A、B、C作为随机存储器的地址输入A2、A1、A0,则输出量P、Q可以看作是存储器中该地址对应的存储单元中存储的数据D1、D0。
如表3-2所示。
存储器中各个单元存入不同的数据,地址(输入量)和存储单元中的数据(输出量)可构成不同的组合逻辑关系。
这是用随机存储器(RAM)实现可编程组合逻辑的基本原理。
FPGA可编程逻辑的形成方法就是采用基于这种原理的可编程的查找表(LookUpTable,LUT)结构。
LUT是可编程的最小逻辑构成单元。
大部分的FPGA采用基于SRAM(静态随机存储器)的查找表逻辑形成结构,就是用SRAM来构成逻辑函数发生器。
目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16×
1的RAM。
当用户在EDA开发环境中通过原理图或HDL语言描述了一个逻辑电路以后,EDA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。
FPGA查找表单元如图3-2所示。
图3-2FPGA查找表单元
至于一般情况下FPGA采用4输入的LUT,是因为,对于一个N输入的查找表,需要SRAM存储N个输入构成的真值表,需要2N个1位SRAM单元。
显然N不可能很大,否则LUT的利用率很低,所以一般FPGA的LUT多采用4输入的形式即N=4。
当逻辑函数的输入多于4个的时候,必须用几个查找表分开实现。
3.1.2FPGA的数字逻辑实现原理
我们以用FPGA来实现图3-3所示的数字电路来说明FPGA实现数字逻辑的原理。
在FPGA中,A、B、C、D输入信号由FPGA芯片的管脚输入后进入可编程连线,然后作为地址线连到到LUT,LUT根据图3-3中虚线框内的逻辑关系通过编程已经事先写入了所有可能的逻辑结果,所以LUT通过地址查找到相应的数据,然后输出,这样组合逻辑就实现了。
电路中D触发器是可利用LUT后面D触发器来实现。
时钟信号CLK由I/O脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。
图3-3数字逻辑电路示例
触发器的输出与I/O脚相连,把结果输出到芯片管脚。
这样FPGA就完成了图3-3所示电路的功能。
这个电路是一个很简单的例子,只需要一个LUT加上一个触发器就可以完成。
对于一个LUT无法完成的电路,就需要通过进位逻辑将多个单元相连,这样FPGA就可以实现复杂的逻辑。
3.2EDA技术与VHDL
3.2.1VHDL语言
本文的电路设计语言采用了传统的电路设计语言——VHDL。
这是一种高级的、被广泛应用于设计电路的硬件开发语言。
此硬件语言最早在上世纪的八十年代浮现于人们眼前,在VHDL语言被设计之处,是美国的国防部为了国家军队提高硬件开发的可靠性与缩短开发时间而研发的一种硬件语言。
在那个时候,VHDL的使用范围还是分有限。
VHDL即“Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage”。
在汉文的意思中,是速度非常快的、集成的、用来秒速电路硬件的语言。
经过多年的发展与使用,如今已经被广泛应用于各个领域,尤其是在数字电路的设计方面应用十分广泛。
在我国大陆地区,VHDL硬件语言主要被应用于FPGA/CPLD/EPLD的开发设计之中,只有一些非常有才能的企业应用VHDL来设计开发ASIC。
被主要使用在对系统结构行为、功能接口的VHDL语言,是一种硬件特征明显的语言,但它不仅仅包括了硬件特征的语句,它描述语句的描述方式、语句风格甚至到VHDL的语法都是特别接近计算机程序设计高级语言的,这在使用VHDL进行硬件程序设计之时,十分的方便。
如此一来,通过使用VHDL所开发设计的程序就具备了这样一个特点:
可以把一个工程项目中抑或者是某个设计实体(譬如一个系统或者一个元件)分成外部或者内部,不但涉及实体的功能,还实现了算法部分。
这么做的好处是:
对已经定义了外部界面的涉及实体,一旦这个实体的内部完成了,那么其他的设计就能够调用这个定义了外部界面的实体,这样大大的减少了开发时间,提高了开发效率。
在VHDL程序设计中,这一部分的优势与概念是VHDL系统的最基本的一个点。
3.2.2EDA设计方法
EDA技术的发展从理念上颠覆了传统的电子设计方法。
传统的电子设计方法通常是自底向上的,即首先确定构成系统的最底层的电路模块或元件的结构和功能,然后根据主系统的功能要求,将它们组合成更大的功能块,使它们的结构和功能满足高层系统的要求,以此流程,逐步向上递推,直至完成整个目标系统的设计。
自底向上的设计方法的特点是必须首先关注并致力于解决系统最底层硬件的可获得性,以及它们的功能特性方面的诸多细节问题;
在整个逐级设计和测试过程中,始终必须顾及具体目标器件的技术细节。
在这个设计过程中的任一时刻,最底层目标器件的更换,或某些技术参数不满足总体要求,或缺货,或由于市场竞争的变化,临时提出降低系统成本,提高运行速度等不可预测的外围因素,都可使前面的工作前功尽弃,工作又得重新开始。
由此可见,在某些情况下,自底向上的设计方法是一种低效、低可靠性、费时费力、且成本高昂的设计方法。
在电子设计领域,自顶向下的设计方法在EDA技术得到快速发展和成熟应用后才成为可能。
自顶向下设计方法的有效应用必须基于功能强大的EDA工具,具备集系统描述、行为描述和结构描述功能为一体的VHDL语言,以及先进的ASIC制造工艺和FPGA开发技术。
当今,自顶向下的设计方法已经是EDA技术的首选设计方法,是ASIC或FPGA开发的主要设计手段。
自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。
一个项目的设计过程包括从自然语言说明到VHDL的系统行为描述,从系统的分解、RTL(RegisterTransportLevel,寄存器传输级)模型的建立、门级模型产生到最终的可以物理布线实现的底层电路,就是从高抽象级别到低抽象级别的整个设计周期。
后端设计还必须包括涉及硬件的物理结构实现方法和测试(仍然利用计算机完成)。
应用VHDL进行自顶向下的设计,就是使用VHDL模型在所有综合级别上对硬件设计进行说明、建模和仿真测试。
(这里的综合是指综合器将用VHDL语言描述的电子系统,通过VHDL到RTL,从RTL到逻辑门,从逻辑门最终转换为可直接配置FPGA的配置网表文件或进行ASIC设计所需的版图文件的过程。
)主系统和子系统最初的功能要求在VHDL里体现为可以被VHDL仿真程序验证的可执行程序。
由于综合器(计算机软件,EDA工具之一)可以将高级别的模型转化生成门级模型,所以整个设计过程基本是由计算机自动完成的。
人为介入的方式主要是根据仿真的结果和优化的指标,控制逻辑综合的方式和指向。
因此,在设计周期中,要根据仿真的结果进行优化和升级,以及对模型进行及时修改,以改进系统或子系统的功能,更正设计错误,提高目标系统的工作速度,较少面积耗用,降低功耗和成本等。
在这些过程中,由于设计的下一步是基于当前的设计,即使发现问题或做新的修改而需从头开始设计,也不妨碍整体的设计效率。
此外,VHDL设计的可移植性、EDA平台的通用性以及与硬件结构的无关性,使得前期的设计可以很容易地应用于新的设计项目,而且设计的周期可以显著缩短。
自顶向下的设计方法可以将系统分解为各个功能模块,不同的模块可以同时设计、仿真、测试,最后将不同的模块集成为最终的系统模型,并对其进行综合测试和评价。
3.2.3基于EDA工具的FPGA设计流程
一个完整的EDA设计流程既是自顶向下设计方法的具体实施途径,也是EDA工具软件本身的组成结构。
使用VHDL硬件描述语言对数字电路进行设计,一般的设计流程可用图3-4表示。
具体的设计流程为:
1.设计要求的定义
在从事设计进行编写VHDL代码之前,必须先对设计目的和要求有一个明确的认识。
例如,要设计的功能是什么?
对所需的信号建立时间、时钟/输出时间、最大系统工作频率、关键的路径等这些要求,要有一个明确的定义,然后再选择适当的设计方式和相应的逻辑器件,进行总体方案的设计。
2.设计VHDL描述
按照VHDL的程序格式要求,用VHDL程序语言将设计方案表述出来。
VHDL语言的代码与其它计算机程序语言的代码有很大的不同,它是和硬件相关的,编写VHDL程序时必须清醒地认识到是正在设计硬件,编写的VHDL代码必须能够综合到采用可编程逻辑器件来实现的数字逻辑之中。
图3-4基于FPGA的EDA开发流程
3.VHDL文本编辑
使用编辑器将编写好的VHDL语言源程序输入到计算机当中。
编辑器可以使用EDA开发环境自带的编辑器,也可以使用计算机上任一款文本编辑器如记事本等。
但是不要使用officeword,因为word中带有一些隐形字符,不适合作为任一程序语言的编辑器。
4.源代码的功能仿真
功能仿真是直接对VHDL描述的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计要求。
对于大型设计,采用VHDL仿真软件对其进行功能仿真可以节省时间,可以在设计的早期阶段检测到设计中的错误,从而进行修正,以便尽可能地减少对设计日程计划的影响。
因为对于大型设计,其综合优化、配置往往要花费好几个小时,在综合之前对源代码仿真,就可以大大减少设计重复
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA的数字频率计设计 精品 FPGA 数字频率计 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)