标签:
module DS( input CLK, input [3:0] key, output reg[3:0] led ); reg[3:0] key_r; wire[3:0] key_p; always @ (posedge CLK) begin key_r<={key[3],key[2],key[1],key[0]}; end assign key_p=key & ~key_r; always @ (posedge CLK) begin case(key_p) 4‘b0001:led=4‘b0001; 4‘b0010:led=4‘b0010; 4‘b0100:led=4‘b0100; 4‘b1000:led=4‘b1000; endcase end endmodule
核心在assign key_p=key & ~key_r;一旦有变化,key_p就为1,只检测下降沿。
key_r与key差一个时钟周期。
千万不要直接把key放进always里,always最好只放clk或者reg的变量,其他wire的变量不要轻易放入之内。
标签:
原文地址:http://www.cnblogs.com/wyc199288/p/4399616.html