/说明:当三个独立按键的某一个被按下后,相应的LED被点亮;
// 再次按下后,LED熄灭,按键控制LED亮灭
module sw_debounce(
clk,rst_n,
sw_in,sw1_n,sw2_n,sw3_n,sw4_n,
led_d3,led_d4,led_d5,led_d6
);
input clk; //主时钟信号,50MHz
input rst_n; //复位信号,低有效
input sw1_n,sw2_n,sw3_n,sw4_n; //三个独立按键,低表示按下
output led_d3,led_d4,led_d5,led_d6; //发光二极管,分别由按键控制
output sw_in;
assign sw_in = 1'b1;
//---------------------------------------------------------------------------
reg[3:0] key_rst;
always @(posedge clk or negedge rst_n)
if (!rst_n) key_rst <= 4'b1111;
else key_rst <= {sw4_n,sw3_n,sw2_n,sw1_n};
reg[3:0] key_rst_r; //每个时钟周期的上升沿将low_sw信号锁存到low_sw_r中
always @ ( posedge clk or negedge rst_n )
if (!rst_n) key_rst_r <=