Go Back

Source code


Name: fft_fir_filter
Created: Feb 1, 2010
Updated: Apr 27, 2011
SVN Updated: Feb 2, 2010

Other project properties

Category: DSP core
Language: VHDL
Development status: Stable
Additional info:
WishBone Compliant: No
License: LGPL


FFT-based FIR Filter is a unit to perform the finite impulse responce filter based on the Fast Fourier Transform (FFT). It performs the convolution of the unlimited signal sequence with the synthesized impulse responce of the length of Ni=N/2 samples, where N = 64, 128, 256, 512, 1024. The data and coefficient widths are tunable in the range 8 to 18.
Main Features:

  • The filtering algorithm is the sectioned convolution with accumulating based on N-point radix-2 FFT, where N = 64, 128, 256, 512, 1024
  • One complex signal channel or two parallel real signal channels.
  • Filter types are LPF; LPF and HPF; LPF and HPF, and differentiator; LPF and HPF,and double differentiator.
  • Input data, output data, and coefficient widths are generics
  • Bandpass frequencies of the LPF and HPF filters, filter type are dynamically tunable parameters. The frequencies for both real channels are tuned independently
  • Stop band ripple for 16-bit dates is higher than 60 db. The transitional frequency band is less than 6 bins (1 bin = Fs/N, where Fs is the sampling frequency
  • Dynamic range for 16-bit dates is higher than 70 db
  • Structure optimized for Xilinx Virtex2, Virtex4, Spartan3 FPGA devices, and can be implemented in Altera, Actel, Lattice devices as well.
  • The maximum clock frequency for Virtex4 devices is equal to Fclk = 190 MHz, and for Spartan3E devices is equal to Fclk = 80 MHz.
  • The maximum sampling frequency Fs by N=1024 is less than Fclk/29.
  • The latent delay of the filter by N=1024 is equal to 1790 cycles of Fs.

Please, contact us if you wish to have this IP core modified or adjusted to meet your requirements.
This core is provided by Unicore Systems http://unicore.co.ua. To view our product list of commercial IP cores, please, follow this link