Verilog 上升沿检测信号及触摸按键控制led亮灭

功能:实现触摸按键来控制led 灯的亮灭。

核心代码:经典的上升沿检测信号脉冲的获得

//上升沿检测信号脉冲
 assign touch_en=(~touch_reg1)&& touch_reg0;
 always @(posedge sys_clk or negedge sys_rst_n)begin
	if(!sys_rst_n)begin
		touch_reg0<=1'b0;
		touch_reg1<=1'b0;
		end
	else begin
	    touch_reg0<=touch;
		touch_reg1<=touch_reg0;
		end
end

全部代码:

//author :bronceyang
//time:  2020.04.16
// version: 1.0
//功能描述:触摸按键上升沿检测,控制led亮灭

module touch_key(
	input sys_clk,
	input sys_rst_n,
	input touch,
	
	output reg led


);

//reg define 
reg touch_reg0;
reg touch_reg1;

//wire define
wire touch_en;

//上升沿检测信号脉冲
 assign touch_en=(~touch_reg1)&& touch_reg0;
 always @(posedge sys_clk or negedge sys_rst_n)begin
	if(!sys_rst_n)begin
		touch_reg0<=1'b0;
		touch_reg1<=1'b0;
		end
	else begin
	   touch_reg0<=touch;
		touch_reg1<=touch_reg0;
		end
end

//检测结果控制led亮灭
always @(posedge sys_clk or negedge sys_rst_n)begin
	if(!sys_rst_n)
		led<=1'b1;
	else if(touch_en)
		led<=~led;
end

	
	endmodule

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA&SDR探索者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值