DSP_fir_sym
4-53 C64x+ DSPLIB Reference
y0 += (short) (x[j + i] + x[j + 2 * nh − i]) * h[i];
y0 += x[j + nh] * h[nh];
r[j] = (int) (y0 >> s);
}
}
Special Requirements
-nh must be a multiple of 8. The number of original symmetric coefficients
is 2*nh+1. Only half (nh+1) are required.
-nr must be a multiple of 4.
-x[ ] and h[ ] must be double-word aligned.
-r[ ] must be word aligned.
Implementation Notes
-Bank Conflicts: No bank conflicts occur.
-Interruptibility: The code is interruptible.
-The load double-word instruction is used to simultaneously load four
values in a single clock cycle.
-The inner loop is unrolled eight times.
Benchmarks Cycles (10 * nh/8 + 15) * nr/4 + 26
Codesize 664 bytes