/* LCD_module_4bit */ module lcd_sc1602_06_4b_01( CLK,SHIFT_CLK, RST, CUR,rw ,rs ,en ,db,DATA,addrs1,addrs2,addrs3,addrs4,wdatain,EN,INSTATUS); input CLK, RST ; input[3:0] CUR; //input[15:0] DATA; input[7:0] DATA; input[7:0] addrs1; input[7:0] addrs2; input[7:0] addrs3; input[7:0] addrs4; input[7:0] wdatain; input[3:0] INSTATUS; input EN; output rw, rs ,SHIFT_CLK; output en; output [7:0] db; reg [23:0] cntw; reg [9:0] next; reg rs_r; reg en_r; reg rw_r; reg [7:0] tsw; //reg[7:0] character_hex1,character_hex2,character_hex3,character_hex4; //reg[127:0] mode_lcd_disp; reg[31:0] sec_cnt1; reg toggle_flag1; reg sec1_flag1; reg[31:0] sec_cnt2; reg toggle_flag2; reg sec1_flag2; /* reg[7:0] addrs1; reg[7:0] addrs2; reg[7:0] addrs3; reg[7:0] addrs4; */ reg[11:0] caddrs1; reg[15:0] chara_addrs1; reg[15:0] chara_addrs2; reg[15:0] chara_addrs3; reg[15:0] chara_addrs4; reg[15:0] chara_datain; reg[15:0] chara_data1; reg[127:0] mode_lcd_disp ; initial begin sec_cnt1=32'h00000000; toggle_flag1 =1'b0; sec1_flag1 =1'b0; sec_cnt2=32'h00000000; toggle_flag2 =1'b0; sec1_flag2 =1'b0; cntw =24'h000000; next = 10'b0000000000; tsw = 8'b00000000; rs_r = 1'b0; rw_r = 1'b0; en_r = 1'b0; //CUR=4'b0000; //COUNTER_OUT=4'b1111; // addrs1=8'h11; // addrs2=8'h22; // addrs3=8'h33; // addrs4=8'h44; //caddrs1=12'b101010101010; end //parameter F50M0000_cnt1=32'h000001f4;//10/30動作 10usec parameter F50M0000_cnt1=32'h00000032; // parameter F50M0000_cnt1=32'h00000032; // parameter F50M0000_cnt1=32'h00000004; parameter F50M0000_cnt2=32'h00000002; always@(posedge CLK) begin if(sec_cnt1 == F50M0000_cnt1) begin // if(sec_cnt1 == 32'h00000004) begin sec_cnt1 <= 32'h00000000 ; //counter counting up to the parameter sec1_flag1 <= 1'b1; end else begin sec_cnt1 <= sec_cnt1 + 1 ; sec1_flag1 <= 1'b0 ; end end always@(posedge CLK) begin if(sec1_flag1 == 1'b1 )begin toggle_flag1 <= !toggle_flag1 ; end end assign SHIFT_CLK =!toggle_flag1; always@(posedge CLK) begin if(sec_cnt2 == F50M0000_cnt2) begin // if(sec_cnt1 == 32'h00000004) begin sec_cnt2 <= 32'h00000000 ; //counter counting up to the parameter sec1_flag2 <= 1'b1; end else begin sec_cnt2 <= sec_cnt2 + 1 ; sec1_flag2 <= 1'b0 ; end end always@(posedge CLK) begin if(sec1_flag2 == 1'b1 )begin toggle_flag2 <= !toggle_flag2 ; end end always@(negedge RST or posedge toggle_flag2 ) //or posedge EN) //always@(negedge RST or posedge SHIFT_CLK) //10/31 // always@(negedge RST or posedge CLK ) //or posedge EN) begin if(RST ==1'b0)begin //chara_addrs1 <=16'h3031; //chara_addrs2 <=16'h3032; //chara_addrs3 <=16'h3033; //chara_addrs4 <=16'h3034; //chara_data1 <=16'h3435; //end else begin //end else if(EN==1'b1)begin end else begin case(addrs1[3:0]) 4'b0000 : chara_addrs1[7:0]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs1[7:0]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs1[7:0]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs1[7:0]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs1[7:0]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs1[7:0]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs1[7:0]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs1[7:0]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs1[7:0]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs1[7:0]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs1[7:0]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs1[7:0]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs1[7:0]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs1[7:0]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs1[7:0]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs1[7:0]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs1[7:0]<= 8'h31; endcase case(addrs1[7:4]) 4'b0000 : chara_addrs1[15:8]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs1[15:8]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs1[15:8]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs1[15:8]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs1[15:8]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs1[15:8]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs1[15:8]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs1[15:8]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs1[15:8]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs1[15:8]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs1[15:8]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs1[15:8]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs1[15:8]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs1[15:8]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs1[15:8]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs1[15:8]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs1[15:8]<= 8'h32; endcase case(addrs2[3:0]) 4'b0000 : chara_addrs2[7:0]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs2[7:0]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs2[7:0]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs2[7:0]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs2[7:0]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs2[7:0]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs2[7:0]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs2[7:0]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs2[7:0]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs2[7:0]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs2[7:0]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs2[7:0]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs2[7:0]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs2[7:0]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs2[7:0]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs2[7:0]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs2[7:0] <= 8'h33; endcase case(addrs2[7:4]) 4'b0000 : chara_addrs2[15:8]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs2[15:8]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs2[15:8]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs2[15:8]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs2[15:8]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs2[15:8]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs2[15:8]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs2[15:8]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs2[15:8]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs2[15:8]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs2[15:8]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs2[15:8]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs2[15:8]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs2[15:8]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs2[15:8]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs2[15:8]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs2[15:8] <= 8'h34; endcase case(addrs3[3:0]) 4'b0000 : chara_addrs3[7:0]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs3[7:0]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs3[7:0]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs3[7:0]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs3[7:0]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs3[7:0]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs3[7:0]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs3[7:0]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs3[7:0]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs3[7:0]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs3[7:0]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs3[7:0]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs3[7:0]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs3[7:0]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs3[7:0]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs3[7:0]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs3[7:0] <= 8'h35; endcase case(addrs3[7:4]) 4'b0000 : chara_addrs3[15:8]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs3[15:8]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs3[15:8]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs3[15:8]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs3[15:8]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs3[15:8]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs3[15:8]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs3[15:8]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs3[15:8]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs3[15:8]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs3[15:8]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs3[15:8]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs3[15:8]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs3[15:8]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs3[15:8]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs3[15:8]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs3[15:8] <= 8'h36; endcase case(addrs4[3:0]) 4'b0000 : chara_addrs4[7:0]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs4[7:0]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs4[7:0]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs4[7:0]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs4[7:0]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs4[7:0]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs4[7:0]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs4[7:0]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs4[7:0]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs4[7:0]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs4[7:0]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs4[7:0]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs4[7:0]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs4[7:0]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs4[7:0]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs4[7:0]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs4[7:0] <= 8'h36; endcase case(addrs4[7:4]) 4'b0000 : chara_addrs4[15:8]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs4[15:8]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs4[15:8]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs4[15:8]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs4[15:8]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs4[15:8]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs4[15:8]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs4[15:8]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs4[15:8]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs4[15:8]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs4[15:8]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs4[15:8]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs4[15:8]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs4[15:8]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs4[15:8]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs4[15:8]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs4[15:8] <= 8'h37; endcase case(wdatain[3:0]) 4'b0000 : chara_datain[7:0]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_datain[7:0]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_datain[7:0]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_datain[7:0]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_datain[7:0]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_datain[7:0]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_datain[7:0]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_datain[7:0]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_datain[7:0]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_datain[7:0]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_datain[7:0]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_datain[7:0]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_datain[7:0]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_datain[7:0]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_datain[7:0]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_datain[7:0]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_datain[7:0] <= 8'h36; endcase case(wdatain[7:4]) 4'b0000 : chara_datain[15:8]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_datain[15:8]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_datain[15:8]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_datain[15:8]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_datain[15:8]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_datain[15:8]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_datain[15:8]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_datain[15:8]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_datain[15:8]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_datain[15:8]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_datain[15:8]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_datain[15:8]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_datain[15:8]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_datain[15:8]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_datain[15:8]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_datain[15:8]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_datain[15:8] <= 8'h37; endcase // default: chara_addrs4 <= 8'b00000110; //endcase end end // always@(negedge RST or posedge SHIFT_CLK) //10/31 always@(negedge RST or posedge CLK or posedge EN) //begin if(RST ==1'b0)begin //chara_addrs1 <=16'h3031; //chara_addrs2 <=16'h3032; //chara_addrs3 <=16'h3033; //chara_addrs4 <=16'h3034; //chara_data1 <=16'h3435; //end else begin //end else if(EN==1'b1)begin //end else begin 11/1 /* case(addrs1[3:0]) 4'b0000 : chara_addrs1[7:0]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs1[7:0]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs1[7:0]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs1[7:0]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs1[7:0]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs1[7:0]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs1[7:0]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs1[7:0]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs1[7:0]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs1[7:0]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs1[7:0]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs1[7:0]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs1[7:0]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs1[7:0]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs1[7:0]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs1[7:0]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs1[7:0]<= 8'h31; endcase case(addrs1[7:4]) 4'b0000 : chara_addrs1[15:8]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs1[15:8]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs1[15:8]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs1[15:8]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs1[15:8]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs1[15:8]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs1[15:8]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs1[15:8]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs1[15:8]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs1[15:8]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs1[15:8]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs1[15:8]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs1[15:8]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs1[15:8]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs1[15:8]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs1[15:8]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs1[15:8]<= 8'h32; endcase case(addrs2[3:0]) 4'b0000 : chara_addrs2[7:0]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs2[7:0]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs2[7:0]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs2[7:0]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs2[7:0]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs2[7:0]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs2[7:0]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs2[7:0]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs2[7:0]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs2[7:0]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs2[7:0]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs2[7:0]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs2[7:0]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs2[7:0]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs2[7:0]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs2[7:0]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs2[7:0] <= 8'h33; endcase case(addrs2[7:4]) 4'b0000 : chara_addrs2[15:8]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs2[15:8]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs2[15:8]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs2[15:8]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs2[15:8]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs2[15:8]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs2[15:8]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs2[15:8]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs2[15:8]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs2[15:8]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs2[15:8]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs2[15:8]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs2[15:8]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs2[15:8]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs2[15:8]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs2[15:8]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs2[15:8] <= 8'h34; endcase case(addrs3[3:0]) 4'b0000 : chara_addrs3[7:0]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs3[7:0]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs3[7:0]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs3[7:0]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs3[7:0]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs3[7:0]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs3[7:0]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs3[7:0]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs3[7:0]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs3[7:0]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs3[7:0]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs3[7:0]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs3[7:0]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs3[7:0]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs3[7:0]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs3[7:0]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs3[7:0] <= 8'h35; endcase case(addrs3[7:4]) 4'b0000 : chara_addrs3[15:8]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs3[15:8]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs3[15:8]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs3[15:8]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs3[15:8]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs3[15:8]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs3[15:8]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs3[15:8]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs3[15:8]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs3[15:8]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs3[15:8]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs3[15:8]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs3[15:8]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs3[15:8]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs3[15:8]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs3[15:8]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs3[15:8] <= 8'h36; endcase case(addrs4[3:0]) 4'b0000 : chara_addrs4[7:0]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs4[7:0]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs4[7:0]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs4[7:0]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs4[7:0]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs4[7:0]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs4[7:0]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs4[7:0]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs4[7:0]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs4[7:0]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs4[7:0]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs4[7:0]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs4[7:0]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs4[7:0]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs4[7:0]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs4[7:0]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs4[7:0] <= 8'h36; endcase case(addrs4[7:4]) 4'b0000 : chara_addrs4[15:8]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_addrs4[15:8]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_addrs4[15:8]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_addrs4[15:8]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_addrs4[15:8]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_addrs4[15:8]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_addrs4[15:8]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_addrs4[15:8]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_addrs4[15:8]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_addrs4[15:8]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_addrs4[15:8]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_addrs4[15:8]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_addrs4[15:8]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_addrs4[15:8]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_addrs4[15:8]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_addrs4[15:8]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_addrs4[15:8] <= 8'h37; endcase */ case(DATA[3:0]) 4'b0000 : chara_data1[7:0]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_data1[7:0]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_data1[7:0]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_data1[7:0]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_data1[7:0]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_data1[7:0]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_data1[7:0]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_data1[7:0]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_data1[7:0]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_data1[7:0]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_data1[7:0]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_data1[7:0]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_data1[7:0]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_data1[7:0]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_data1[7:0]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_data1[7:0]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_data1[7:0] <= 8'h36; endcase case(DATA[7:4]) 4'b0000 : chara_data1[15:8]<= 8'h30 ; //'0'繧定。ィ遉コ 4'b0001 : chara_data1[15:8]<= 8'h31 ; //'1'繧定。ィ遉コ 4'b0010 : chara_data1[15:8]<= 8'h32 ; //'2'繧定。ィ遉コ 4'b0011 : chara_data1[15:8]<= 8'h33 ; //'3'繧定。ィ遉コ 4'b0100 : chara_data1[15:8]<= 8'h34 ; //'4'繧定。ィ遉コ 4'b0101 : chara_data1[15:8]<= 8'h35 ; //'5'繧定。ィ遉コ 4'b0110 : chara_data1[15:8]<= 8'h36 ; //'6'繧定。ィ遉コ 4'b0111 : chara_data1[15:8]<= 8'h37 ; //'7'繧定。ィ遉コ 4'b1000 : chara_data1[15:8]<= 8'h38 ; //'8'繧定。ィ遉コ 4'b1001 : chara_data1[15:8]<= 8'h39 ; //'9'繧定。ィ遉コ 4'b1010 : chara_data1[15:8]<= 8'h41 ; //'A'繧定。ィ遉コ 4'b1011 : chara_data1[15:8]<= 8'h42 ; //'b'繧定。ィ遉コ 4'b1100 : chara_data1[15:8]<= 8'h43 ; //'c'繧定。ィ遉コ 4'b1101 : chara_data1[15:8]<= 8'h44 ; //'d'繧定。ィ遉コ 4'b1110 : chara_data1[15:8]<= 8'h45 ; //'E'繧定。ィ遉コ 4'b1111 : chara_data1[15:8]<= 8'h46 ; //'F'繧定。ィ遉コ default: chara_data1[15:8] <= 8'h37; endcase // default: chara_addrs4 <= 8'b00000110; //endcase //end end // parameter NORMAL = 4'b0000, READID = 4'b0001, READSTATUS = 4'b0010, READPAGE = 4'b0011 ,ERASEBLOCK = 4'b0100, PROGRAMPAGE = 4'b0101,READPARAMPAGE =4'b0110,READUNIID=4'b0111,COMPARECHECK=4'b1000; // parameter AdSelStart=4'b1001,AdSelEnd=4'b1010,Adcycl=4'b1011,DataInput=4'b1100,Load=4'b1101,ReErsPrgCom=4'b1110; always@(posedge SHIFT_CLK )begin // always@(posedge CLK or posedge sw2)begin //read 0x03,0x0b,0x3b,0x6b,0xbb,0xeb,0x9f,0x90 if(CUR == 4'h0)begin mode_lcd_disp <=128'h4e616e64633533623132304d20783030 ;//display "Nandc51b1**M x00 dataは125Mhzの一例" end else if(CUR == 4'h1)begin mode_lcd_disp <=128'h52656164204944202020202030783031 ;//display "Read ID 0x01" end else if(CUR == 4'h2)begin mode_lcd_disp <=128'h52656164205354415455532030783032 ;//display "Read STATUS 0x02" end else if(CUR == 4'h3)begin mode_lcd_disp <=128'h52656164205041474520202030783033 ;//display "Read PAGE 0x03" end else if(CUR == 4'h4)begin mode_lcd_disp <=128'h455241534520424c4f434b2030783034 ;//display "ERASE BLOCK 0x04" end else if(CUR == 4'h5)begin mode_lcd_disp <=128'h50726f6772616d506167652030783035 ;//display "PROGRAMPAGE 0x05" end else if(CUR == 4'h6)begin mode_lcd_disp <=128'h52656164616c6c204330202030783036 ;//display "ReadALL C0 0x06" end else if(CUR == 4'h7)begin mode_lcd_disp <=128'h52656164616c6c204338303020783037 ;//display "ReadALL C800 0x07" end else if(CUR == 4'h8)begin mode_lcd_disp <=128'h434f4d5020434845434b202030783038 ;//display "COMPARECHECK 0x08" end else if(CUR == 4'h9)begin mode_lcd_disp <=128'h416453656c2053746172742030783039 ;//display "AdSel Start 0x09" end else if(CUR == 4'ha)begin mode_lcd_disp <=128'h416453656c20456e6420202030783061 ;//display "AdSel End 0x0a" end else if(CUR == 4'hb)begin mode_lcd_disp <=128'h41646379636c20202020202030783062 ;//display "Adcycl 0x0b" end else if(CUR == 4'hc)begin mode_lcd_disp <=128'h4461746120496e707574202030783063 ;//display "Data Input 0x0c" end else if(CUR == 4'hd)begin mode_lcd_disp <=128'h4c6f6164202020202020202030783064 ;//display "Load 0x0d" end else if(CUR == 4'he)begin if(INSTATUS == 4'b1000)begin mode_lcd_disp <=128'h526561647e2020202020202030783065 ;//display "Read-> 0x0e" end else if(INSTATUS == 4'b0001)begin mode_lcd_disp <=128'h4572737e202020202020202030783065 ;//display "Ers-> 0x0e" end else if(INSTATUS ==4'b0010)begin mode_lcd_disp <=128'h5072677e202020202020202030783065 ;//display "Prg-> 0x0e" end else if(INSTATUS == 4'b0100)begin mode_lcd_disp <=128'h436f6d7e202020202020202030783065 ;//display "Com-> 0x0e" end else begin mode_lcd_disp <=128'h457252655072436f6d52652030783065 ;//display "ErRePr Com 0x0e" end end else begin mode_lcd_disp <=128'h45727220436865636b20496e20202020 ;//display "Err Check Input " end end always @( posedge SHIFT_CLK ) begin //always @( posedge SHIFT_CLK or posedge EN) begin //10/31 //always @( negedge RST or posedge CLK ) begin if ( RST==1 'b0 ) begin rs_r <= 1'b0; rw_r <= 1'b0; en_r <= 1'b0; // tsw <= 8 'h00; tsw <= 8 'h20;//11/1 cntw <= 24 'h000000; next <= 10'd0; end else if (cntw == 24 'h0cb735)begin // end else if (cntw == 24 'h000ccc)begin cntw <= 24 'h000000;
end else begin cntw <= cntw + 1'b1; //delya 50msec rs=0 case (next) 10'd0 : if ( cntw == 24 'd50000 ) begin // all_0 & 50ms_wait rs=0 command 50Mhz count 1 = 1usec 50000 = 50msec rs_r <= 1'b0; rw_r <= 1'b0; en_r <= 1'b0; tsw <= 8'h0; cntw <= 24'h000000; next <= 10'd1; end //3h 8bitmode 1 10'd1 : if ( cntw == 24 'd1 ) begin //8bit_mode rs=0 en_r <= 1'b1; tsw <= 8'h30; cntw <= 24'h00; next <= 10'd2; end 10'd2 : if ( cntw == 24 'd1 ) begin //en_hold_1us rs=0 en_r <= 1'b0; cntw <= 24'h00; next <= 10'd3; end //3h 8bitmode 2 10'd3 : if ( cntw == 24 'd5000 ) begin //8bit_mode & 5ms_wait rs=0 en_r <= 1'b1; tsw <= 8'h30; cntw <= 24'h00; next <= 10'd4; end 10'd4 : if ( cntw == 24 'd1 ) begin // rs=0 en_r <= 1'b0; cntw <= 24'h00; next <= 10'd5; end //3h 8bitmode 3 10'd5 : if ( cntw == 24 'd1000 ) begin //8bit_mode & 1ms_wait rs=0 en_r <= 1'b1; tsw <= 8'h30; cntw <= 24'h00; next <= 10'd6; end 10'd6 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd7; end //4bit mode 20h half byte only 10'd7 : if ( cntw == 24 'd5000 ) begin //Function set("4"bit_mode & 2disp) & 5ms_wait rs=0 en_r <= 1'b1; tsw <= 8'h20; cntw <= 24'h00; next <= 10'd8; end 10'd8 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd900; end //2gyouhyouji 28h //8bitmode 38h 10'd900 : if ( cntw == 24 'd5000 ) begin //Function set("4"bit_mode & 2disp) & 5ms_wait en_r <= 1'b1; tsw <= 8'h20; cntw <= 24'h00; next <= 10'd901; end 10'd901 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd902; end 10'd902 : if ( cntw == 24 'd5000 ) begin //Function set("4"bit_mode & 2disp) & 5ms_wait en_r <= 1'b1; tsw <= 8'h80; cntw <= 24'h00; next <= 10'd903; end 10'd903 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd904; end //disp on off/ 08h 10'd904 : if ( cntw == 24 'd50 ) begin //disp_on en_r <= 1'b1; tsw <= 8'h00; cntw <= 24'h00; next <= 10'd905; end 10'd905 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd906; end 10'd906 : if ( cntw == 24 'd50 ) begin //disp_on en_r <= 1'b1; tsw <= 8'hc0;//E0 cntw <= 24'h00; next <= 10'd907; end 10'd907 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd908; end 10'd908 : if ( cntw == 24 'd50 ) begin //disp_clear en_r <= 1'b1; tsw <= 8'h00; cntw <= 24'h00; next <= 10'd909; end 10'd909 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd910; end 10'd910 : if ( cntw == 24 'd50 ) begin //disp_clear en_r <= 1'b1; tsw <= 8'h10;//E0 cntw <= 24'h00; next <= 10'd911; end 10'd911 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd912; end //entrymode 04h 10'd912 : if ( cntw == 24 'd16000 ) begin //entrymode_on en_r <= 1'b1; tsw <= 8'h00; cntw <= 24'h00; next <= 10'd913; end 10'd913 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd914; end 10'd914 : if ( cntw == 24 'd50 ) begin //entrymode_on en_r <= 1'b1; tsw <= 8'h60; //60 cntw <= 24'h00; next <= 10'd915; end 10'd915 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd916; end //display on 06h 10'd916 : if ( cntw == 24 'd15000 ) begin //address指定 en_r <= 1'b1; tsw <= 8'h80; cntw <= 24'h00; next <= 10'd917; end 10'd917 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd918; end 10'd918 : if ( cntw == 24 'd50 ) begin // en_r <= 1'b1; tsw <= 8'h00;//F0 cntw <= 24'h00; next <= 10'd919; end 10'd919 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd22; end //rs ->1 command end 10'd22 : if ( cntw == 24 'd50 ) begin //rs_enb rs_r <= 1'b1; cntw <= 24'h00; next <= 10'd23; end //character out 1gyou 1moji MSB->LSB 10'd23 : if ( cntw == 24 'd50 ) begin //character_out w en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[127:124]; cntw <= 24'h00; next <= 10'd24; end 10'd24 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd25; end 10'd25 : if ( cntw == 24 'd50 ) begin //character_out w en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[123:120]; cntw <= 24'h00; next <= 10'd26; end 10'd26 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd27; end //1-2 10'd27 : if ( cntw == 24 'd50 ) begin //character_out r en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[119:116]; cntw <= 24'h00; next <= 10'd28; end 10'd28 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd29; end 10'd29 : if ( cntw == 24 'd50 ) begin //character_out r en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[115:112]; cntw <= 24'h00; next <= 10'd30; end 10'd30 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd31; end //1-3 10'd31 : if ( cntw == 24 'd50 ) begin //character_out r en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[111:108]; cntw <= 24'h00; next <= 10'd32; end 10'd32 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd33; end 10'd33 : if ( cntw == 24 'd50 ) begin //character_out r en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[107:104]; cntw <= 24'h00; next <= 10'd34; end 10'd34 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd35; end //1-4 10'd35 : if ( cntw == 24 'd50 ) begin //character_out space en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[103:100]; cntw <= 24'h00; next <= 10'd36; end 10'd36 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <=10'd37; end 10'd37 : if ( cntw == 24 'd50 ) begin //character_out space en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[99:96]; cntw <= 24'h00; next <= 10'd38; end 10'd38 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <=10'd39; end //1-5 10'd39 : if ( cntw == 24 'd50 ) begin //character_out en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[95:92]; cntw <= 24'h00; next <= 10'd40; end 10'd40 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd41; end 10'd41 : if ( cntw == 24 'd50 ) begin //character_out en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[91:88]; cntw <= 24'h00; next <= 10'd42; end 10'd42 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd43; end //1-6 10'd43 : if ( cntw == 24 'd50 ) begin //character_out c en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[87:84]; cntw <= 24'h00; next <= 10'd44; end 10'd44 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd45; end 10'd45 : if ( cntw == 24 'd50 ) begin //character_out c en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[83:80]; cntw <= 24'h00; next <= 10'd46; end 10'd46 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd48; end //1-7 10'd48 : if ( cntw == 24 'd50 ) begin //character_out o en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[79:76]; cntw <= 24'h00; next <= 10'd49; end 10'd49 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd50; end 10'd50 : if ( cntw == 24 'd50 ) begin //character_out o en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[75:72]; cntw <= 24'h00; next <= 10'd51; end 10'd51 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 810'd52; end //1-8 10'd52 : if ( cntw == 24 'd50 ) begin //character_out u en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[71:68]; cntw <= 24'h00; next <= 10'd53; end 10'd53 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <=10'd54; end 10'd54 : if ( cntw == 24 'd50 ) begin //character_out u en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[67:64]; cntw <= 24'h00; next <= 10'd55; end 10'd55 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <=10'd56; end //1-9 10'd56 : if ( cntw == 24 'd50 ) begin //character_out n en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[63:60]; cntw <= 24'h00; next <= 10'd57; end 10'd57 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd58; end 10'd58 : if ( cntw == 24 'd50 ) begin //character_out n en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[59:56]; cntw <= 24'h00; next <= 10'd60; end 10'd60 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd61; end //1-10 10'd61 : if ( cntw == 24 'd50 ) begin //character_out t en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[55:52]; cntw <= 24'h00; next <= 10'd62; end 10'd62 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <=10'd63; end 10'd63 : if ( cntw == 24 'd50 ) begin //character_out t en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[51:48]; cntw <= 24'h00; next <= 10'd64; end 10'd64 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <=10'd65; end //1-11 10'd65 : if ( cntw == 24 'd50 ) begin //character_out 0 en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[47:44]; cntw <= 24'h00; next <= 10'd66; end 10'd66 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd67; end 10'd67 : if ( cntw == 24 'd50 ) begin //character_out 0 en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[43:40]; cntw <= 24'h00; next <= 10'd68; end 10'd68 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd70; end //1-12 10'd70 : if ( cntw == 24 'd50 ) begin //character_out x en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[39:36]; cntw <= 24'h00; next <= 10'd71; end 10'd71 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd72; end 10'd72 : if ( cntw == 24 'd50 ) begin //character_out x en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[35:32]; cntw <= 24'h00; next <= 10'd73; end 10'd73 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd74; end //1-13 10'd74 : if ( cntw == 24 'd50 ) begin //character_out 0 en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[31:28]; cntw <= 24'h00; next <= 10'd75; end 10'd75 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd76; end 10'd76 : if ( cntw == 24 'd50 ) begin //character_out 0 en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[27:24]; cntw <= 24'h00; next <= 10'd77; end 10'd77 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd78; end //1-14 10'd78 : if ( cntw == 24 'd50 ) begin //character_out 6 en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[23:20]; cntw <= 24'h00; next <= 10'd79; end 10'd79 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd80; end 10'd80 : if ( cntw == 24 'd50 ) begin //character_out 6 en_r <= 1'b1; tsw[7:4] <= mode_lcd_disp[19:16]; cntw <= 24'h00; next <= 10'd81; end 10'd81 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd82; end //1-15 10'd82 : if ( cntw == 24 'd50 ) begin //character_out 0 en_r <= 1'b1; // tsw <= mode_lcd_disp[15:8]; tsw[7:4]<=chara_datain[15:12]; cntw <= 24'h00; next <= 10'd83; end 10'd83 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd84; end 10'd84 : if ( cntw == 24 'd50 ) begin //character_out 0 en_r <= 1'b1; // tsw <= mode_lcd_disp[15:8]; tsw[7:4]<=chara_datain[11:8]; cntw <= 24'h00; next <= 10'd85; end 10'd85 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd86; end //1-16 10'd86 : if ( cntw == 24 'd50 ) begin //character_out 1 en_r <= 1'b1; // tsw <= mode_lcd_disp[7:0]; tsw[7:4]<=chara_datain[7:4]; cntw <= 24'h00; next <= 10'd87; end 10'd87 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; // rs_r <= 1'b0; next <= 10'd88; end 10'd88 : if ( cntw == 24 'd50 ) begin //character_out 1 en_r <= 1'b1; // tsw <= mode_lcd_disp[7:0]; tsw[7:4]<=chara_datain[3:0]; cntw <= 24'h00; next <= 10'd89; end 10'd89 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; rs_r <= 1'b0; next <= 10'd90;//90 end //2nd column start rs_r=0 command 10'd90 : if ( cntw == 24 'd1500 ) begin ////////////////////character_out 2column selected 0x40 1rst 11/6 500->1500 en_r <= 1'b1; tsw <= 8'hc0; cntw <= 24'h00; next <= 10'd91; end 10'd91 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; // rs_r <= 1'b0; //1 next <= 10'd92; end 10'd92 : if ( cntw == 24 'd500 ) begin ////////////////////character_out 2column selected 0x40 1rst en_r <= 1'b1; tsw <= 8'h00; cntw <= 24'h00; next <= 10'd93; end 10'd93 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; rs_r <= 1'b1; next <= 10'd94; end //2-1 10'd94 : if ( cntw == 24 'd50 ) begin //character_out A 0x41 en_r <= 1'b1; // tsw <= 8'h20; // tsw <= 8'h31; tsw <= 8'h40; cntw <= 24'h00; next <= 10'd95; end 10'd95 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd96; end 10'd96 : if ( cntw == 24 'd50 ) begin //character_out A en_r <= 1'b1; // tsw <= 8'h20; // tsw <= 8'h31; tsw <= 8'h10; cntw <= 24'h00; next <= 10'd97; end 10'd97 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd98; end //2-2 10'd98 : if ( cntw == 24 'd50 ) begin //character_out d 0x64 en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h60; cntw <= 24'h00; next <= 10'd99; end 10'd99 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd100; end 10'd100 : if ( cntw == 24 'd50 ) begin //character_out d en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h40; cntw <= 24'h00; next <= 10'd101; end 10'd101 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd102; end //2-3 72h r 10'd102 : if ( cntw == 24 'd50 ) begin //character_out r en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h70; cntw <= 24'h00; next <= 10'd103; end 10'd103 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd104; end 10'd104 : if ( cntw == 24 'd50 ) begin //character_out r en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h20; cntw <= 24'h00; next <= 10'd105; end 10'd105 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd106; end //2-4 10'd106 : if ( cntw == 24 'd50 ) begin //character_out space en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h20; cntw <= 24'h00; next <= 10'd107; end 10'd107 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd108; end 10'd108 : if ( cntw == 24 'd50 ) begin //character_out space en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h00; cntw <= 24'h00; next <= 10'd109; end 10'd109 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd110; end //2-5 10'd110 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs4[15:8] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs4[15:12]; cntw <= 24'h00; next <= 10'd111; end 10'd111 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd112; end 10'd112 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs4[15:8] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs4[11:8]; cntw <= 24'h00; next <= 10'd113; end 10'd113 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd114; end //2-6 10'd114 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs4[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs4[7:4]; cntw <= 24'h00; next <=10'd115; end 10'd115 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd116; end 10'd116 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs4[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs4[3:0]; cntw <= 24'h00; next <=10'd117; end 10'd117 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd118; end //2-7 10'd118 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs3[15:8] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs3[15:12]; cntw <= 24'h00; next <=10'd119; end 10'd119 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd120; end 10'd120 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs3[15:8] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs3[11:8]; cntw <= 24'h00; next <=10'd121; end 10'd121 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd122; end //2-8 10'd122 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs3[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs3[7:4]; cntw <= 24'h00; next <= 10'd123; end 10'd123 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd124; end 10'd124 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs3[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs3[3:0]; cntw <= 24'h00; next <= 10'd125; end 10'd125 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd126; end //2-9 10'd126 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs2[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs2[7:4]; cntw <= 24'h00; next <= 10'd127; end 10'd127 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd128; end 10'd128 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs2[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs2[3:0]; cntw <= 24'h00; next <= 10'd129; end 10'd129 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd130; end //2-10 10'd130 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs1[15:8] en_r <= 1'b1; // tsw <= 8'h32; tsw[7:4] <= chara_addrs1[15:12]; cntw <= 24'h00; next <= 10'd138; end 10'd138 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd139; end 10'd139 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs1[15:8] en_r <= 1'b1; // tsw <= 8'h32; tsw[7:4] <= chara_addrs1[11:8]; cntw <= 24'h00; next <= 10'd140; end 10'd140 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd141; end //2-11 10'd141 : if ( cntw == 24 'd50) begin //character_out chara_addrs1[7:0] en_r <= 1'b1; // tsw <= 8'h31; tsw[7:4] <= chara_addrs1[7:4]; cntw <= 24'h00; next <= 10'd142; end 10'd142 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd143; end 10'd143 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs1[7:0] en_r <= 1'b1; // tsw <= 8'h31; tsw[7:4] <= chara_addrs1[3:0]; cntw <= 24'h00; next <= 10'd144; end 10'd144 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd145; end //2-12 10'd145 : if ( cntw == 24 'd50 ) begin //character_out space en_r <= 1'b1; tsw <= 8'h20; cntw <= 24'h00; next <= 10'd146; end 10'd146 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd147; end 10'd147 : if ( cntw == 24 'd50 ) begin //character_out space en_r <= 1'b1; tsw <= 8'h00; cntw <= 24'h00; next <= 10'd148; end 10'd148 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd149; end //2-13 10'd149 : if ( cntw == 24 'd50 ) begin //character_out 0 en_r <= 1'b1; tsw <= 8'h30; // tsw <= character_hex4; cntw <= 24'h00; next <= 10'd150; end 10'd150 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd151; end 10'd151 : if ( cntw == 24 'd50 ) begin //character_out 0 en_r <= 1'b1; tsw <= 8'h00; // tsw <= character_hex4; cntw <= 24'h00; next <= 10'd152; end 10'd152 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd153; end //2-14 10'd153 : if ( cntw == 24 'd50 ) begin //character_out x en_r <= 1'b1; tsw <= 8'h70; // tsw <= character_hex3; cntw <= 24'h00; next <= 10'd154; end 10'd154 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd155; end 10'd155 : if ( cntw == 24 'd50 ) begin //character_out x en_r <= 1'b1; tsw <= 8'h80; // tsw <= character_hex3; cntw <= 24'h00; next <= 10'd156; end 10'd156 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd157; end //2-15 10'd157 : if ( cntw == 24 'd50 ) begin //character_out chara_data1[15:8] en_r <= 1'b1; // tsw <= 8'h45; tsw[7:4] <= chara_data1[15:12]; cntw <= 24'h00; next <= 10'd159; end 10'd159 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd160; end 10'd160 : if ( cntw == 24 'd50 ) begin //character_out chara_data1[15:8] en_r <= 1'b1; // tsw <= 8'h45; tsw[7:4] <= chara_data1[11:8]; cntw <= 24'h00; next <= 10'd161; end 10'd161 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd162; end //2-16 10'd162 : if ( cntw == 24 'd50 ) begin //character_out chara_data1[7:0] en_r <= 1'b1; // tsw <= 8'h46; tsw[7:4] <= chara_data1[7:4]; cntw <= 24'h00; next <= 10'd163; end 10'd163 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd164; // next <= 8'd94; end 10'd164 : if ( cntw == 24 'd50 ) begin //character_out chara_data1[7:0] en_r <= 1'b1; // tsw <= 8'h46; tsw[7:4] <= chara_data1[3:0]; cntw <= 24'h00; next <= 10'd165; end 10'd165 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; // next <= 10'd166; // next <= 10'd912; next<=10'd237; //2020/02/1 end /* 8'd82 : if ( cntw == 24 'd500 ) begin rw_r <= 1'b0; rs_r <= 1'b0; en_r <= 1'b0; cntw <= 24'h00; next <= 8'h83; //8'hxx end */
/* //2 end 10'd166 : if ( cntw == 24 'd50 ) begin en_r <= 1'b0; cntw <= 24'h00; rs_r <= 1'b0; // next <= 8'd84; next <= 10'd167; //10/28 end 10'd167 : if ( cntw == 24 'd1500 ) begin //character_out 2column selected 0x40 update en_r <= 1'b1; tsw <= 8'hc0; // tsw <= 8'hcc; cntw <= 24'h00; next <= 10'd168; end 10'd168 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; // rs_r <= 1'b1; next <= 10'd169; end 10'd169 : if ( cntw == 24 'd500 ) begin //character_out 2column selected 0x40 update en_r <= 1'b1; tsw <= 8'h00; // tsw <= 8'hcc; cntw <= 24'h00; next <= 10'd170; end 10'd170 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; rs_r <= 1'b1; next <= 10'd171; // next <= 10'd237; //20/02/01 end //2 2-1 10'd171 : if ( cntw == 24 'd50 ) begin //character_out A en_r <= 1'b1; // tsw <= 8'h20; // tsw <= 8'h31; tsw <= 8'h40; cntw <= 24'h00; next <= 10'd172; end 10'd172 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd173; end 10'd173 : if ( cntw == 24 'd50 ) begin //character_out A en_r <= 1'b1; // tsw <= 8'h20; // tsw <= 8'h31; tsw <= 8'h10; cntw <= 24'h00; next <= 10'd174; end 10'd174 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd175; end //2 2-2 10'd175 : if ( cntw == 24 'd50 ) begin //character_out d en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h60; cntw <= 24'h00; next <= 10'd176; end 10'd176 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <=10'd177; end 10'd177 : if ( cntw == 24 'd50 ) begin //character_out d en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h40; cntw <= 24'h00; next <= 10'd178; end 10'd178 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <=10'd179; end //2 2-3 10'd179 : if ( cntw == 24 'd50 ) begin //character_out r en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h70; cntw <= 24'h00; next <= 10'd180; end 10'd180 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd181; end 10'd181 : if ( cntw == 24 'd50 ) begin //character_out r en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h20; cntw <= 24'h00; next <= 10'd182; end 10'd182 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd183; end //2 2-4 10'd183 : if ( cntw == 24 'd50 ) begin //character_out space en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h20; cntw <= 24'h00; next <= 10'd185; end 10'd185 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <=10'd186; end 10'd186 : if ( cntw == 24 'd50 ) begin //character_out space en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h00; cntw <= 24'h00; next <= 10'd187; end 10'd187 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <=10'd188; end // 2-5 10'd188 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs4[15:8] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs4[15:12]; cntw <= 24'h00; next <= 10'd189; end 10'd189 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd190; end 10'd190 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs4[15:8] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs4[11:8]; cntw <= 24'h00; next <= 10'd191; end 10'd191 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd192; end //2 2-6 10'd192 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs4[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs4[7:4]; cntw <= 24'h00; next <= 10'd193; end 10'd193 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <=10'd194; end 10'd194 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs4[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs4[3:0]; cntw <= 24'h00; next <= 10'd195; end 10'd195 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <=10'd196; end //2 2-7 10'd196 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs3[15:8] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs3[15:12]; cntw <= 24'h00; next <= 10'd197; end 10'd197 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd198; end 10'd198 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs3[15:8] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs3[11:8]; cntw <= 24'h00; next <= 10'd199; end 10'd199 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd201; end //2 2-8 10'd201 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs3[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs3[7:4]; cntw <= 24'h00; next <= 10'd202; end 10'd202 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd203; end 10'd203 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs3[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs3[3:0]; cntw <= 24'h00; next <= 10'd204; end 10'd204 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd205; end //2 2-9 10'd205 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs2[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs2[7:4]; cntw <= 24'h00; next <= 10'd206; end 10'd206 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd207; end 10'd207 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs2[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw[7:4] <= chara_addrs2[3:0]; cntw <= 24'h00; next <= 10'd208; end 10'd208 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd209; end //2 /2-10 10'd209 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs1[15:8] en_r <= 1'b1; // tsw <= 8'h32; tsw[7:4] <= chara_addrs1[15:12]; cntw <= 24'h00; next <= 10'd210; end 10'd210 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd211; end 10'd211 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs1[15:8] en_r <= 1'b1; // tsw <= 8'h32; tsw[7:4] <= chara_addrs1[11:8]; cntw <= 24'h00; next <= 10'd212; end 10'd212 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd213; end //2 2-11 10'd213 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs1[7:0] en_r <= 1'b1; // tsw <= 8'h31; tsw[7:4] <= chara_addrs1[7:4]; cntw <= 24'h00; next <= 10'd214; end 10'd214 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd215; end 10'd215 : if ( cntw == 24 'd50 ) begin //character_out chara_addrs1[7:0] en_r <= 1'b1; // tsw <= 8'h31; tsw[7:4] <= chara_addrs1[3:0]; cntw <= 24'h00; next <= 10'd216; end 10'd216 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd217; end //2 2-12 10'd217 : if ( cntw == 24 'd50 ) begin //character_out space en_r <= 1'b1; tsw <= 8'h20; cntw <= 24'h00; next <= 10'd218; end 10'd218 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd219; end 10'd219 : if ( cntw == 24 'd50 ) begin //character_out space en_r <= 1'b1; tsw <= 8'h00; cntw <= 24'h00; next <= 10'd220; end 10'd220 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd221; end //2 2-13 10'd221 : if ( cntw == 24 'd50 ) begin //character_out 0 en_r <= 1'b1; tsw <= 8'h30; // tsw <= character_hex4; cntw <= 24'h00; next <= 10'd222; end 10'd222 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd223; end 10'd223 : if ( cntw == 24 'd50 ) begin //character_out 0 en_r <= 1'b1; tsw <= 8'h00; // tsw <= character_hex4; cntw <= 24'h00; next <= 10'd224; end 10'd224 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd225; end //2 2-14 78h 10'd225 : if ( cntw == 24 'd50 ) begin //character_out x en_r <= 1'b1; tsw <= 8'h70; // tsw <= character_hex3; cntw <= 24'h00; next <= 10'd226; end 10'd226 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd227; end 10'd227 : if ( cntw == 24 'd50 ) begin //character_out x en_r <= 1'b1; tsw <= 8'h80; // tsw <= character_hex3; cntw <= 24'h00; next <= 10'd228; end 10'd228 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd229; end //2 2-15 10'd229 : if ( cntw == 24 'd50 ) begin //character_out chara_data1[15:8] en_r <= 1'b1; // tsw <= 8'h45; tsw[7:4] <= chara_data1[15:12]; cntw <= 24'h00; next <= 10'd230; end 10'd230 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd231; end 10'd231 : if ( cntw == 24 'd50 ) begin //character_out chara_data1[15:8] en_r <= 1'b1; // tsw <= 8'h45; tsw[7:4] <= chara_data1[11:8]; cntw <= 24'h00; next <= 10'd232; end 10'd232 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 10'd233; end //2 2-16 10'd233 : if ( cntw == 24 'd50 ) begin //character_out chara_data1[7:0] en_r <= 1'b1; // tsw <= 8'h46; tsw[7:4] <= chara_data1[7:4]; cntw <= 24'h00; next <= 10'd234; end 10'd234 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; // rs_r<=1'b0;//10/31 next <= 10'd235; // next <= 8'd94; end 10'd235 : if ( cntw == 24 'd50 ) begin //character_out chara_data1[7:0] en_r <= 1'b1; // tsw <= 8'h46; tsw[7:4] <= chara_data1[3:0]; cntw <= 24'h00; next <= 10'd236; end 10'd236 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; rs_r<=1'b0;//10/31 next <= 10'd237; // next <= 8'd94; end /* 8'd82 : if ( cntw == 24 'd500 ) begin rw_r <= 1'b0; rs_r <= 1'b0; en_r <= 1'b0; cntw <= 24'h00; next <= 8'h83; //8'hxx end */ /*8'd118 : if ( cntw == 24 'd500 ) begin en_r <= 1'b0; cntw <= 24'h00; rs_r <= 1'b0; // next <= 8'd84; next <= 8'd119; //10/28 end */ 10'd237 : if ( cntw == 24 'd1500 ) begin //character_out 1column selected 0x00 en_r <= 1'b1; // tsw <= 8'hc0; tsw <= 8'h80; cntw <= 24'h00; next <= 10'd238; end 10'd238 : if ( cntw == 24 'd1 ) begin rw_r <= 1'b0; // rs_r <= 1'b0; en_r <= 1'b0; cntw <= 24'h00; next <=10'd239; end 10'd239 : if ( cntw == 24 'd50 ) begin //character_out 1column selected 0x00 en_r <= 1'b1; // tsw <= 8'hc0; tsw <= 8'h00; cntw <= 24'h00; next <= 10'd240; end 10'd240 : if ( cntw == 24 'd1 ) begin rw_r <= 1'b0; rs_r <= 1'b0; en_r <= 1'b0; cntw <= 24'h00; next <=10'd241; end 10'd241:if(cntw==24'd1 )begin//&& CUR !=4'b1000)begin next <= 10'd912;//83 22 //end else begin // next <=8'd15; end endcase end end /* always @( posedge SHIFT_CLK ) begin //always @( posedge SHIFT_CLK or posedge EN) begin //10/31 if ( RST==1 'b0 ) begin rs_r <= 1'b0; rw_r <= 1'b0; en_r <= 1'b0; // tsw <= 8 'h00; tsw <= 8 'h20;//11/1 cntw <= 24 'h000000; next <= 8'd0; end else if (cntw == 24 'h0cb735)begin // end else if (cntw == 24 'h000ccc)begin cntw <= 24 'h000000;
end else begin cntw <= cntw + 1'b1; case (next) 8'd0 : if ( cntw == 24 'd50000 ) begin // all_0 & 50ms_wait rs_r <= 1'b0; rw_r <= 1'b0; en_r <= 1'b0; tsw <= 8'h0; cntw <= 24'h000000; next <= 8'd1; end 8'd1 : if ( cntw == 24 'd1 ) begin //8bit_mode en_r <= 1'b1; tsw <= 8'h30; cntw <= 24'h00; next <= 8'd2; end 8'd2 : if ( cntw == 24 'd1 ) begin //en_hold_1us en_r <= 1'b0; cntw <= 24'h00; next <= 8'd3; end 8'd3 : if ( cntw == 24 'd5000 ) begin //8bit_mode & 5ms_wait en_r <= 1'b1; tsw <= 8'h30; cntw <= 24'h00; next <= 8'd4; end 8'd4 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd5; end 8'd5 : if ( cntw == 24 'd1000 ) begin //8bit_mode & 1ms_wait en_r <= 1'b1; tsw <= 8'h30; cntw <= 24'h00; next <= 8'd6; end 8'd6 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd7; end 8'd7 : if ( cntw == 24 'd5000 ) begin //Function set(8bit_mode & 2disp) & 5ms_wait en_r <= 1'b1; tsw <= 8'h38; cntw <= 24'h00; next <= 8'd8; end 8'd8 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd9; end 8'd9 : if ( cntw == 24 'd1000 ) begin //disp_clear en_r <= 1'b1; tsw <= 8'h01; cntw <= 24'h00; next <= 8'd10; end 8'd10 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd11; end 8'd11 : if ( cntw == 24 'd2000 ) begin //entrymode_on en_r <= 1'b1; tsw <= 8'h06; cntw <= 24'h00; next <= 8'd12; end 8'd12 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd13; end 8'd13 : if ( cntw == 24 'd1000 ) begin //disp_on & cursor_on & blink_on en_r <= 1'b1; tsw <= 8'h0F; cntw <= 24'h00; next <= 8'd14; end 8'd14 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd15; end 8'd15 : if ( cntw == 24 'd500 ) begin //rs_enb rs_r <= 1'b1; cntw <= 24'h00; next <= 8'd16; end 8'd16 : if ( cntw == 24 'd1 ) begin //character_out w en_r <= 1'b1; tsw <= mode_lcd_disp[127:120]; cntw <= 24'h00; next <= 8'd17; end 8'd17 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd18; end 8'd18 : if ( cntw == 24 'd500 ) begin //character_out r en_r <= 1'b1; tsw <= mode_lcd_disp[119:112]; cntw <= 24'h00; next <= 8'd19; end 8'd19 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd20; end 8'd20 : if ( cntw == 24 'd500 ) begin //character_out r en_r <= 1'b1; tsw <= mode_lcd_disp[111:104]; cntw <= 24'h00; next <= 8'd21; end 8'd21 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd22; end 8'd22 : if ( cntw == 24 'd500 ) begin //character_out space en_r <= 1'b1; tsw <= mode_lcd_disp[103:96]; cntw <= 24'h00; next <= 8'd23; end 8'd23 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd24; end 8'd24 : if ( cntw == 24 'd500 ) begin //character_out en_r <= 1'b1; tsw <= mode_lcd_disp[95:88]; cntw <= 24'h00; next <= 8'd25; end 8'd25 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd26; end 8'd26 : if ( cntw == 24 'd500 ) begin //character_out c en_r <= 1'b1; tsw <= mode_lcd_disp[87:80]; cntw <= 24'h00; next <= 8'd27; end 8'd27 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd28; end 8'd28 : if ( cntw == 24 'd500 ) begin //character_out o en_r <= 1'b1; tsw <= mode_lcd_disp[79:72]; cntw <= 24'h00; next <= 8'd29; end 8'd29 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd30; end 8'd30 : if ( cntw == 24 'd500 ) begin //character_out u en_r <= 1'b1; tsw <= mode_lcd_disp[71:64]; cntw <= 24'h00; next <= 8'd31; end 8'd31 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd32; end 8'd32 : if ( cntw == 24 'd500 ) begin //character_out n en_r <= 1'b1; tsw <= mode_lcd_disp[63:56]; cntw <= 24'h00; next <= 8'd33; end 8'd33 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd34; end 8'd34 : if ( cntw == 24 'd500 ) begin //character_out t en_r <= 1'b1; tsw <= mode_lcd_disp[55:48]; cntw <= 24'h00; next <= 8'd35; end 8'd35 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd36; end 8'd36 : if ( cntw == 24 'd500 ) begin //character_out 0 en_r <= 1'b1; tsw <= mode_lcd_disp[47:40]; cntw <= 24'h00; next <= 8'd37; end 8'd37 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd38; end 8'd38 : if ( cntw == 24 'd500 ) begin //character_out x en_r <= 1'b1; tsw <= mode_lcd_disp[39:32]; cntw <= 24'h00; next <= 8'd39; end 8'd39 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd40; end 8'd40 : if ( cntw == 24 'd500 ) begin //character_out 0 en_r <= 1'b1; tsw <= mode_lcd_disp[31:24]; cntw <= 24'h00; next <= 8'd41; end 8'd41 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd42; end 8'd42 : if ( cntw == 24 'd500 ) begin //character_out 6 en_r <= 1'b1; tsw <= mode_lcd_disp[23:16]; cntw <= 24'h00; next <= 8'd43; end 8'd43 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd44; end 8'd44 : if ( cntw == 24 'd500 ) begin //character_out 0 en_r <= 1'b1; // tsw <= mode_lcd_disp[15:8]; tsw<=chara_datain[15:8]; cntw <= 24'h00; next <= 8'd45; end 8'd45 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd46; end 8'd46 : if ( cntw == 24 'd500 ) begin //character_out 1 en_r <= 1'b1; // tsw <= mode_lcd_disp[7:0]; tsw<=chara_datain[7:0]; cntw <= 24'h00; next <= 8'd47; end 8'd47 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; rs_r <= 1'b0; next <= 8'd48; end //2nd column start 8'd48 : if ( cntw == 24 'd500 ) begin ////////////////////character_out 2column selected 0x40 1rst en_r <= 1'b1; tsw <= 8'hc0; cntw <= 24'h00; next <= 8'd49; end 8'd49 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; rs_r <= 1'b1; next <= 8'd50; end 8'd50 : if ( cntw == 24 'd500 ) begin //character_out A en_r <= 1'b1; // tsw <= 8'h20; // tsw <= 8'h31; tsw <= 8'h41; cntw <= 24'h00; next <= 8'd51; end 8'd51 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd52; end 8'd52 : if ( cntw == 24 'd500 ) begin //character_out d en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h64; cntw <= 24'h00; next <= 8'd53; end 8'd53 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd54; end 8'd54 : if ( cntw == 24 'd500 ) begin //character_out r en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h72; cntw <= 24'h00; next <= 8'd55; end 8'd55 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd56; end 8'd56 : if ( cntw == 24 'd500 ) begin //character_out space en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h20; cntw <= 24'h00; next <= 8'd57; end 8'd57 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd58; end 8'd58 : if ( cntw == 24 'd500 ) begin //character_out chara_addrs4[15:8] en_r <= 1'b1; // tsw <= 8'h20; tsw <= chara_addrs4[15:8]; cntw <= 24'h00; next <= 8'd59; end 8'd59 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd60; end 8'd60 : if ( cntw == 24 'd500 ) begin //character_out chara_addrs4[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw <= chara_addrs4[7:0]; cntw <= 24'h00; next <= 8'd61; end 8'd61 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd62; end 8'd62 : if ( cntw == 24 'd500 ) begin //character_out chara_addrs3[15:8] en_r <= 1'b1; // tsw <= 8'h20; tsw <= chara_addrs3[15:8]; cntw <= 24'h00; next <= 8'd63; end 8'd63 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd64; end 8'd64 : if ( cntw == 24 'd500 ) begin //character_out chara_addrs3[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw <= chara_addrs3[7:0]; cntw <= 24'h00; next <= 8'd65; end 8'd65 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd66; end 8'd66 : if ( cntw == 24 'd500 ) begin //character_out chara_addrs2[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw <= chara_addrs2[7:0]; cntw <= 24'h00; next <= 8'd67; end 8'd67 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd68; end 8'd68 : if ( cntw == 24 'd500 ) begin //character_out chara_addrs1[15:8] en_r <= 1'b1; // tsw <= 8'h32; tsw <= chara_addrs1[15:8]; cntw <= 24'h00; next <= 8'd69; end 8'd69 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd70; end 8'd70 : if ( cntw == 24 'd500 ) begin //character_out chara_addrs1[7:0] en_r <= 1'b1; // tsw <= 8'h31; tsw <= chara_addrs1[7:0]; cntw <= 24'h00; next <= 8'd71; end 8'd71 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd72; end 8'd72 : if ( cntw == 24 'd500 ) begin //character_out space en_r <= 1'b1; tsw <= 8'h20; cntw <= 24'h00; next <= 8'd73; end 8'd73 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd74; end 8'd74 : if ( cntw == 24 'd500 ) begin //character_out 0 en_r <= 1'b1; tsw <= 8'h30; // tsw <= character_hex4; cntw <= 24'h00; next <= 8'd75; end 8'd75 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd76; end 8'd76 : if ( cntw == 24 'd500 ) begin //character_out x en_r <= 1'b1; tsw <= 8'h78; // tsw <= character_hex3; cntw <= 24'h00; next <= 8'd77; end 8'd77 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd78; end 8'd78 : if ( cntw == 24 'd500 ) begin //character_out chara_data1[15:8] en_r <= 1'b1; // tsw <= 8'h45; tsw <= chara_data1[15:8]; cntw <= 24'h00; next <= 8'd79; end 8'd79 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd80; end 8'd80 : if ( cntw == 24 'd500 ) begin //character_out chara_data1[7:0] en_r <= 1'b1; // tsw <= 8'h46; tsw <= chara_data1[7:0]; cntw <= 24'h00; next <= 8'd81; end 8'd81 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd83; // next <= 8'd94; end /* 8'd82 : if ( cntw == 24 'd500 ) begin rw_r <= 1'b0; rs_r <= 1'b0; en_r <= 1'b0; cntw <= 24'h00; next <= 8'h83; //8'hxx end 8'd83 : if ( cntw == 24 'd500 ) begin en_r <= 1'b0; cntw <= 24'h00; rs_r <= 1'b0; // next <= 8'd84; next <= 8'd84; //10/28 end 8'd84 : if ( cntw == 24 'd500 ) begin //character_out 2column selected 0x40 update en_r <= 1'b1; tsw <= 8'hc0; // tsw <= 8'hcc; cntw <= 24'h00; next <= 8'd85; end 8'd85 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; rs_r <= 1'b1; next <= 8'd86; end 8'd86 : if ( cntw == 24 'd500 ) begin //character_out A en_r <= 1'b1; // tsw <= 8'h20; // tsw <= 8'h31; tsw <= 8'h41; cntw <= 24'h00; next <= 8'd87; end 8'd87 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd88; end 8'd88 : if ( cntw == 24 'd500 ) begin //character_out d en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h64; cntw <= 24'h00; next <= 8'd89; end 8'd89 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd90; end 8'd90 : if ( cntw == 24 'd500 ) begin //character_out r en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h72; cntw <= 24'h00; next <= 8'd91; end 8'd91 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd92; end 8'd92 : if ( cntw == 24 'd500 ) begin //character_out space en_r <= 1'b1; // tsw <= 8'h20; tsw <= 8'h20; cntw <= 24'h00; next <= 8'd93; end 8'd93 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd94; end 8'd94 : if ( cntw == 24 'd500 ) begin //character_out chara_addrs4[15:8] en_r <= 1'b1; // tsw <= 8'h20; tsw <= chara_addrs4[15:8]; cntw <= 24'h00; next <= 8'd95; end 8'd95 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd96; end 8'd96 : if ( cntw == 24 'd500 ) begin //character_out chara_addrs4[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw <= chara_addrs4[7:0]; cntw <= 24'h00; next <= 8'd97; end 8'd97 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd98; end 8'd98 : if ( cntw == 24 'd500 ) begin //character_out chara_addrs3[15:8] en_r <= 1'b1; // tsw <= 8'h20; tsw <= chara_addrs3[15:8]; cntw <= 24'h00; next <= 8'd99; end 8'd99 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd100; end 8'd100 : if ( cntw == 24 'd500 ) begin //character_out chara_addrs3[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw <= chara_addrs3[7:0]; cntw <= 24'h00; next <= 8'd101; end 8'd101 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd102; end 8'd102 : if ( cntw == 24 'd500 ) begin //character_out chara_addrs2[7:0] en_r <= 1'b1; // tsw <= 8'h20; tsw <= chara_addrs2[7:0]; cntw <= 24'h00; next <= 8'd103; end 8'd103 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd104; end 8'd104 : if ( cntw == 24 'd500 ) begin //character_out chara_addrs1[15:8] en_r <= 1'b1; // tsw <= 8'h32; tsw <= chara_addrs1[15:8]; cntw <= 24'h00; next <= 8'd105; end 8'd105 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd106; end 8'd106 : if ( cntw == 24 'd500 ) begin //character_out chara_addrs1[7:0] en_r <= 1'b1; // tsw <= 8'h31; tsw <= chara_addrs1[7:0]; cntw <= 24'h00; next <= 8'd107; end 8'd107 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd108; end 8'd108 : if ( cntw == 24 'd500 ) begin //character_out space en_r <= 1'b1; tsw <= 8'h20; cntw <= 24'h00; next <= 8'd109; end 8'd109 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd110; end 8'd110 : if ( cntw == 24 'd500 ) begin //character_out 0 en_r <= 1'b1; tsw <= 8'h30; // tsw <= character_hex4; cntw <= 24'h00; next <= 8'd111; end 8'd111 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd112; end 8'd112 : if ( cntw == 24 'd500 ) begin //character_out x en_r <= 1'b1; tsw <= 8'h78; // tsw <= character_hex3; cntw <= 24'h00; next <= 8'd113; end 8'd113 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd114; end 8'd114 : if ( cntw == 24 'd500 ) begin //character_out chara_data1[15:8] en_r <= 1'b1; // tsw <= 8'h45; tsw <= chara_data1[15:8]; cntw <= 24'h00; next <= 8'd115; end 8'd115 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; next <= 8'd116; end 8'd116 : if ( cntw == 24 'd500 ) begin //character_out chara_data1[7:0] en_r <= 1'b1; // tsw <= 8'h46; tsw <= chara_data1[7:0]; cntw <= 24'h00; next <= 8'd117; end 8'd117 : if ( cntw == 24 'd1 ) begin en_r <= 1'b0; cntw <= 24'h00; rs_r<=1'b0;//10/31 next <= 8'd118; // next <= 8'd94; end /* 8'd82 : if ( cntw == 24 'd500 ) begin rw_r <= 1'b0; rs_r <= 1'b0; en_r <= 1'b0; cntw <= 24'h00; next <= 8'h83; //8'hxx end */ /*8'd118 : if ( cntw == 24 'd500 ) begin en_r <= 1'b0; cntw <= 24'h00; rs_r <= 1'b0; // next <= 8'd84; next <= 8'd119; //10/28 end 8'd118 : if ( cntw == 24 'd500 ) begin //character_out 1column selected 0x00 en_r <= 1'b1; // tsw <= 8'hc0; tsw <= 8'h80; cntw <= 24'h00; next <= 8'd119; end 8'd119 : if ( cntw == 24 'd500 ) begin rw_r <= 1'b0; rs_r <= 1'b0; en_r <= 1'b0; cntw <= 24'h00; next <=8'd120; end 8'd120:if(cntw==24'd1 )begin//&& CUR !=4'b1000)begin next <= 10'd15;//83 //15 //end else begin // next <=8'd15; end endcase end end */
assign db = tsw; assign rw = rw_r; assign en = en_r; assign rs = rs_r;
endmodule