【FPGA】对信号上升沿或下降沿的捕捉

个人笔记。

一、下降沿检测

1、 将输入信号打两拍,第一拍是recvIdle0,第二拍是recvIdle1

2、将第一拍信号取反并与第二拍信号相与

3、最后一行时序得到的高电平就是所要的下降沿信号

reg      recvIdle0,recvIdle1;	//recvIdle信号寄存器,捕捉下降沿滤波用   
wire     recvIdle_int;	       // recvIdle所捕捉的下降沿  


always @ (posedge clk or negedge  rst) begin
	if(rst) begin
        recvIdle0 <= 1'b0;             
        recvIdle1 <= 1'b0;              
    end
	else begin
        recvIdle0 <= recvIdle;          //第一个信号延迟一拍
        recvIdle1 <= recvIdle0;         //第二个信号延迟一拍
    end
end
assign recvIdle_int =  ~recvIdle0 & recvIdle1;	捕捉到下降沿后,recvIdle_int拉高保持一个主时钟周期信号 (第一拍信号取反并与第二拍信号相与得到的高电平就是所要的信号)

二、上升沿检测

 

1、 将输入信号打两拍,第一拍是recvIdle0,第二拍是recvIdle1

2、将第二拍信号取反并与第一拍信号相与

3、最后一行时序得到的高电平就是所要的上升沿信号

reg      recvIdle0,recvIdle1;	   
wire     recvIdle_int;	       // recvIdle所捕捉的上升沿  


always @ (posedge clk or negedge  rst) begin
	if(rst) begin
        recvIdle0 <= 1'b0;             
        recvIdle1 <= 1'b0;              
    end
	else begin
        recvIdle0 <= recvIdle;          //第一个信号延迟一拍
        recvIdle1 <= recvIdle0;         //第二个信号延迟一拍
    end
end
assign recvIdle_int =  ~recvIdle1 & recvIdle0;	捕捉到上升沿后,recvIdle_int拉高保持一个主时钟周期信号 (第一拍信号取反并与第二拍信号相与得到的高电平就是所要的信号)

  • 8
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值