FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits

LCD addon for DE0

Honored Contributor II

I soldered the 16x2 LCD onto the DE0, it powers. I have a question regarding using it. Everything I am reading about using the LCD with an altera board is on the DE2. Most of it is from a long time ago (2009), and is saying i have to use NOIS II suite. Is this the case for the DE0? It has lcd pin assignments already in it.  


The datasheet that came with the rest of the DE0 says 


"The LCD display Module is built in a LSI controller, the controller has two 8-bit registers, an instructionregister (IR) and a data register (DR). 

The IR stores instruction codes, such as display clear and cursor shift, and address information for display data 

RAM (DDRAM) and character generator (CGRAM). The IR can only be written from the MPU. The DR 

temporarily stores data to be written or read from DDRAM or CGRAM. When address information is 

written into the IR, then data is stored into the DR from DDRAM or CGRAM. By the register selector (RS) 

signal, these two registers can be selected." 


I'm a novice to FPGA's, and am just looking for a place to get started.
0 Kudos
1 Reply
Honored Contributor II

Hello Mattjd, 


I will try to explain an answer to your question as simple as possible: 


Getting an LCD display to work requires that you send some initialization and some data over to the display. 

(Normally you also need some analog voltage to create light intensity to make sure you see what is on the display. I assume you know this.) 


For the control of the LCD you can use the GPIO bus on your demo board. 

To do this with an FPGA without a built in Cpu or an fpga-emulated Cpu (Nios-II processor) is possible but requires study of the LCD and the protocol. What you can do if you want to go this way is study the Arduino libs that are used to control such a display and the data sheets for your LCD. The Nios-II code libs can also be a good source of information. If you are a beginner, do not go this way. 


What you could to do is to use te QSYS tool to create a Nios-II configuration; You can see this as an automatically generated program in VERILOG or VHDL that emulates a processor and is able to control RAM that is on your board or in the fpga and other devices. Depending on the configuration in Qsys it can do all sorts of things. See Altera university tutorials for this.  


To your Nios-II configuration, you can add a component (a kind of driver) from the "altera university program" libraries in Qsys to control an LCD display. (I assume that your display is compatible with the altera one (16x2 character display).) 

Once Qsys has generated this code you go back to Quartus, instantiate your qsys configuration, and connect the interface of the Nios-II program with the LCD pins, the ram, pins, the clock and other devices. 

Compile it and download it to your fpga. 

Once the compiled Verilog/Vhdl program is in the fpga you have a working computer that you can program in C. Using Eclipse, you can write a program in C, debug and download it to the running processor on your board. In this C program you can adress the driver that you added to your Nios configuration to control the display with a C program. 

If you are really new to FPGA's (as i was 1 year ago), there is a very good book by Mr. Pong P. Chu. there you can find the things you need to get you started. 


Best Regards, 

0 Kudos