cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
rimshajaved
Visitor
Visitor
516 Views
Registered: ‎02-26-2020

FFT Output TUSER INDEX Calculation Issues

Jump to solution

Sir I am facing a problem in calculating Tuser Index for FFT, I have generated SINE AND COSINE frequency of 4MHz using DDS , How many bits of TUSER Index will I consider, if: 

Point size is N: 4096,  and Sampling Frequency is fs: 100MHz , so that Frequency Resolution is 100M/4096 =24414.0625

The Expected index will be : I = fin/Frequency Resolution = 4M/ 24414=163 =1010 0011 According to pg109-XFFT document , TUSER width is calculated as: log with base 2 (min. point size)  which in my case will be log with base 2(4096) =12

Now if I consider complete 12 bits than it gives a very high frequency, If I consider 6 bits (assuming 6 for cosine and 6 for sine ), than it overflows from expected index.

Can You please help me where I am doing mistake in all this calculation.

Thank you

0 Kudos
1 Solution

Accepted Solutions
vkanchan
Xilinx Employee
Xilinx Employee
479 Views
Registered: ‎09-18-2018

@rimshajaved 

TUSER simply gives the index of all output samples, not only the index at which output is expected. It is just a counter that runs from 0 to 4095 once valid output from FFT starts.

It does not depend on what input is provided.

The TUSER width can be found from the IP GUI implementation tab like in the attached picture.

I suggest to use the example test bench provided by FFT IP to understand what TUSER does.

View solution in original post

FFT_tuser.png
0 Kudos
4 Replies
vkanchan
Xilinx Employee
Xilinx Employee
498 Views
Registered: ‎09-18-2018

Hi @rimshajaved ,

The XK_index field in the TUSER gives the index of output data samples. The FFT output will have 4096 output samples because of 4096-point FFT. So XK_index indicates the index of each output sample from 0 to 4095.

The output from the calculation in the question will be at index 162 (00001010 0010), which is 163rd output sample.

0 Kudos
rimshajaved
Visitor
Visitor
489 Views
Registered: ‎02-26-2020

@vkanchan Thank You for your prompt response.
By your answer may I assume that I dont need to consider whether simple sine or sine and cosine is selected in dds. We simply have to find that particular index? and what about TUSER Index width?

0 Kudos
vkanchan
Xilinx Employee
Xilinx Employee
480 Views
Registered: ‎09-18-2018

@rimshajaved 

TUSER simply gives the index of all output samples, not only the index at which output is expected. It is just a counter that runs from 0 to 4095 once valid output from FFT starts.

It does not depend on what input is provided.

The TUSER width can be found from the IP GUI implementation tab like in the attached picture.

I suggest to use the example test bench provided by FFT IP to understand what TUSER does.

View solution in original post

FFT_tuser.png
0 Kudos
rimshajaved
Visitor
Visitor
472 Views
Registered: ‎02-26-2020
Okay Okay I think I got your point, There might be some other issue due to which I am not getting peak at the expected index
0 Kudos