module led_display(sys_clk ,
sys_rstn,
sm_seg,
sm_bit);
input sys_clk;
input sys_rstn;
output [7:0] sm_seg;
output [7:0] sm_bit;
reg [7:0] sm_seg ;
reg [7:0] sm_bit ;
reg [3:0] gewei ;
reg [3:0] shiwei ;
reg [25:0] delay_cnt;
reg [4:0] dataout_buf;
reg [4:0] dataout2_buf;
always@(posedge sys_clk or negedge sys_rstn)
begin
if(!sys_rstn)
delay_cnt<=26'd0;
else
begin
if(delay_cnt==26'd2999999)
delay_cnt<=26'd0;
else
delay_cnt<=delay_cnt+1'b1;
end
end
always@(posedge sys_clk or negedge sys_rstn)
begin
if (!sys_rstn)
gewei<=4'd0;
else
begin
if(delay_cnt==26'd2999999)
gewei<=gewei+1'd1;
else if(gewei==4'd10)
gewei=4'd0;
else
gewei<=gewei;
end
end
always@(posedge sys_clk or negedge sys_rstn)
begin
if (!sys_rstn)
shiwei<=4'd0;
else
begin
if(gewei==4'd10)
shiwei<=shiwei+1'd1;
else if (shiwei==4'd7)
shiwei<=4'd0;
else
shiwei<=shiwei;
end
end
always@(posedge sys_clk or negedge sys_rstn )
begin
case(delay_cnt)
4'd0:
begin
sm_bit=8'b11111100;
dataout_buf=shiwei;
end
4'd1:
begin
sm_bit=8'b11111100;
dataout_buf=shiwei;
end
4'd2:
begin
sm_bit=8'b11111100;
dataout_buf=shiwei;
end
4'd3:
begin
sm_bit=8'b11111100;
dataout_buf=shiwei;
end
4'd4:
begin
sm_bit=8'b11111100;
dataout_buf=shiwei;
end
4'd5:
begin
sm_bit=8'b11111100;
dataout_buf=shiwei;
end
4'd6:
begin
sm_bit=8'b11111100;
dataout_buf=shiwei;
end
4'd7:
begin
sm_bit=8'b11111100;
dataout_buf=shiwei;
end
4'd8:
begin
sm_bit=8'b11111100;
dataout_buf=shiwei;
end
4'd9:
begin
sm_bit=8'b11111100;
dataout_buf=shiwei;
end
default:
begin
sm_bit=8'b11111100;
dataout_buf=shiwei;
end
endcase
end
always@(dataout_buf)
begin
case(dataout_buf)
4'h0:
sm_seg=8'hc0;
4'h1:
sm_seg=8'hf9;
4'h2:
sm_seg=8'ha4;
4'h3:
sm_seg=8'hb0;
4'h4:
sm_seg=8'h99;
4'h5:
sm_seg=8'h92;
4'h6:
sm_seg=8'h82;
4'h7:
sm_seg=8'hf8;
4'h8:
sm_seg=8'h80;
4'h9:
sm_seg=8'h90;
4'ha:
sm_seg=8'h88;
4'hb:
sm_seg=8'h83;
4'hc:
sm_seg=8'hc6;
4'hd:
sm_seg=8'ha1;
4'he:
sm_seg=8'h86;
4'hf:
sm_seg=8'h8e;
default:
sm_seg=8'hc0;
endcase
end
endmodule