The CDSPLib library is a collection of standard DSP routines and
applications specially designed for fast porting/implementation on the
CDSP family members. Depending on the CDSP customization option, the
library will have variations in the code, while still providing a
number of standard features. The library is modeled in C++ using some
basic objects that simulate the behavior of the arithmetic and
addressing circuits of the CDSP; the specific assembly code for a
processor customization option can be generated via an almost
one-to-one translation of the C++ code.
The CDSPLib C++ Reference Implementation is freely available in the Archives section.
A unique convention has been adopted for (almost) all the input and output vectors involved in the DSP functions: given a number of N samples to be processed, the vectors will have an address range of [-N/2 , +N/2-1]; this means that the definition domain of the input and output data will be centered around Zero.
Because the CDSP is a fixed-point processor, some restrictions are imposed on the input and output data values for each of the DSP functions; each function documents its corresponding limitations. These restrictions guarantee predictable results for the DSP functions; the main effect of these restrictions is to prevent (unexpected) arithmetic overflows and/or underflows during the fixed-point calculations.
The CDSPLib includes Min/Max/Search Functions, the Convolution Product Kernel, FIR, IIR, FFT/iFFT, Adaptive FIR Filters/Echo Canceller, Correlation/Autocorrelation, Viterbi Codec, Vector/Matrix Multiplication, and other functions.