我是靠谱客的博主 细心嚓茶,最近开发中收集的这篇文章主要介绍基于FPGA的等精度多功能测频仪( 二)低频信号测频原理简述:      代码:仿真:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原理简述:      

        上次完成了等精度频率计,但对一个低频信号,使用周期法测量更好。

所以本模块用周期法测量低频信号的频率,实现原理相似与高频,直接

把低频信号的一个周期当做一个门控信号,将门控信号同步到基准时钟,

然后在一个周期内的时间进行计数。

公式:计数值x基准信号的周期=被测信的周期

           f=1/t

即可算出低频信号的数值。

 


代码:

注:最小频率为1hz

module dengjingdu_d(

	input clk,
	input rst,
	input clk_1hz,
	
	output reg[9:0]data								//1hz-1khz,最大值为1k位宽则为10位

	
);

	reg [9:0]r_data;

	reg [1:0]cnt;								
	reg gate;									//产生门
	
	reg gate_t;									//把门同步到基准时钟
	reg gate_tt;
	reg [25:0]cnt_50m;							//被测信号的一个周期下基准时钟的计数值,最大为1hz时
	reg [25:0]cnt_50m_temp;				

	always @ (posedge clk_1hz or negedge rst)	
	begin
		if(!rst)
			cnt <= 1'b0;
		else if(cnt  == 2'd2)
			cnt <= 1'b0;
		else
			cnt <= cnt + 1'b1;
	end
	
	always @ (posedge clk or negedge rst)		
		if(!rst)
			gate <= 1'b0;
		else if(cnt < 2'd0)
			gate <= 1'b0;
		else if( (2'd1 <=cnt) && (cnt < 2'd2))
			gate <= 1'b1;
		else 
			gate <= 1'b0;
	end

	always @ (posedge clk or negedge rst)		
	begin
		if(!rst)
			gate_t <= 1'b0;
		else
			gate_t <= gate;
	end

	always @ (posedge clk or negedge rst)
	begin
		if(!rst)
			cnt_50m <= 1'b0;
		else if(gate_t == 0)
			cnt_50m <= 1'b0;
		else if(gate_t == 1)
			cnt_50m	 <= cnt_50m	+ 1'b1;
	end
	
	always @ (posedge clk or negedge rst)
	begin
		if(!rst)
			gate_tt <= 1'b0;
		else
			gate_tt <= gate_t;
	end

	wire nege_gate;
	
	assign nege_gate = ((gate_tt == 1'b1) && (gate_t == 1'b0)) ? 1'b1 : 1'b0;

	always @ (posedge clk or negedge rst)
	begin
		if(!rst)
			cnt_50m_temp <= 1'b0;
		else if(nege_gate)
			cnt_50m_temp <= cnt_50m;
	end

	always @ (posedge clk or negedge rst)
	begin
		if(!rst)
			r_data <= 1'b0;
		else
			r_data <= (cnt_50m_temp * 0.00000002);  
	end
	
	always@(posedge clk or negedge rst)
	begin
		if(!rst)
			data <= 1'b0;
		else 
			data <= 1 / r_data;
	end
	
endmodule

仿真:

分频出一个1hz的信号当做被测信号

可以看到测得频率为1hz

最后

以上就是细心嚓茶为你收集整理的基于FPGA的等精度多功能测频仪( 二)低频信号测频原理简述:      代码:仿真:的全部内容,希望文章能够帮你解决基于FPGA的等精度多功能测频仪( 二)低频信号测频原理简述:      代码:仿真:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部