基于FPGA的等精度频率计的设计综述.docx
- 文档编号:6520150
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:24
- 大小:1.86MB
基于FPGA的等精度频率计的设计综述.docx
《基于FPGA的等精度频率计的设计综述.docx》由会员分享,可在线阅读,更多相关《基于FPGA的等精度频率计的设计综述.docx(24页珍藏版)》请在冰豆网上搜索。
基于FPGA的等精度频率计的设计综述
基于FPGA的等精度频率计的设计
学生姓名:
罗雪晶指导教师:
梁西银
学生届别:
2009届专业:
电子信息工程
班级:
2005级
(1)班学号:
200572020121
摘 要
本文提出了一种采用VHDL语言在FPGA(EP1C12Q240C8)平台上设计实现等精度频率计的方法。
该方法设计的频率测量系统在对频率变化范围较大的信号进行频率测量时能够满足高速度、高精度的测频要求。
系统的软件设计、编译、调试、仿真以及下载工作采用QuartusⅡ6.1完成。
该等精度频率计的测量频率值采用VGA显示,同时显示10秒内频率的测量情况,具有良好的人机界面。
关键词:
FPGA 、VHDL、等精度、频率计、VGA
ABSTRACT
ThispapermainlyintroducesamethodwhichusesVHDLlanguageintheFPGA(EP1C12Q240C8)platformdesignedtoachievethefrequencyaccuracy.Thismethodisdesignedfrequencymeasurementsysteminthefrequencyrangeofthesignalfrequencymeasurementstomeetthehigh-speed,high-precisionfrequencymeasurementrequirements.Systemsoftwaredesigning,compiling,debugging,simulation,anddownloadingtheworkareallcompletedbytheuseofQuartusⅡ6.1.ThesystemusesVGAdisplaytoshowthemeasuredvalueofthefrequencyofprecision,atthesametimeitshowsthefrequencyofmeasurementsin10seconds.Thisdesignhasagoodman-machineinterface.Andhasrealizedbroadbandmeasurementandcanmeettherequestofhighspeedandhighdegreeofaccuracy.
Keywords
FPGA,VHDL,Precisionsurvey,frequencymeter,VGA
基于FPGA的等精度频率计的设计
引言
频率是常用的物理量,频率测量是电子测量技术中最基本的测量之一。
在现代信号分析和处理领域中,高精度的频率测量有非常重要的意义。
常用的测频方法有计数法和周期法。
计数法是在预制的闸门时间Tw内测量被测信号的脉冲个数Nx,进行换算得出被测信号的频率为fx=Nx/Tw。
这种测量方法的测量精度取决于闸门时间和被测信号频率。
当被测信号频率较低时将产生较大误差,除非闸门时间取得很大。
周期法是在被测信号的一个周期Tx内,测量标准信号(周期Tc)ΔFs/Fs的周期个数Ns,进行换算得出被测信号的频率为fx=fc/Ns。
这种测量方法的测量精度取决于被测信号的周期和计时精度。
测量以频率为参数的被测信号,通常采用的是测频法或测周法。
但是,当频率变化较大,如范围为100Hz~100KHz时,测频法和测周法就存在着很大的局限性,难以实现宽频带、高精度的测量。
所以,当要求有一种测频方法能对频率变化范围较大的信号进行高精度的测量时,就必须采用等精度的测频技术。
本文采用的测量方法克服了以上两种方法的缺点,测频精度与被测信号的频率大小无关,从而保证了频率的等精度测量。
本文运用等精度测量原理,采用基于FPGA的VHDL语言设计了一款数字频率计,该频率计可在较宽定的频率范围内对频率进行测量,并可通过调整闸门时间预置测量精度。
选取的这种综合测量法作为数字频率计的测量算法,提出了基于FPGA的数字频率计的设计方案。
给出了该设计方案的实际测量效果,证明该设计方案切实可行,能达到较高的频率测量精度。
1.原理分析
1.1等精度频率测量原理
基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,在实用中有较大的局限性。
而等精度频率计不但具有较高的测量精度,并且在整个频率区域保持恒定的测量精度。
等精度频率测量技术又叫做多周期同步测量计算,是在直接测频方法的基础上发展起来的。
它的闸门时间不是固定的值。
而是被测信号周期的整数倍,即与被测信号同步,消除了对被测信号计数所产生±1个字的误差,测量精度大大提高,而且达到了在整个测量频段的等精度测量。
其测频原理图如图1所示。
图1等精度测量原理波形图
由图可知,等精度测量法的机理是在标准频率比较测量法的基础上改变计数器的计数开始和结束与闸门门限的上升沿和下降沿的严格关系。
在测量过程中,有两个计数器分别对标准频率信号和被测频率信号同时计数。
首先给出闸门开启信号(预置闸门上升沿),当闸门门限的上升沿到来时,如果待测量信号的上升沿未到时两组计数器也不计数,只有在待测量信号的上升沿到来时,两组计数器才开始计数;然后预置闸门关闭信号(下降沿)到时,如果待测量信号的一个周期未结束时两组计数器也不停止计数,只有在待测量信号的一个周期结束时两组计数器才停止计数。
完成一次测量过程。
可以看出,实际闸门时间T与预置闸门时间T1并不严格相等,但差值不超过被测信号的一个周期。
这样就克服了待测量信号的脉冲周期不完整的问题,其误差只由标准频率信号产生,与待测量信号的频率无关。
因此可以实现精度的恒定。
等精度频率计的原理图如图2所示
图2等精度频率计原理图
图中预置门控信号是宽度为T的一个脉冲,Bcount和Dcount是两个可控计数器,标准频率信号从Bcount的时钟输入端clk输入,其频率为Fs;经整形后的被测信号从Dcount的时钟输入端clk输入,当预置门控信号为高电平时,经整形后的被测信号的上沿通过控制模块的en端同时启动计数器Bcount和Dcount。
Bcount、Dcount分别对被测信号(频率为Fx)和标准频率信号(频率为Fs)同时计数。
当预置门信号为低电平时,随后而至的被测信号的上沿将使这两个计数器同时关闭。
设在一次预置门时间T中对被测信号计数值为Nx;对标准频率信号的计数值为Ns,则下式成立:
Nx/Fx=Ns/Fs
(1)
则待测频率信号的频率值为:
Fx=(Nx/Ns)Fs
(2)
1.2误差分析
设在1次实际闸门时间T中计数器对被测信号的计数值为Nx,对标准信号的计数值为Ns。
标准信号的频率为Fs,则有:
Nx/Fx=Ns/Fs
(1)
Fx=(Nx/Ns)Fs
(2)
有式
(2)可知,若忽略标额的误差Fs,则等精度频率测量可能产生的相对误差为
δ=(|Fx-Fe|Fe)×100%(3)
其中,Fe为被测信号频率的准确值。
在测量中,由于Fx计数的起停时间都是由该信号的上升沿触发的,在闸门时间T内对Fx的计数Nx无误差(T=Nx-tx);对Fs的计数Ns最多相差1个数的误差,即|ΔNs|≤1,其测量频率为:
Fe=[Nx/(Ns+ΔNs)]/Fs(4)
由以上
(1)、
(2)、(3)式可得
δ=|ΔNs|/Ns(5)
测量的相对误差小于1/Ns,而Ns=T×Fs(T为实际闸门时间),所以,只要选定标准频率和时间闸门,相对误差是个确定的值,和被测频率的大小无关,从而实现了等精度测量。
由相对误差公式可以得出以下结论:
(1)相对测量误差与频率无关。
(2)增大T或提高Fs,可以增大Ns,减少测量误差,提高测量精度。
(3)标准频率误差为ΔFs/Fs。
(4)等精度测频方法测量精度与预置门宽度和标准频率有关,与被测信号的频率无关。
在预置门时间和常规测频闸门时间相同,而被测信号频率不同的情况下,等精度测量法的测量精度不变,而常规的直接测频法精度随着被测信号频率的下降而下降。
2.概述
2.1FPGA可编程逻辑器件
FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称。
FPGA器件及其开发系统是开发大规模数字集成电路的新技术。
它利用计算机辅助设计,绘制出实现用户逻辑的原理图、编辑布尔方程式或用硬件描述语言等方式作为设计输入;然后经一系列转换程序、自动布局布线、模拟仿真的过程;然后生成配置FPGA器件的数据文件,对FPGA器件初始化。
这样就实现了满足用户要求的专用集成电路,真正达到了用户自行设计、自行研制和自行生产集成电路的目的。
FPGA自1985年由美国Xilinx公司发明以来,得到非常迅速的发展。
FPGA显著的优点是开发周期短、投资风险小、产品上市速度快、市场适应能力强和硬件升级回旋余地大,而且当产品定型和产量扩大后,可将在生产中达到充分检验的VHDL设计迅速实现ASIC投产。
由于它的诸多优点,日益受到系统设计工程师的青睐。
它将定制ASIC的高集成度,高性能的优点与用户可编程器件(PAL,GAL)的灵活方便的特点结合在一起,从而避免了用定制ASIC设计的高成本、高风险、设计周期长和使用可编程器件低密度的缺点。
可以说,FPGA的出现是电路器件和电路设计领域的一场革命。
FPGA具有硬件结构可重构的特点。
适合于算法结构固定、运算量大的前端数字信号处理。
新近推出的FPGA产品都采用多层布线结构,更低的核心电压,更丰富的IO管脚,容量可达到100k个逻辑单元(LES),内置嵌入式RAM资源,内部集成多个数字锁相环,多个嵌入的硬件乘法器,所有这一切都使得FPGA在数字信号处理领域显示出自己特有的优势。
FPGA作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FLEX系列等,本设计使用ALTERA公司的EP1C12Q240C8芯片。
2.2VHDL硬件描述语言
VHDL(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage)诞生于1982年,1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本(简称93版)。
现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
应用VHDL进行工程设计的优点是多方面的。
与其他的硬件描述语言相比,VHDL具有更强的行为描述能力:
VHDL丰富的仿真语句和库函数,使得在设计的早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟;
VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能;
对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表;
VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。
2.3QuartusⅡ开发环境
AlteraQuartusII设计软件提供完整的多平台设计环境,能够直接满足特定设计需要,为可编程芯片系统(SOPC)提供全面的设计环境。
QuartusII软件含有FPGA和CPLD设计所有阶段的解决方案(图3)。
此外,QuartusII软件为设计流程的每个阶段提供QuartusII图形用户界面、EDA工具界面以及命令行界面。
可以在整个流程中只使用这些界面中的一个,也可以在设计流程的不同阶段使用不同界面。
图3QuartusⅡ的设计流程
2.4E-PLAY-SOPC系列开发板
E-Play-SOPC适配器为符合E_Play总线标准的SOPC适配器,同时作为EDA-VI的标准适配器使用,通过E_Play总线插槽可以方便的外扩多种功能板,用户也可以自行制作开发适合自己功能板,通过E_Play总线插槽方便的与适配器及其它功能板进行连接组成一个小型应用系统。
E_Play-SOPC适配器布局如图4:
图4E_Play-SOPC适配器布局图
2.5EP1C12Q240C8芯片
EP1C12Q240C8是ALTERA公司的Cyclone系列芯片,它支持50MHZ的内部时钟频率,可以提供12060个逻辑单元,239616bits的存储器单元,内嵌了2个锁相环。
其型号标识和参数如下表所示。
EP1C12Q240C8/EP1C12Q240C8N的型号标识
EP1C
系列标识,属于Cyclone
12
器件型号
Q
封装为PQFP
(1)
240
引脚数
C
应用级别为商业级
(2)
8
速度等级
N
符合无铅标准
EP1C12Q240C8/EP1C12Q240C8N其他参数
家族
FPGA
I/O口数目
173
工作电压
1.4V~3.6V
工作温度
0℃~85℃
2.6IPCore
随着FPGA技术的发展,芯片的性能越来越强、规模越来越大、开发的周期越来越长,使得芯片设计业正面临一系列新的问题:
设计质量难以控制,设计成本也越来越高。
IP(IntelligenceProperty)技术解决了当今芯片设计业所面临的难题。
IP是指可用来生成ASIC和PLD的逻辑功能块,又称IP核(IPCore)或虚拟器件(VC)。
设计者可以重复使用已经设计并经过验证的IP核,从而专注于整个系统的设计,提高设计的效率和正确性,降低成本。
IP核(IPCore)是指用于产品应用专用集成电路(ASIC)或者可编辑逻辑器件(FPGA)的逻辑块或数据块。
将一些在数字电路中常用但比较复杂的功能块,如FIR滤波器,SDRAM控制器,PCI接口等等设计成可修改参数的模块,让其他用户可以直接调用这些模块,这样就大大减轻了工程师的负担,避免重复劳动。
随着CPLD/FPGA的规模越来越大,设计越来越复杂,使用IP核是一个发展趋势。
理想地,一个知识产权核应该是完全易操作的——也就是说,易于插入任何一个卖主的技术或者设计方法。
丰富的IP内核模块库为快速地设计专用集成电路和单片系统以及尽快占领市场提供了基本保证。
3.总体设计
3.1流程图设计
根据等精度测频的基本原理,本文设计方案的基本思想是分为十个模块来实现其功能,如图5所示,并且分别用VHDL硬件描述语言对其进行编程,并在EDA(电子设计自动化)工具的帮助下,用FPGA(EP1C12Q240C8)实现等精度频率计的设计原理及相关程序。
首先,预置闸门时间,然后使标准频率输入标准频率计数器,待测频率通过施密特触发器整形后输入待测频率计数器,在同一个闸门时间的控制下,令两个计数器开始计数,闸门时间关闭后计数器停止计数,并在下一个闸门时间到来之前将计数器清零;将读取的待测计数器和标频计数器的计数值分别送入乘法器和除法器,运算的最终结果四舍五入后送入译码器进行BCD转换,将结果送入锁存器,最后做柱形换算和显示。
图5设计流程图
3.2系统设计框图
根据系统设计流程图拟定系统框图。
由于等精度频率计是一个需对频率信号进行等精度测量和显示的系统,因此它需要设置控制电路、计数电路、计算电路、译码显示电路等。
控制电路的功能是对计数电路进行工作和时序的控制。
其控制要求为:
先使标准频率计数电路和待测频率计数电路在2s内进行计数,计数结果分别送入乘法器和除法器。
在第一个测量显示周期结束后,控制电路将再次发出控制信号,先对功能电路清零,然后使系统开始第二个测量周期的工作。
计数电路是对被测频率信号进行频率计数测量的主功能电路。
由于被测信号频率是未知的,因此用计数电路测量时,使用27位的二进制计数器(由于闸门时间设定为2s,因此,频率最大可测67MHz)。
根据公式Fx=(Nx/Ns)Fs,将读取的待测频率计数值乘以标准频率(50MHz),并扩大10倍,再除以标准频率计数值,将余数四舍五入,最终结果送入译码电路进行BCD码转换,最后送入显示电路进行显示。
在显示电路中,显示的数值左移一位,以显示频率值小数点后一位数。
根据拟定的系统框图,用VHDL语言对各个模块进行编程,经过编译和仿真,确认无误后,生成Symbol,利用生成的Symbol组成系统框图。
图6系统框图
4详细设计
4.1前端信号处理
由于施密特除法器具有波形整形的作用,因此在信号输入端加入一个施密特触发器,以便可以测量正弦信号和三角波信号等信号。
本设计中采用专用施密特触发器74HC14来进行波形变换。
74HC14是非门施密特触发器,供电电压为2~6V,各引脚功能如下:
1-1A,2-1Y,3-2A,4-2Y,5-3A,6-3Y,7-电源【地】
8-4Y,9-4A,10-5Y,11-5A,12-6Y,13-6A,14-电源【+】
接好电源和地6组AY就是6个非门,A为输入端,Y为输出端
4.2分频器的设计
分频器是FPGA设计中使用频率非常高的基本单元之一。
尽管目前在大部分设计中还广泛使用集成锁相环(如altera的PLL,Xilinx的DLL)来进行时钟的分频、倍频以及相移设计,但是,对于时钟要求不太严格的设计,通过自主设计进行时钟分频的实现方法仍然非常流行。
首先这种方法可以节省锁相环资源,再者,这种方式只消耗不多的逻辑单元就可以达到对时钟操作的目的。
本系统的系统时钟为50MHz,需分频得到0.5Hz、1Hz的频率,分别用于门闸时间和显示器的显示时间。
本设计主要采用的分频方法的主程序如下:
process(clk)is--clk为系统时钟,50MHz
variableq:
integerrange0to24999999;--q为计数值
begin
ifclk'eventandclk='1'then
ifq=24999999then--当计数到2499999时将q归零
q<=0;--使gate信号取反,这样就得
gate<=notgate;--到了1Hz的频率信号
else
q:
=q+1;
endif;
endif;
endprocess;
4.3除法器的IPCore调用
4.3.1设计中的除法器应用
IP(知识产权)核将一些在数字电路中常用,但比较复杂的功能块,如FIR滤波器、SDRAM控制器、PCI接口等设计做成一个“黑盒”或者是可修改参数的模块,供设计者使用。
调用IP核能避免重复劳动,大大减轻设计人员的工作量。
采用IP核实现除法器,不但节省了大量资源,同时还大大提高了系统时钟。
本设计中的除法器主要应用于以下两个方面:
用于运算公式Fx=(Nx/Ns)Fs的除法部分,以得到待测频率的频率值;
用于运算10秒内柱形显示的显示高度。
柱形显示说明:
显示界面的纵坐标轴为200行,显示10MHz的频率,那么一行代表50K,则该除法器的除数则为50000,被除数为第一步得到的待测频率的频率值。
4.3.2除法器IPCore的调用方法如下:
①选择tool/MegWizardPlug—InManager,建立一个IP文件;
②选择一个除法器,选用VHDL语言,如图7所示
图7
③输入被除数与除数的位数
④添加一个时钟输入端,流水线15,选择速度优先,如图8所示
图8
⑤生成除法器IPCore
⑥新建一个工程,将生成的IPCore添加到工程当中即可。
生成的IPCore除法器如图9所示
图9IPCore除法器
4.4译码电路的实现
设计中需将换算得到的频率值(二进制数)换算成BCD码,以便送入显示模块进行数据显示。
二进制转换BCD码的主要思路:
根据二进制的位数设定显示的位数,如:
二进制位12位(4095),则转换后显示的十进制为4位。
设定四位输出端d3,d2,d1,d0,需转换的数位a,如果二进制数大于1111101000(1000)则,则a-“1111101000”,d3+1,如果二进制数大于1100100(100),则a-“1100100”,d2+1,依次类推。
二进制转换BCD码的部分程序如下:
process(clk)is
begin
ifclk'eventandclk='1'then
mid_in<=din;
present_state<=s0;--定义三种状态s0,s1,s2
case(present_state)is
whens0=>
d0<="0000";d1<="0000";d2<="0000";d3<="0000";--数值输入
d4<="0000";d5<="0000";d6<="0000";d7<="0000";d8<="0000";
present_state<=s1;
whens1=>
ifmid_in>="101111101011110000100000000"then--100000000;
mid_in<=mid_in-"101111101011110000100000000";
d8<=d8+1;--mid_in>100000000时min_in-100000000
present_state<=s1;--d8+1
…………
elsifmid_in>="000000000000000000000000001"then--1
mid_in<=mid_in-"000000000000000000000000001";
d0<=d0+1;
present_state<=s1;
else
present_state<=s2;
endif;
whens2=>
y0<=d0;y1<=d1;y2<=d2;y3<=d3;
y4<=d4;y5<=d5;y6<=d6;y7<=d7;y8<=d8;--数值输
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 精度 频率计 设计 综述