Running with scale_mode = 1/2N, I still see overflow in the Simulink simulation. I expected never to see overflow with this scale_mode setting.
This does not seem to be restricted to any particular FFT size or memory type.
Simulation mismatches between the HDL model and the Simulink model can occur due to an overflow in the following two cases:
1. 1/N Scaling selected and Invalidate Transform is checked.
2. 1/2N Scaling, Invalidate Transform is checked and an IFFT is computed on the most negative value you can specify in the input data format. For example, if the input data type is a Fix_16_15, negative one causes an overflow to occur; however, the core will not detect it. This occurs only when an inverse transform is computed.
For all Spartan-3, Virtex-II and Virtex-II Pro users, the FFTx block provides a more comprehensive, higher performance, and resource efficient solution, and it should be used instead of the FFT block. The only reason to target the FFT block is if you require slice-based multipliers in your design.
In this scenario, the FFT output is correct except when overflow occurs. Hence, to work around this issue, please check the "Invalidate Transform on overflow" option.