微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 利用FPGA实现频率测量,测量不准确,求助!多谢各位大侠~

利用FPGA实现频率测量,测量不准确,求助!多谢各位大侠~

时间:10-02 整理:3721RD 点击:

         小弟入门学习FPGA,想实现一个简易频率计,FPGA芯片EP4CE6E22C8晶振50MHz,仿真没问题,但测试发现输入信号在10MHz以下计数正常,高于之后计数会不准确,难道这种方法有问题?想来想去也不知道是什么问题,以下为代码,望各位大神能解答。
module fcount(signal_in,clk,fout);
input signal_in; //待测信号
input clk;   //50MHz晶振
output fout; //信号频率
reg[31:0] count=0;        
reg[31:0] fout_temp=0;        
reg[31:0] fout=0;        
//获得时间闸门
always @(posedge clk)
        begin
                if(count >= 100_000_000)
                        count = 0;
                else
                        count 50000000)
                        fout_temp = 0;
                else if(count == 50000000)
                        fout = 100_000_000)
                count = 0;
        else
                count <= count+1;
end
always @(posedge clk) begin
        pre_signal_in<=signal_in;
end
assign pos_signal_in=(pre_signal_in==1'b0 && signal_in==1'b1)?1'b1:1'b0;
always @(*) begin
        fout<=count;
end
endmodule

always @(*) begin
       if(pos_signal_in)
        fout<=count;
end

这样再试试行不行,就是不用用posedge触发来采集

系统频率最好是被测频率的10倍以上才会比较准确,越接近越不准。

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

网站地图

Top