Hi,
Dear all:
I'm now trying to test performance of TI DSP C6747.
I found some strange issues:
1) Description of DSPLIB function "DSPF_sp_convol" is very difficult to understand and doesn't pairs with one example.
DSPF_sp_convol (Convolution)
The DSPF_sp_convol kernel convolves input array x with coefficient array h. The result is stored in output array y.
Function void DSPF_sp_convol(const float *x, const float *h, float *restrict y, const short nh,
const short ny)
Parameters x Pointer to input array. Must have ny + nh - 1 elements. Typically contains nh - 1 zero values at the beginning and
end of the array. Must be double word aligned.
h Pointer to coefficient array. Must have nh elements.
y Pointer to output array. Must have ny elements. Must be double word aligned.
nh Length of coefficient array. Must be an even number and greater than 0.
ny Length of input and output arrays. Must be an even number and greater than 0.
I can't understand how to fill input array and output array. You may better to give me a example.
2) Despite of this, I write some test functions to observe performance of this function in both EVM board and C6747 cycle simulator.
Finally I found:
1) For 81*31 float convolution, the final image can works and below is result:
[C674X_0] dsplib_convolution_test cycle = 116621
2) For 4096*8 float convolution, the image would block in some place and trap in dead loop.
So would you please help me to find out why (in simulator or EVM board).
Attached is CCS project file for C6747 which can run in both simulator and EVM board.
Thanks very much.