FPGA学习等精度测频_第1页
FPGA学习等精度测频_第2页
FPGA学习等精度测频_第3页
FPGA学习等精度测频_第4页
FPGA学习等精度测频_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FPGA学习等精度测频由于最近一直在与队员一起攻克题目,所以没时间写博客,现在把最近做的东西总结一下,希望对大家有帮助。以前一直是用测频率法来测信号的频率,就是在一秒内测被测频率的个数,即为频率,这种方法在高频时还行,低频就误差比较大,无论是用FPGA还是单片机都差不多,所以我们这次用了一种相对更精确的测量方法等精度测频法,主导思想是利用一个D触发器保证测量时间是被测频率的整数倍,对被测频率和基准频率进行计数,利用计数值求出被测频率,这种方法在高频低频段均适用,由于测量误差只与基准频率和闸门时间有关,与被测频率无关,故称之为等精度测频。由于FPGA对数据处理有困难,所以我们用FPGA计数,然后

2、把数据传给单片机处理,显示数据。我们这次的测频范围为0.01HZ到50MHZ,精确到小数点后两位,测频误差在10的-5次方以下。我做的是FPGA的部分,先附上思路:等精度测频就是对基准频率和待测频率在一段时间内分别计数,通过一个D触发器确保计数时间是待测频率的整数倍,系统的误差只与门控时间和基准频率有关,与待测频率无关,达到等精度测频的目的。计数器是用两个32位二进制计数器,通过一个38选择器把64位变成8位,传给单片机,经单片机处理后恢复出两个计数值,计算出频率。RTL图附上程序,欢迎探讨分频模块产生基准频率1MHZ方波LIBRARY IEEE;USE IEEE.STD_LOGIC_1164

3、.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FENPIN ISPORT(CLK:IN STD_LOGIC;CLOCK:OUT STD_LOGIC);END ENTITY;ARCHITECTURE ART OF FENPIN ISSIGNAL COUNT :INTEGER RANGE 0 TO 10#49#;BEGINPROCESS(CLK)ISBEGINIF(CLKEVENT AND CLK=1)THEN IF(COUNT=10#49#)THEN COUNT=0; ELSE COUNT=10#24#)THENCLOCK=1;ELSE CLOCK=0;

4、END IF;END PROCESS;END ARCHITECTURE;D触发器模块保证测量时间是被测频率整数倍LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DCHUFA ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;D:IN STD_LOGIC;Q:OUT STD_LOGIC);END ENTITY;ARCHITECTURE ART OF DCHUFA ISSIGNAL Q1:STD_LOGIC;BEGINPROCESS(CLR,CLK)BEG

5、INIF(CLR=0)THEN Q1=0;ELSE IF(CLKEVENT AND CLK=1)THENQ1=D;END IF;END IF;END PROCESS;Q=Q1;END ARCHITECTURE;计数模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JISHU ISPORT(CLK:IN STD_LOGIC;CLR,ENA:IN STD_LOGIC;OQ:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END ENTITY;ARCHITECTURE

6、 ART OF JISHU ISSIGNAL TMP:STD_LOGIC_VECTOR(31 DOWNTO 0);BEGINPROCESS(CLK,CLR,ENA)ISBEGINIF(CLR=0)THEN TMP=;ELSIF(ENA=1)THEN IF(CLKEVENT AND CLK=1)THEN TMP=TMP+1; END IF;END IF;END PROCESS;PROCESS(ENA)BEGINIF ENAEVENT AND ENA=0 THEN OQ=TMP;END IF;END PROCESS;END ARCHITECTURE;64转8模块方便单片机读取数据LIBRARY I

7、EEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JISHU ISPORT(CLK:IN STD_LOGIC;CLR,ENA:IN STD_LOGIC;OQ:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END ENTITY;ARCHITECTURE ART OF JISHU ISSIGNAL TMP:STD_LOGIC_VECTOR(31 DOWNTO 0);BEGINPROCESS(CLK,CLR,ENA)ISBEGINIF(CLR=0)THEN TMP=;ELSIF(ENA=

8、1)THEN IF(CLKEVENT AND CLK=1)THEN TMP=TMP+1; END IF;END IF;END PROCESS;PROCESS(ENA)BEGINIF ENAEVENT AND ENA=0 THEN OQ=TMP;END IF;END PROCESS;END ARCHITECTURE;顶层模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FENPIN ISPORT(CLK:IN STD_LOGIC;CLOCK:OUT STD_LOGIC);END ENTITY;ARCHITECTURE ART OF FENPIN ISSIGNAL COUNT :INTEGER RANGE 0 TO 10#49#;BEGINPROCESS(CLK)ISBEGINIF(CL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论