We have recently added several Analog Devices EZ-KIT Lite boards based on the ADSP-2181 processor to our junior-level DSP Lab at Rutgers. The lab is a 14-week one-credit course that accompanies a three-credit DSP course based on the Introduction to Signal Processing text and is currently divided between sixty percent software and forty percent hardware experiments. (This course and lab are followed in the senior year by more advanced project- and lab-based DSP courses.)
A number of hardware experiments have been developed for this lab illustrating the concrete implementation on the ADSP-2181 chip of various DSP algorithms from the above text. The experiments include sampling and quantization; the circular buffer implementation of delays, FIR, and IIR filters; the canceling of periodic interference with notch filters; wavetable generators; and several audio effects, such as comb filters, flangers and phasers, plain, allpass, and lowpass reverberators, Schroeder's reverberator, and several multi-tap, multi-delay, and stereo-delay type effects, as well as the Karplus-Strong string algorithm.
Our aim in these experiments is not to necessarily write the most efficient assembly code, but rather to show beginning DSP students how straightforward and fun it is to program a DSP chip and hear the algorithms in action. Thus, we have at times sacrificed efficiency for clarity.
To facilitate the programming of these applications, we have written a number of assembly code macros that closely parallel some of the C routines in the text, such as cdelay and tap, and allow the manipulation of circular delay-line buffers and the building up of more complex block diagrams. Our use of circular buffers and pointers is identical to that in the text (e.g., filter coefficients and states are stored in forward order and a delay is implemented by decrementing the buffer pointer.) A number of DOS utilities are also included, such as decimal-to-hex format converters and wavetable generators.
The macros and DOS utilities are contained in pkzip format (version 2.04g) in the file macros.zip. The experiments are in the file examples.zip. To install them, create two subdirectories, macros and examples, under the EZ-KIT Lite directory, c:\adi_dsp, and pkunzip the files in these subdirectories. (Use the option pkunzip -d in unzipping examples.zip to preserve its subdirectory structure.) These files can also be obtained via anonymous ftp from ece.rutgers.edu in the directory pub/sjo/ezkitl.
All of the included programs are based on the talkthru example program given in the EZ-KIT Lite Reference Manual. They have been compiled with the architecture file ezkit_lt.ach. All the processor and codec initialization details have been hidden away in two include-files, begin.dsp and end.dsp, simplifying the structure of the programs and allowing the students to concentrate on the translation of their sample processing algorithm to assembly code.
The lab manual is available in PDF format in man.pdf. It contains the listings of all the programs as well as suggested experiments for the students. Any feedback from readers is welcome.
Sophocles J. Orfanidis
Department of Electrical and Computer Engineering
Rutgers University, 94 Brett Road, Piscataway, NJ 08854-8058