// VGA signal
`define VGACOLOR 7:0

// LCD signal
`define LCDDATA 3:0
`define LCDDATA_RSRW     5:0
`define LCDINITIALCOUNTER 19:0
`define LCDINITIALSTATE  2:0
`define LCDPULSE  3:0
`define LCDCOMMAND 9:0
`define LCDSTATE   3:0
`define LCDBUFFERCOUNTER 1:0
`define LCDTRANSFERSTATUS 2:0
`define LCDTRANSFERCOUNTER 16:0

`define LCD_INIT_COUNTER_ZERO 20'd0
`define LCD_INIT_COUNTER_ONE  20'd1
`define LCD_INIT_COUNTER_FIRST   20'd749_999
`define LCD_INIT_COUNTER_SECOND  20'd204_999
`define LCD_INIT_COUNTER_THIRD   20'd4_999
`define LCD_INIT_COUNTER_FOURTH  20'd1_999
`define LCD_INIT_COUNTER_FIFTH   20'd1_999
`define LCD_INIT_STATUS_ZERO  3'd0
`define LCD_INIT_STATUS_ONE   3'd1
`define LCD_INIT_STATUS_TWO   3'd2
`define LCD_INIT_STATUS_THREE 3'd3
`define LCD_INIT_STATUS_FOUR  3'd4

`define LCD_DATA_ZERO   4'd0
`define LCD_DATA_ONE    4'd1
`define LCD_DATA_TWO    4'd2
`define LCD_DATA_THREE  4'd3
`define LCD_DATA_RSRW_ZERO 6'd0

`define LCD_PULSE_ZERO  4'd0
`define LCD_PULSE_ONE   4'd1
`define LCD_PULSE_START 4'd1
`define LCD_PULSE_END   4'd12
`define LCD_PULSE_MAX   4'd14

`define LCD_COMMAND_ZERO 10'd0
`define LCD_COMMAND_FUNCTION_SET       10'b00_0010_1000
`define LCD_COMMAND_RETURN_CURSOR_HOME 10'b00_0000_0010
`define LCD_COMMAND_CLEAR_DISPLAY      10'b00_0000_0001

`define LCD_ST_ZERO     4'd0
`define LCD_ST_ONE      4'd1
`define LCD_ST_TWO      4'd2
`define LCD_ST_THREE    4'd3
`define LCD_ST_FOUR     4'd4
`define LCD_ST_FIVE     4'd5
`define LCD_ST_SIX      4'd6
`define LCD_ST_SEVEN    4'd7
`define LCD_ST_EIGHT    4'd8
`define LCD_ST_NINE     4'd9
`define LCD_ST_TEN      4'd10
`define LCD_ST_ELEVEN   4'd11
`define LCD_ST_TWELVE   4'd12
`define LCD_ST_THIRTEEN 4'd13
`define LCD_ST_FOURTEEN 4'd14
`define LCD_ST_FIFTEEN  4'd15

`define LCD_BUFFER_COUNTER_ZERO 2'd0
`define LCD_BUFFER_COUNTER_ONE  2'd1
`define LCD_BUFFER_COUNTER_MAX  2'd3

`define LCD_TRANSFER_STATUS_ZERO   3'd0
`define LCD_TRANSFER_STATUS_ONE    3'd1
`define LCD_TRANSFER_STATUS_TWO    3'd2
`define LCD_TRANSFER_STATUS_THREE  3'd3
`define LCD_TRANSFER_STATUS_FOUR   3'd4
`define LCD_TRANSFER_STATUS_FIVE   3'd5

`define LCD_TRANSFER_COUNTER_ZERO   17'd0
`define LCD_TRANSFER_COUNTER_ONE    17'd1
`define LCD_TRANSFER_COUNTER_1US    17'd65    // 50 + 16
`define LCD_TRANSFER_COUNTER_1_64MS 17'd82_015 // 82,000 + 16
`define LCD_TRANSFER_COUNTER_40US   17'd2_015 // 2,000 + 16

// RESET Signal 
`define ENABLE_ 1'b0

// standard definition
`define HIGH 1'b1
`define LOW  1'b0

// COLOR reset
`define COLOR_ZERO 8'd0
