Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

- Community Forums
- :
- Forums
- :
- Hardware Development
- :
- AI Engine, DSP IP and Tools
- :
- FFT Output TUSER INDEX Calculation Issues

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

rimshajaved

Visitor

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-17-2020 12:17 AM - edited 04-17-2020 03:05 AM

517 Views

Registered:
02-26-2020

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

1 Solution

Accepted Solutions

vkanchan

Xilinx Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-17-2020 03:21 AM - edited 04-17-2020 03:22 AM

480 Views

Registered:
09-18-2018

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.

4 Replies

vkanchan

Xilinx Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-17-2020 01:53 AM

499 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.

rimshajaved

Visitor

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-17-2020 02:59 AM - edited 04-17-2020 03:02 AM

490 Views

Registered:
02-26-2020

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?

vkanchan

Xilinx Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-17-2020 03:21 AM - edited 04-17-2020 03:22 AM

481 Views

Registered:
09-18-2018

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.

rimshajaved

Visitor

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-17-2020 03:26 AM

473 Views

Registered:
02-26-2020