When using unscaled outputs and targeting Virtex-4 or Virtex-5, why is the output of my Radix-2, Radix-4, or Streaming architecture output incorrect?
This only affects the core when the user has selected top option to use DSP48s, to Optimize for Speed.
You will see incorrect output data when simulating an unscaled FFT using the Radix-2, Radix-4 or streaming architectures on Virtex-4 or Virtex-5 devices when the complex multiplier optimized for speed option is used, and your output width is greater than 35 bits, and if the phase factor is equal to less than 17 bits.
The output width should only be larger than 35 bits when you choose unscaled output for point sizes larger than 1024.
The output width can be determined from the value in the GUI (in the resource estimate panel) or by calculating [(log2(point size) + input width + 1) = output width].
This issue does not affect the Radix-2-Lite architecture.
This issue will be fixed in the next release of the xFFT v4.1.
The following are suggested ways to work around this issue:
Option 1 - Do not optimize the complex multiplier for speed by using DSP48s. This solution uses a different multiplier architecture with a slight drop in performance, but a similar slice count.
Option 2 - Use a scaled FFT instead and continue to optimize the complex multiplier to use DSP48s.
Option 3 - Use the Radix-2-Lite architecture (if this meets the target throughput requirements), as it is unaffected by this issue.