OpenCores
URL https://opencores.org/ocsvn/lcd_block/lcd_block/trunk

Subversion Repositories lcd_block

[/] [lcd_block/] [trunk/] [hdl/] [iseProject/] [lcd_controller.v] - Diff between revs 5 and 6

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 5 Rev 6
Line 24... Line 24...
        localparam lcd_init_write_03_03 = 7;
        localparam lcd_init_write_03_03 = 7;
        localparam lcd_init_wait_40us = 8;
        localparam lcd_init_wait_40us = 8;
        localparam lcd_init_write_02 = 9;
        localparam lcd_init_write_02 = 9;
        localparam lcd_init_wait_50us = 10;
        localparam lcd_init_wait_50us = 10;
        localparam lcd_init_strobe = 11;
        localparam lcd_init_strobe = 11;
        reg [3:0] lcd_init_states, lcd_init_state_next;
        reg [3:0] lcd_init_states, lcd_init_state_next; // Declare two variables of 4 bits to hold the FSM states
        reg [19:0] counter_wait_lcd_init;
        reg [19:0] counter_wait_lcd_init;
        reg [3:0] counter_wait_strobe_lcd_init;
        reg [7:0] counter_wait_strobe_lcd_init;
        reg [19:0] time_wait_lcd_init;
        reg [19:0] time_wait_lcd_init;
        reg [3:0] lcd_init_data_out;
        reg [3:0] lcd_init_data_out;  // FSM output LCD_DATA
        reg lcd_init_e_out;
        reg lcd_init_e_out;           // FSM output LCD_E
 
        reg lcd_init_done;
 
 
 
        // States for FSM that send data to LCD
 
        localparam lcd_data_rst = 1;
 
        localparam lcd_data_wait = 2;
 
        localparam lcd_data_wr_nibble_high = 3;
 
        localparam lcd_data_wr_nibble_low = 4;
 
        localparam lcd_data_strobe = 5;
 
        reg [3:0] lcd_data_states, lcd_data_state_next;  // Declare two variables of 4 bits to hold the FSM states
 
        reg [3:0] lcd_data_data_out;     // FSM output LCD_DATA
 
        reg lcd_data_e_out;                             // FSM output LCD_E
 
 
 
 
        /*
        /*
                Initialize LCD...
                Initialize LCD...
        */
        */
Line 42... Line 53...
                if (rst)        // Reset synchronous
                if (rst)        // Reset synchronous
                        begin
                        begin
                                lcd_init_states <= lcd_init_rst;
                                lcd_init_states <= lcd_init_rst;
                                counter_wait_lcd_init <= 0;
                                counter_wait_lcd_init <= 0;
                                counter_wait_strobe_lcd_init <= 0;
                                counter_wait_strobe_lcd_init <= 0;
 
                                lcd_init_e_out <= 0;
 
                                lcd_init_done <= 0;
                        end
                        end
                else
                else
                        begin
                        begin
                                case (lcd_init_states)
                                case (lcd_init_states)
                                        lcd_init_rst:
                                        lcd_init_rst:
Line 131... Line 144...
 
 
                                        lcd_init_wait_50us:
                                        lcd_init_wait_50us:
                                                begin
                                                begin
                                                        time_wait_lcd_init <= 100000;   // Wait for 100us
                                                        time_wait_lcd_init <= 100000;   // Wait for 100us
                                                        lcd_init_states <= lcd_init_wait;
                                                        lcd_init_states <= lcd_init_wait;
                                                        lcd_init_state_next <= lcd_init_write_02;
                                                        lcd_init_state_next <= lcd_init_wait_50us;
 
                                                        lcd_init_done <= 1;
                                                end
                                                end
                                endcase;
                                endcase;
                        end;
                        end;
        end;
        end;
 
 
        assign lcd_e = lcd_init_e_out;
        assign lcd_e = lcd_init_e_out;
        assign lcd_nibble = lcd_init_data_out;
        assign lcd_nibble = lcd_init_data_out;
 
 
 
        /*
 
                FSM that deals to send data to the LCD (nibble High + nibble Low)
 
        */
 
        always @ (posedge clk)
 
        begin
 
                if (~lcd_init_done)
 
                        begin
 
 
 
                        end
 
        end;
 
 
endmodule
endmodule
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.