|
哪位大侠帮忙开这个程序为什么不能正常工作! module key_buffer(clk,rst_n,key,led);
input clk; input rst_n; input key; output led;
reg key_reg0,key_reg1; always@(posedge clk or negedge rst_n) begin if(!rst_n) begin key_reg0<=1'b0; key_reg1<=1'b0; end else begin key_reg0<=key; key_reg1<=key_reg0; end end wire key_an; assignkey_an=key_reg0&(~key_reg1);
reg[24:0]cnt; always@(posedge clk or negedge rst_n) begin if(!rst_n) cnt<=25'b0; else begin if(key_an) cnt<=cnt+1'b1; else cnt<=25'b0; end end
reg key_reg2,key_reg3; always@(posedge clk or negedge rst_n) begin if(!rst_n) begin key_reg2<=1'b0; key_reg3<=1'b0; end else begin if(cnt==25'd3750000) begin key_reg2<=key; key_reg3<=key_reg2; end end end wire key_flag; assign key_flag=key_reg2&(~key_reg3);
reg led; always@(posedge clk or negedge rst_n) begin if(!rst_n) led<=1'b0; else begin if(key_flag) led<=~led; end end
endmodule |
|