Achieving Unity Gain in Block-Floating-Point IFFT+FFT Pair
The FFT MegaCore® function supports block-floating-point (BFP) architecture, a trade-off between fixed-point and full floating-point architecture. The block-floating-point FFT receives fixed-point input data and calculates the fixed-point output data with exponent. Due to lack of an exponent input port in FFT, when cascading IFFT with FFT, the scaling factor must be computed externally. This design example describes how to achieve unity gain in a block-floating-point IFFT+FFT pair with scaling arithmetic with an Altera® FFT MegaCore function.
Download the files used in this example:
Files in the download include:
- BFP_unitygain.v - Top-level design file implementing the cascaded IFFT+FFT system
- tb_BFT_unitygain.v - Testbench for RTL functional simulation
- BFP_unitygain.tcl - TCL script to automate ModelSim® simulation
- unity_gain_tb.m - MATLAB script to compare the difference between block-floating-point output with floating-point output
Figure 1 shows the datapath for the BFP_unitygain design.
Figure 1. BFP IFFT+FFT Unity Gain Top-Level Block Diagram

View Full Size
Figure 2 shows the FFT I/O port signals.
Figure 2. FFT I/O Port Signals

Related Links
|