"); //-->
等精度测量的原理:
其实很简单,就是你找一个基准,这个基准和信号在一个控制信号的控制下同时开始同时结束,然后比较一下就得到的。使用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变,得到的结果和实际说的早整个范围内的精度不变有差异,是本身结构的问题还是我们同步的处理上出现的问题。。。。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。