An effective approach in generating efficient software for digital signal processors
This thesis presents the development process and implementation procedure of a code-generator software utility that can be used to generate optimized assembly programs for implementing adaptive filters on a digital signal processor (DSP) based system. The code generator supports three adaptive filter structures and up to eight adaptation algorithms. A brief discussion of filter structures and algorithms is also presented. In order to validate the code generator's output, test results of a number of adaptive filter programs with different filter structures and adaptation algorithms are given. These test results are obtained by running the programs on a software simulator and in real-time using a personal-computer-based hardware emulator. A C compiler can be used to compile the C source code into the assembly program for the specific DSP. However, from our study we found that the output of the C compiler is not as efficient and compact as the code generator's output. We include an efficiency analysis of the assembly programs produced by the code generator and the C compiler to sustain the use of code-generator utility. We have developed a code generator for AT&T's DSP32. We chose DSP32 based on the consideration of its fast execution speed and its floating-point arithmetic capability. However, the principles can be applied to any other DSP. In fact, after the completion of the code generator for DSP32, code generators for ADSP2100, DSP56000, TMS320C25, and TMS320C30 have been successfully developed in a short period of time based on the code-generator structure we have already had.