Forum Discussion

David32's avatar
David32
Icon for Occasional Contributor rankOccasional Contributor
2 years ago
Solved

Unified FFT giving incorrect output

I have simulated the parallel unified FFT and cannot, in any configuration, get it to output sensible signals. On the other hand, the single, normal, unified FFT simulates correctly. In an effort to...
  • LeoFeng's avatar
    12 months ago

    Hi David,

    I've consulted Factory about the function of the parallel FFT IP. Actually, a parallel FFT processes a single FFT instance with high data rate channels.

    For example, 16 instantiations of a single-wire streaming FFT (FFT IP) will calculate 16 different FFT instances in parallel. This is appropriate if you're processing 16 different channels. A 16-wire parallel FFT(parallel FFT IP) processes a single FFT instance. This is appropriate if you're processing one very high data rate channel.

    Back to your question about why you saw multiple peaks in one frame. The reasons are:

    1. You have two sine waves in one FFT instance.

    2. It's a 2-wrie parallel FFT, the processing cycles should be half of the single FFT, for example, for a 64 points FFT, the frame cycles is 64 for a single wire FFT, but 32 for a 2-wire parallel FFT.

    Based on above, I modified the input of the parallel FFT(assign d = {8'h0, sine_noise_out1, 8'h0,sine_noise_out1};) to better show the case, and here is what I got:

    As you can see, the sum0 has 2 times of peaks of sum_single in "one frame".

    Please note that what I did above is just to show the function of the parallel FFT based on your design. The parallel FFT should be one FFT instance, which means you should combine sine_noise_out0 and sine_noise_out1 as one input sequence and then pipe it into two channels. The same with the output, you should pipe the 2 channels data into one sequence.

    Best regards,

    Leo Feng