AnsweredAssumed Answered

SHARC 21489 performance when using scalar version of fir

Question asked by jykke on Jun 11, 2013
Latest reply on Jun 24, 2013 by Harshit.Gaharwar



I need to perform very low-latency calculations using long FIRs on the 21489 EZ-kit. For this, I'm using the scalar version of the fir-function, defined in the filters.h-file. Evaluating 1024-tap stereo filters (i.e. two calls to fir-function) still goes fine at 48 kHz sampling rate, but when I increase the filter length to 2048, I get an output which sounds as it would be operating at a lower sampling rate. Performing the filtering in mono (just one fir-call) still works ok for 2048 taps. When I further increase the filter length to 4096 (for stereo), I get no sound at all.


I suspect that the problem is that the fir-function doesn't finish in time before the next interrupt occurs due to a new incoming sample from the 1939-codec. The filters themselves should be ok, the longer filters are just zero-padded versions of the 1024-tap filter (in last-sample-first-format as they should be).


My questions are the following:

1) Is it realistic to assume that the 21489 is running out of processing power for the 2048-tap stereo filters, or am I doing something wrong?


2) Have I understood correctly that the FIR accelerators are in fact not used when running the scalar version of fir (i.e. one-sample-at-a-time -processing)?


3) I might consider using the vector version of fir with a really small window, e.g. 2 or 4 samples, should I expect a major performance upgrade (due to fir-accelerators, SIMD-enablement, or other such features)?


Many thanks,