This project was a group project that was completed for my Principles of Electronic Design Automation class in the winter of 2002/2003. The team is (from left to right): Matt Wheeler, Professor Jeff Lillie, Nathan Curtis, Dave Steenburgh, and Justin Davis.

First, a little background. Professor Lillie managed to get ahold of this Sharp LCD Display. I don't remember the exact display model anymore. The four of us were excused from the normal labs for the quarter so that we could work on getting a display driver written in VHDL and implemented in an FPGA as a proof of concept. We used a board that is normally used for Embedded Systems Design III, but the only component we used was the FPGA. As a result of our work, there are a couple of classes that work with this display.

In this picture, the bench setup that we used is shown. A Tektronix logic analyzer, HP Oscilloscope (off to the left), the circuit board and a laptop was all we needed. Shown on the laptop screen is the very simple image that we coded in VHDL (as RGB sets) to be shown on the display. This was the easiest way to show that we had full control of the display.

The first test was to make sure that we could get something with an interesting color spectrum shown on the screen. I wrote the code that generated this spectrum using counters for red, green and blue that incremented at different rates. I also wrote a java program that showed what the image should look like to make sure we had the right thing up.

The next test was to make sure we had the display orientation correct. Dave wrote the code that produced this image, and in this way we were able to make sure that the corner that we thought was the upper left was indeed the upper left. This also let us notice an interesting effect of the technology. When looking closely at the display on the right edge where the color shifts from red to blue, it is quite easy to see that each pixel is merely made up of red, green and blue elements, and that each pixel is set to a specific brightness depending on its value in the color for that pixel.

Our final task was to get an interesting image to show up on the display. It would have been nice to have some external device send a JPEG image to the display, but we did not have time to implement that, so we settled with this. A few bugs were discovered when we started showing this image. First, we had skewed smileys that were caused by a bug in the image generation code. Our next challenge was problems with our panel sync code that generated both vertical and horizontal problems (the first column was getting printed twice, and there was a row missing from the top).

This project was a lot of fun, and I think went quite well. All of the pictures that were taken for this project can be viewed here.