键盘消抖--特权同学代码
原文地址:键盘消抖--特权同学代码作者:一只大笨鹅
`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date:
// Design Name:
// Module Name:
// Project Name:
// Target Device:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 欢迎加入EDN的FPGA/CPLD助学小组一起讨论:http://group.ednchina.com/1375/
////////////////////////////////////////////////////////////////////////////////
//说明:当三个独立按键的某一个被按下后,相应的LED被点亮;
//
module sw_debounce(
input
input
input
output
//---------------------------------------------------------------------------
reg[2:0] key_rst;
always @(posedge clk
reg[2:0] key_rst_r;
always @ ( posedge clk
//当寄存器key_rst由1变为0时,led_an的值变为高,维持一个时钟周期
wire[2:0] key_an = key_rst_r & ( ~key_rst);
//---------------------------------------------------------------------------
reg[19:0]
always @ (posedge clk
reg[2:0] low_sw;
always @(posedge clk
//---------------------------------------------------------------------------
reg
always @ ( posedge clk
//当寄存器low_sw由1变为0时,led_ctrl的值变为高,维持一个时钟周期
wire[2:0] led_ctrl = low_sw_r[2:0] & ( ~low_sw[2:0]);
reg d1;
reg d2;
reg d3;
always @ (posedge clk or negedge rst_n)
assign led_d3 = d1 ? 1'b1 : 1'b0;
assign led_d2 = d2 ? 1'b1 : 1'b0;
assign led_d1 = d3 ? 1'b1 : 1'b0;
endmodule