FPGA之边沿检测设计(上升沿,下降沿,双边沿)

记录FPGA的小知识点,不断积累自己的技能,想要工作顺利,就得成为大牛。
顺便记录一个边沿检测的口诀,方便记忆,我自己瞎编的^-^。
后反前正是上升,后正前反是下降 ; 就是两个寄存器的前后顺序不一样。
边沿检测的方法都很不相同,是最基础的一部分,可以用打两拍实现,也可以用移位寄存器实现,还有的打三拍,其实两拍就已经足够用,用到的地方也很多,检测脉冲,检测SPI接口的时钟上升沿和下降沿,按键消抖等等都会用到,在此记录一下。

module pos_neg(

input						i_sys_clk	,
input						i_sys_rst_n	,
input						i_pulse		,//输入脉冲
output					        o_pos	        ,//输出下降沿
output					        o_neg		 //输出上升沿
);

reg						pulse_reg0	;
reg						pulse_reg1	;
wire						data_edge	;

//2022 0126 Mr li
always @(posedge i_sys_clk or negedge i_sys_rst_n)
begin
	if(!i_sys_rst_n)
		begin
			pulse_reg0 	<= 1'b0;
			pulse_reg1	<= 1'b0;
		end 
	else 
		begin
			pulse_reg0 	<= i_pulse ;
			pulse_reg1	<= pulse_reg0;
		end 
end 
//后反前正是上升,后正前反是下降,两个向或得双边;
assign	o_pos = ~pulse_reg1 && pulse_reg0;//上升沿
assign	o_neg = ~pulse_reg0 && pulse_reg1;//下降沿
assign	data_edge = o_pos | o_neg	 ;//双边沿

endmodule 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值