这次把自己做过的一个频率计拿出来跟大家分享一下。
项目采用VHDL语言来编写。
一、功能介绍
对信号源输入信号的频率进行正确测量并显示
测量范围:0-9999Hz;
测量精度:1Hz;
测量误差:1Hz;
因为用的FPGA板只有四个数码管,所以就采用了测量范围为0-9999,后面你们可以根据情况来增加测量范围。项目框图如下:
实现的功能是将输入的信号频率测量出来并且通过开发板上面的四个数码管显示出来,采用计频法,测量单位时间的脉冲个数。这里的单位时间我采用一秒(方便测量信号频率),因为值比较小,所以误差范围为1Hz。这里的一秒信号由板子的自带的50Mhz信号分频得到。
二、作品原理
我的设计原理是先通过24999999分频模块得到一个高低电平各为0.5秒,周期为1秒的信号clkin,然后再设计一个标志位,当clkin信号为高电平时候使标志位为01(用来当一个闸门使用),然后当标志位为01时候,测量此期间的输入信号有几个上升沿,然后当我clkin信号出现上升沿并且clkin为0时候将测量出的上升沿数量输出给译码器并且将用来测量信号频率值的信号量置零,方便下次计数。原理是利用计频法来测量信号频率值(在一个特定信号周期内,我通过测量输入信号有多少个上升沿),这里我们采用一秒的周期,这样我们测量出一秒内有几个上升沿就可以得到输入信号的频率值。然后再通过四个数码管将四位频率值进行显示输出。
这里举例其中两个模块!!!
三、各模块设计
3.1分频模块设计
这里的分频模块是为了得到1Hz的信号,因为板子上面带的信号频率为50MHz