基于verilog简单的LED计数程序
已有 1682 次阅读2007-11-23 11:18
|个人分类:FPGA设计|系统分类:EDA/PLD
module exam1 (clk,LED1);
input clk; //时钟输入,20M
//output BX; //LED1灯输出
// output BY; //LED2灯输出
output LED1; //数码管输出
// reg BY; //定义为寄存器
// reg BX; //定义为寄 存器
reg [31:0]data; //
reg [6:0]LED1;
reg [31:0]data1;
/*always @(posedge clk) //时钟触发
begin
/*if (data == 12500000)
begin
//BY = ~BY; //500mS变换LED状态
end
end*/
always @(posedge clk)
begin
if (data == 25000000)
begin
// BX = ~BX; //1S变换LED1状态
data = 0;
data1 = data1+1;
case (data1) //数码管自动计数,0~9
//4'b0000 : LED1 = 7'b0111111; //0
4'b0001 : LED1 = 7'b0000110; //1
4'b0010 : LED1 = 7'b1011011; //2
4'b0011 : LED1 = 7'b1001111; //3
4'b0100 : LED1 = 7'b1100110; //4
4'b0101 : LED1 = 7'b1101101; //5
4'b0110 : LED1 = 7'b1111101; //6
4'b0111 : LED1 = 7'b0000111; //7
4'b1000 : LED1 = 7'b1111111; //8
4'b1001 : LED1 = 7'b1100111; //9
endcase
if (data1 == 10)
begin
data1 = 0;
LED1 = 7'b0111111; //0
end
end
data = data + 1;
end
endmodule