module led_key(sys_clk, sys_rst_n, key, led);// parameter Total = 25'd2500_0000;
parameter Total =25'd25;
input sys_clk ;
input sys_rst_n ;
input [1:0] key ;
output reg [1:0] led ;
reg [24:0]count ;
reg led_ctrl ;//计数器,记0.5秒
always @(posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n) begin
// reset
count <=25'd0;
end
elseif(count < Total) begin
count <= count +1'b1;
end
else
count <=25'd0;
end
//led_ctrl 控制灯的 交替 和 同时 这两种状态
always @(posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n) begin
// reset
led_ctrl <=1'b0;
end
elseif(count == Total)
led_ctrl <=~led_ctrl;
end
//led模式的选择
always @(posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n) begin
// reset 复位全亮
led <=2'b11;
end
// case还能这一用elsecase(key)//第一个按键按下,由1变为0,低电平有效2'b10 ://每0.5s led_ctrl取反一次,实现交替if(led_ctrl ==1'b0)
led <=2'b10;else
led <=2'b01;2'b01 ://实现同时亮和同时灭if(led_ctrl ==1'b0)
led <=2'b11;else
led <=2'b00;//无按键按下2'b11 :
led <=2'b11;//默认可以为空default:;
endcase
end
endmodule