// lled.v
/********************************文件信息***********************************
**文件名字: led.v
**创建日期: 2008.07.10
**版本号: v1.0
**功能描述: 实现流水灯功能
**
****************************************************************************/
module led(
sysclk,
reset,
ledout
);
input sysclk; //系统时钟
input reset; //复位
output[3:0] ledout; //LED输出
reg [3:0] ledout;
reg [3:0]state; //状态机
reg divclk; //分频时钟
reg [25:0]divclk_cnt; //分频计数寄存器
/****************************************************************************
**模块名称:分频模块
**功能描述:把系统时钟分频,产生0.5S的时钟
*****************************************************************************/
sysclk)
begin
if(divclk_cnt==26'd12000000)
begin
divclk=~divclk;
divclk_cnt=0;
end
else
begin
divclk_cnt=divclk_cnt+1'b1;
end
end
/****************************************************************************
**模块名称:
**功能描述:利用状态机转换产生流水灯效果
*****************************************************************************/
divclk or negedge reset)
begin
if(reset==0)
begin
ledout<=4'b0000;
state<=4'b0001;
end
else
begin
case(state)
4'b0001:
begin
ledout<=4'b0001;
state<=4'b0010;
end
4'b0010:
begin
ledout<=4'b0010;
state<=4'b0100;
end
4'b0100:
begin
ledout<=4'b0100;
state<=4'b1000;
end
4'b1000:
begin
ledout<=4'b1000;
state<=4'b0001;
end
default:
begin
ledout<=4'b0000;
state<=4'b0001;
end
endcase
end
end
endmodule
阅读(647) | 评论(0) | 转发(0) |