微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 怎样有FPGA测量一个周期信号的周期呢?

怎样有FPGA测量一个周期信号的周期呢?

时间:10-02 整理:3721RD 点击:
怎样有FPGA测量一个周期信号的周期呢?有人知道么,现在需要检测一个周期性信号的周期。用FPGA如何操作呢?
输入的周期信号大概有1s,FPGA本地时钟有20.48M。如何做呢

这个周期信号的周期范围是多少?是否稳定,检测精度要求?
简单的做法无非就是用fpga的时钟采样周期信号,计数低电平有多少个点,高电平有多少个点,然后计算出时间。误差就和具体的时间相关了。
小编给出的信息太少了

等待大侠。

1楼已经说得清楚了,就那么做就可。
可以直接用chipscope去抓数据,因为你要抓的时间是1S,而时钟是20M,也就是大概要十万个采样点才行,这对FPGA来说自然不行,太大了。
但没必要你每个数据都存下来,而是有意义的数据存储下来,就是说比较你数据变化周期如100个时钟来一次的话,那100个周期里就一个有意义数据,存下来一个就够了。
可以叫一个数据来临指示信号,每100个时钟此信号就脉冲高一次,平时为低。 那这样chipscope采集数据时,就以此信号为触发条件,存储数据方式不要选择为连续存储,而是触发次就存储一个数据,这样比如8K个存储深度,那就足够把你的数据全抓下来分析了。

其实是想对输入的一个1s左右的信号测频率准确度,打算用本地产生一个1s的信号与接收信号进行对比。
输入的信号频率的准确度关系到系统很多模块。现在就想用FPGA来做,只用FPGA来得到外部输入信号的频率或周期的误差,然后把这个误差传给其他器件。
不能用chipscope抓数据。我现在就是要用FPGA本身来获取输入1s左右周期信号的频率偏差。不知能否只用FPGA来实现呢。
采样的方法应该不可行。



    精度要求在0.1个ppm,采样的方法估计不得行啊,那样要处理很多数据。不知能否直接对一个输入信号的周期用FPGA的本地时钟进行计数呢?



    当然可以,问题是资源啊,你有那么多资源去存储那么大的数据吗?
再者,完全去存储一个完整周期的数据是没有意义的,一般只存DEBUG相关的那部分就可了,
如果你实在有需求,可将相关数据用示波器或逻辑分析仪的方式来查看(相当于使用片外存储空间了)。

如果你指的是建立个计数器,根据1S时间进行计数,然后根据此计数器大小选择抓取数据查看某一小时间片断,这样想看哪就抓哪, 这种方式是可以的,并且也推荐,如果没有目的去DEBUG,而是先查看下里面各阶段的数据的话。


楼上是对的,问题已解决。其实问题就在于对一个输入信号的上升沿触发的处理。把该
输入信号寄存器打两拍即可。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top