initial begin data_in[0]=249; data_in[1]=164; data_in[2]=255; data_in[3]=255; data_in[4]=255; data_in[5]=255; data_in[6]=255; data_in[7]=255; state=S0; clk_div=0; end
always @ (state) begin case (state) S0:begin lbit = 254; seg = data_in[0]; end S1:begin lbit = 253; seg = data_in[1]; end S2:begin lbit = 255-S2; seg = data_in[2]; end S3:begin lbit = 255-S3; seg = data_in[3]; end S4:begin lbit = 255-S4; seg = data_in[4]; end S5:begin lbit = 255-S5; seg = data_in[5]; end S6:begin lbit = 255-S6; seg = data_in[6]; end S7:begin lbit = 255-S7; seg = data_in[7]; end endcase end
always @ (posedge clk ) begin
if(clk_div>50_000)begin clk_div=0;
case (state) S0: state <= S1; S1: state <= S2; S2: state <= S3; S3: state <= S4; S4: state <= S5; S5: state <= S6; S6: state <= S7; S7: state <= S0; endcase end else clk_div=clk_div+1;