verilog模拟仿真按键消抖

用verilog实现按键消抖,工具采用quartus II13 仿真软件采用ModelSim-Alter其中主要分为

 

verilog模拟仿真按键消抖_第1张图片             

其中vr_key_module主要产生虚拟的按键抖动功能。

顶层模块

module vr_debounce(
                            input Sys_clk,
                            input Sys_reset,
                            input Pin_in,
                            output Pin_out
                        );
                        
wire Q_Sig;                    
    vir_key_module U1 (
                            .sclk(Sys_clk),
                            .rst_n(Sys_reset),
                            .In_Sig(Pin_in),
                            .Q_Sig(Q_Sig)
                        );
                        
 debouce    U2(    
                        .Sys_clk(Sys_clk),
                        .Sys_reset(Sys_reset),
                        .Pin_in(Q_Sig),
                        .Pin_out(Pin_out)
                    );
endmodule

debounce模块

module debouce(	
						input Sys_clk,
						input Sys_reset,
						input Pin_in,
						output Pin_out
					);
wire H2L_Sig;
wire L2H_Sig;

detect	detect_inst(
							.Sys_clk(Sys_clk),	//12MHz
							.Sys_reset(Sys_reset),
							.Pin_in(Pin_in),
							.H2L_Sig(H2L_Sig),
							.L2H_Sig(L2H_Sig)
						);
						
delay		delay_inst(
						.Sys_clk(Sys_clk),//12Mhz
						.H2L_sig(H2L_Sig),
						.L2H_sig(L2H_Sig),
						.Sys_reset(Sys_reset),
						.Pin_out(Pin_out)
					);
					
endmodule

RTL视图

 

 

verilog模拟仿真按键消抖_第2张图片 

仿真结果

verilog模拟仿真按键消抖_第3张图片  其中Q_Sig为模拟产生按键抖动

完整工程请访问个人https://github.com/zsylov/vr_debounce

你可能感兴趣的:(verilog,仿真,虚拟按键抖动)