Graphics Accelerator Chip

How often do you watch animated movies, play video games, or run graphical simulations on your computer?  Computer graphics is the science of converting 1’s and 0’s into colored pixels on your screen.  While many applications can do this work entirely on the CPU, high end real-time applications require specialized hardware.

For the final project of EE271: VLSI (Very Large Scale Integration) Systems, we had to increase the performance of a graphics chip to the requested throughput while minimizing chip area and power consumption.  One acceleration technique that we implemented that is easy to visualize is to change the rendering algorithm.  Compare different algorithms in this figure:

Screen Shot 2015-07-01 at 6.05.30 PM

Juan Pineda. 1988. A parallel algorithm for polygon rasterization.

Navigating the stages of this project was very challenging with lots of scary moments and meticulous deliberations. Whenever we attempted to optimize anything, the first step usually broke the system.  But near the end, it felt like a miracle when images rendered properly and quickly.

Screen Shot 2015-07-01 at 7.04.51 PM

One of the images we had to render. He kinda looks like Baymax from the Disney movie.

New Skills:  Graphic acceleration techniques in SystemVerilog and C++

Key Takeaway:  I was inspired when working on this graphics accelerator chip because I felt like I was treading (ok, more like ‘limping’) in the footsteps of my Filipino engineering hero, Dado Banatao.  He started a company around a similar technology.

Explore posts in the same categories: Hardware, Optimization

Leave a comment