CS/EE 5710/6710 Project Ideas
The plan for the class project is that every team will design a digital system of some sort and implement it as a VLSI chip to the point where it could be sent off for fabrication. If teams want to fabricate and test their chip they can but thatís not required. What is required is that each project be finished to the point where it could be built. So, the obvious question is Ė what makes a good project? The best projects are those that the team members are actually interested in. That is, rather than build a project because itís a requirement for the class, think of something that is interesting to you and build that! If youíre stuck for interesting ideas, this document will propose some ideas to get you thinking.
One generic idea thatís always popular is to build some sort of processor. A processor makes a great project because itís very clear what the processor is supposed to do: it executes instructions according to some instruction set architecture (ISA). The next question is then Ė what should the instruction set be? That depends on what application you would like your processor to be useful for. Before deciding on a processor ISA, think about an application domain and think about the types of instructions youíd need to support that application. Also think about the type of I/O youíd need to have to make a good processor.
Of course, processors are fun, but there are a gazillion other things you could do that are more specific than a processor. Chips that are built for specific applications are called ASICs for Application Specific Integrated Circuits. These special-purpose chips are everywhere that digital control is called for but a processor is too dramatic. Automotive controllers, cell phone controllers, washing machine controllers, digital camera controllers, etc. are just a very few of the types of things that usually involve ASICs. ASICs can be just about anything that includes a controller (i.e. a finite state machine) and a data path to achieve some specialized computation.
In 2001, everyone in the class built 16bit processors starting with the same instruction set (based on the CR16 from National Semiconductor). In 2002 the projects were: bit-serial FIR filter, digital match filter, 128 channel signal encoder for biomedical stuff, a DES encrypter/decrypter, a Christmas light and sound controller, a floating point unit, a UART, a digital metronome, a 16-bit CORDIC processor, and four different types of 8-bit microprocessors.
Here are some ideas from the Michigan folks who run a very similar VLSI class. They generally have everyone build a processor but have each group tailor their processor to a specific application and add functionality to the processor to support that functionality:
Implantable Cardiac Defibrillator Controller
Home Lighting Controller
Image Processing Controller for Boundary Recognition
FAX Machine Controller
MIDI Processor for Musical Instruments
Encoder for Data File Size Compression
Position Sensing Micro controller for Automobiles
Alarm System Controller
Advanced Cruise Control System
Automobile Thermo Controller
Music Key Shifter
Microwave Oven Controller
Fingerprint Detection Controller
Vending Machine Controllers
Real-Time Image Processor
Caller ID Routing Controller
DSP for Hand-Printed Character Recognition
Heating and Cooling Micro controller
Adaptive Equalization Filter for Cellular Communications
High Precision Motor Controller
Elevator Control System
Automatic Timing System for Swimming Races
Telephone Management System
Automatic Brake System (ABS) Controller
FM Stereo Transmitter