03-05-2019 12:57 AM
I come to ask for some help, because something is driving me crazy.
I have been trying to configure an xfft block on a Zynq Ultrascale+.
I did a quick SW test to verify everythig works fine, and to understand how config params are sent via AXI_S.
Everything is apparently working.
I configured the block with this params:
- 1 Channel
- Transform Length 4096
- TCF - 250 MHz
- Pipelined, Streaming I/O
- Run Time COnfiguration Transform Length
- Data Format: Fixed Point
- I: 16 bits, Q: 16 bits
- Natural Order
- Real Time
- 5 Stages using BR for Data and Phase Factors.
And my truncation values (AXIS Config) is [0 0 0 1 1 1] -> (Nfft = 2^12)
So trying with this config (And many others), I have been comparing xfft Xilinx block, matlab fft() and xfft C Model, and these are the results:
My testing signal is a simple real tone (A*sin(wt)), and as you can see, lower freqs using the xfft block are a mess and completely unnacceptable for my purpose.
Not only assymmetrical, but different between C Model and xfft RTL block.
Any idea of what could be causing this, lets say, "thing"?
Any idea is appreciated. Thanks!
03-13-2019 01:42 AM
The design for this test is nothing but the xfft block and 2 dmas to get dataout and into the zynq.
It seems to be a problem with pipeline truncation. Apparently not every trunc value is allowed.
If I set trunc values to [2 2 2 2 2 2], mistaken values are reduced down to -80 dBm.
I guess it's enough, but any other truncation value gets this error :/