I am a software engineer in 3d graphics by day so please bear with any obvious mistakes. I am looking for a project that I can use my software knowledge with in hardware and am thinking of creating a frame buffer and lcd to display it. I have looked around and think I can accomplish it with this fpga:


And this LCD:


I think they have:

480 x 272 = 130560 pixels on the screen

130560 x 24-bit = 3133440 bits for the frame buffer

67108864 bits of sdram to store the frame buffer

So I think I'm ok there. And I think can run the fpga at 9 MHz (that the lcd needs) because it has "digital clock managers" to change from 12 MHz. Which I believe I will need 3133440 Hz to write the entire buffer. I think I can also get input from the usb for writing the pixel colours to the buffer.

The fpga can output either 5, 3.3 or 1.2 v for logic, but the lcd requires 2.5v however in the manual it says "0 ~ +4.5"... So could I use the fpga logic voltage directly?

I am learning as I am doing this so I am going to make a lot of mistakes, but is there anything obvious I am missing or am I good to get our my breadboard and have some fun?


  • \$\begingroup\$ I'm confused how you expect to use USB to transfer data. It appears USB on that board goes to a uC, which while open source only appears to connect to the FPGA's JTAG and programming pins... ? \$\endgroup\$ – darron Jan 2 '12 at 15:50

If you got a board which had a VGA connector (or rigged one up, with some resistors) you might find it simpler to start by driving an LCD with that interface, and then work up to a bare one.

Block memory inside an FPGA tends to be easier to work with than SDRAM, and is dual port which simplifies access, but of course it's more limited. Still, it could be worthwhile to start that way and then add the SDRAM complexity. A higher gate count FPGA would typically have more block ram, too.

Of course you can start by drawing some bars on the screen just using a state machine or counter without any frame buffer at all.

An oscilloscope would be a huge help.

Many LCDs actually aren't that picky about frequency, so while you can use the clock generators to get it just right, you may not need to.

An issue not to overlook is the practical task of securely cabling the LCD to the FPGA board - with 24 bit color there's a bit of work there unless you really luck out and you can just plug one into the other.

  • \$\begingroup\$ Wow, thanks for the fast reply! There is actually an example vga project using exactly what you describe on the website and I am going to try that first. ( devbisme.webfactional.com/blogs/devbisme/2011/06/02/… ) Ah I am guessing you mean creating the memory out of the gates in the fpga, I see. I will look into an oscilloscope. As for connecting the lcd to my breadboard, I think something like this would work (Correct me if I'm wrong) newhavendisplay.com/… \$\endgroup\$ – ashleysmithgpu Dec 31 '11 at 2:45
  • \$\begingroup\$ Modern FPGA's aren't just logic and flip flops, they have dual-port blocks RAMs inside as well for memories that are too large to make from the logic/flops, though obviously smaller than your external SDRAM. The number of block rams is usually in proportion to the number of gates. That adapter might work, but you still need to connect from there to the FPGA board. \$\endgroup\$ – Chris Stratton Dec 31 '11 at 4:43
  • \$\begingroup\$ I'm just going to attach it to a breadboard hopefully. Thanks again! \$\endgroup\$ – ashleysmithgpu Dec 31 '11 at 13:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.