Overview
This is a very simple design that initializes and displays 32-bit
hexadecimal numbers on the display. Especially on this board that
has few user LEDs, this design allows to ouput additional information
that can be used to debug a design.
Design description
There are three modules in this design.
lcd_display simplifies the interface to the LCD by taking
care of generating the correct signals to the LCD with proper
timing. It waits for the self-initialization process of the
LCD to finish and then accepts user input. The user indicates
if the input data is a command or a write and the delay to
wait after the input data is given to the LCD. This way the
user does not need to take care of any timing and is advised
of the completion of the command with a signal. Note also that
this module presents an 8-bit interface and takes care of the
conversion to the 4-bit LCD interface. To do so it
writes separately the upper and lower nibbles and generates
the correct LCD_E pulse.
lcd_write_number
is a module that initializes the LCD and then waits for a
32-bit number input from a user to display in hexadecimal
representation.
Finally, the test
module
lcd_write_number_test
uses the lcd_write_number module to display a running 32-bit
counter on the display.
Design files
spartan_lcd.zip