FPGA测两路信号相位差

这篇不算原创,因为占空比测量部分照搬了大神的代码,稍作了改动

源代码在此:http://download.csdn.net/detail/dunnolove/2049861

Dunnolove大神写的是占空比测量的程序,本身小巧完善,在此基础上实现两路信号相位差的测量。M,N为两路频率相同的输入信号,对应图中A,B,经过异或门输出如D,D的占空比即反应相位差,占空比的百分比乘以360度就得到相位差。

module	Phase(
		M,
		N,
		XOR_OUT,
		clk,
		Pon,
		Poff);

input		M,N,clk;
output	[15:0]	Pon,Poff;
output  	reg 		XOR_OUT;
reg		[15:0]	Pon,Poff;
//首先对脉冲输入进行同步处理
reg		syn1;
always @ (posedge clk)
begin
		
		XOR_OUT <= M^N;       //新状态
		syn1 <= XOR_OUT;      //旧状态
end


wire	catin_pos;
//获得输入脉冲的上升沿
assign	catin_pos = XOR_OUT & (~syn1);


//计算高低电平宽度
reg	[15:0]	Pon_reg,Poff_reg;


always @ (posedge clk)
begin
   if(catin_pos)
		begin
			Pon <= Pon_reg;
			Poff <= Poff_reg;
			
			Pon_reg <= 16'd0;
			Poff_reg <= 16'd0;
		end
	else if(XOR_OUT)
		begin
		Pon_reg <= Pon_reg + 1'b1;
		end
	else
		begin
		Poff_reg <= Poff_reg + 1'b1;
		end
end
endmodule		

  • 13
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值