FPGA测频

 最近一直在做FPGA的测频,有点心得,和大家分享一下。。

其实在网上找的蛮多测频的资料都归结于两种方法 1.测频法 2.测周期法。其实两种方法各有各的优缺点。测频法就是在给定一个门限时间t,看这个门限时间里待测信号的周期个数n,然后频率F = n/t,这种测频法可以测到很高的频率,当时我们测到了20MHZ误差不大,大约几百,但是这种测量方法在低频的时候不是很准确,而且有效位数无法到小数点,如果你给的是2s的门限,测得的精度就是0.5hz。所以有其局限性。然后是测周期法,测周期法是在待测信号的一个周期内计数标准脉冲的个数(FPGA的时钟晶振,在没有倍频的情况下)。这个有自己的优点,可以测得小数点后几位,当时我们用的是100Mhz的晶振,可以测到小数点后三位,而且和函数信号发生器输出的没有差别。但是这个高频上不去 当时我们测100KHZ的波形就不是很准确了的,我当时算过的,如果用100M的晶振,要测100k,此时要测1000个周期,如果测100020hz,这时候要测999.9个周期,这时候FPGA就没有什么分辨能力了,所以这个高频测不是很准。

综上,FPGA测频时候,用测频法,高频上的去,但是无法测到小数点后,如果不是要很高的精度的话,这种方法其实可以采用的。用测周期法,低频下的来,还可以侧刀精确的小数点后几位,但是高频不是很精确。

我们做的项目需要有很高的精准度,频率在几十K到几百K,我们经过自己的考虑后还是选择了测周期法,而且这种方法在经过改进之后可以在几百K的时候还保持者1hz的精度。在这里介绍一下。1 提高时钟频率,大家可以计算一下,当

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
FPGA(Field Programmable Gate Array)可以通过VHDL(VHSIC Hardware Description Language)来实现测频功能。下面是一个简单的VHDL代码示例,用于测频: ```vhdl library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; entity FrequencyCounter is Port ( clk : in std_logic; reset : in std_logic; freq_out : out unsigned(31 downto 0) ); end FrequencyCounter; architecture Behavioral of FrequencyCounter is signal counter : unsigned(31 downto 0) := (others => '0'); signal last_clk : std_logic := '0'; begin process (clk, reset) begin if reset = '1' then counter <= (others => '0'); last_clk <= '0'; elsif rising_edge(clk) then if last_clk = '0' and clk = '1' then counter <= counter + 1; end if; last_clk <= clk; end if; end process; freq_out <= counter; end Behavioral; ``` 在这个示例代码中,我们定义了一个名为`FrequencyCounter`的实体,具有输入时钟信号`clk`、复位信号`reset`和输出频率计数器`freq_out`。计数器使用无符号的32位整数类型。 在体系结构部分,我们使用了一个进程来处理时钟和复位信号。在上升沿检测到时钟信号时,计数器会递增。最后,将计数器的值赋给输出端口`freq_out`。 要使用这个VHDL代码,在FPGA开发环境中创建一个新的工程,将代码添加到工程中,并生成比特流文件进行烧录到FPGA中。然后,可以通过读取`freq_out`信号来获取测频结果。 请注意,这只是一个简单的示例,实际测频的实现可能会更复杂,具体取决于您的应用需求和FPGA平台的特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值