04-30-2018 02:26 PM
I am trying to implement an object recognition algorithm on Zedboard. I have the C++ and want to accelerate the parts where most computation occurs which is convolution in this case. The kernel is floating floating point starting from 7x7 up to 37x37 incremented by 2 (9x9,11x11 and so on)and it is not separable so I can't use HLS Conv. example code. I have written some different codes but I am not achieving the speed I want. I have decided to use FFT to speed up the process but I can't understand so many input variables and what their means. I have written their explanations below but I can't understand what they are. I have a image size 250x250 and kernel as mentioned above. How am I supposed to configure this?.
status_width | Output status port width. --how many bits this should be and do I have to look for this ?
config_width | Input configuration port width. --how do i decide the width of this?
max_nfft | The size of the FFT data set is specified as 1 << max_nfft. --What is this actually?
has_nfft | Determines if the size of the FFT can be run time configurable. --What is this?
channels | Number of channels
phase_factor_width | Configure the internal phase factor precision.
And also I don't understand the meaning of setSch(0x2AB). What does this actually do?. I have tried to implement my own FFT conv code but it uses a lot of block memory(around %1000). So I have to try this and see how it works. Finallly did anyone implement convolution using FFT or am I the only one who is doing it?
05-08-2018 09:23 PM
I think this post may be best served with an IP forum for the FFT. I will asked the moderators to locate the correct forum and switch this.
The reason is the the FFT used in HLS is simply a connection to the FFT IP provided in Vivado. The HLS tool defines the configuration of that IP, but does not synthesize one from C code as it does your surrounding code. The manual for the FFT is found here:
For example, the status channel width is defined on page 25.
OK, sorry I could not answer the post directly, but let me try and get that reassigned.