实验现象:
三色LED循环点亮。
核心源代码:
module led_ctrl(
input clk_25m,
input rst_n,
output fpga_ledr,
output fpga_ledg,
output fpga_ledb
);
//--------------------cnt----------------------------------//
reg [24:0]cnt;
reg [2:0]led_cnt;
always @ (posedge clk_25m or negedge rst_n)
if(!rst_n)
begin
cnt <= 25'd0;
led_cnt <= 1'd0;
end
else if(cnt == 25'd5000000)
begin
cnt <= 25'd0;
if(led_cnt == 3'd2)
led_cnt <= 3'd0;
else
led_cnt <= led_cnt + 1'd1;
end
else
begin
cnt <= cnt + 1'd1;
end
//--------------------led_ctrl----------------------------//
/*led状态切换状态机*/
reg ledr,ledg,ledb;
always @ (posedge clk_25m or negedge rst_n)
if(!rst_n)
begin
ledr <= 1'd1;
ledg <= 1'd1;
ledb <= 1'd1;
end
else
case(led_cnt)
3'd0: //红灯亮
begin
ledr <= 1'd0;
ledg <= 1'd1;
ledb <= 1'd1;
end
3'd1: //绿灯亮
begin
ledr <= 1'd1;
ledg <= 1'd0;
ledb <= 1'd1;
end
3'd2: //蓝灯亮
begin
ledr <= 1'd1;
ledg <= 1'd1;
ledb <= 1'd0;
end
default: //都不亮
begin
ledr <= 1'd1;
ledg <= 1'd1;
ledb <= 1'd1;
end
endcase
assign {fpga_ledr,fpga_ledg,fpga_ledb} = {ledr,ledg,ledb};
//--------------------endmodule---------------------------//
endmodule
源代码下载链接:
链接:http://pan.baidu.com/s/1nu74Iy1 密码:dz3y
iCore4链接: