新闻  |   论坛  |   博客  |   在线研讨会
基于FPGA的频率测量
0750long | 2009-07-20 08:24:51    阅读:1492   发布文章

 


等精度测量的原理:pdfpdf


    其实很简单,就是你找一个基准,这个基准和信号在一个控制信号的控制下同时开始同时结束,然后比较一下就得到的。使用FPGA做,由于其并行可以做起来其实很简单,但是。。。我遇到的问题不这里,而是后面的通讯问题
    等精度的FPGA:
  

module fre_cnt(clk_std,clk_sig,rst_n,Gate_n,cnt_std,cnt_sig,Gate_t);
input  clk_std;
input  clk_sig;
input  rst_n;
input  Gate_n;

output Gate_t;
output [31:0]cnt_std;
output [31:0]cnt_sig;
reg    [31:0]cnt_std;
reg    [31:0]cnt_sig;
///////////////////////
reg Gate_t;
//将门控信号和输入信号的上升沿同步
always @ (posedge clk_sig or negedge rst_n)
begin
    if(!rst_n)
        Gate_t <= 1'b0;
    else
        Gate_t <= Gate_n;
end
//对clk_sig计数器计数
always @ (posedge clk_sig or negedge rst_n)
begin
     if(!rst_n)
          cnt_sig  <= 32'h00000000;
     else if(Gate_t)
          begin
               cnt_sig <= cnt_sig + 32'h00000001;
          end      
end
//对 clk_std计数
always @ (posedge clk_std or negedge rst_n)
begin
    if(!rst_n)
    begin
       cnt_std  <= 32'h00000000;
    end
    else if(Gate_t)
          begin
               cnt_std <= cnt_std + 32'h00000001;
          end
end
endmodule

其实大家都在说


其实综合以后的RTL是:


不是计数器而是累加器
测量的结果在12HZ以上的精度可以做到10^-5,频率小于12hz的时候,信号计数器会在1个单位跳jieg变,得到的结果和实际说的早整个范围内的精度不变有差异,是本身结构的问题还是我们同步的处理上出现的问题。。。。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客