The folks at Impulse Accelerated Technologies have announced the availability of optimized FFT libraries for FPGAs. These libraries integrate with the Impulse C software-to-hardware compiler, allowing software developers to quickly prototype, optimize, and deploy high performance systems requiring a range of FFT sizes and precisions.
The FFT libraries, produced by OptNgn of Portland, OR, shorten development time and increase the quality of results by using the latest algorithmic techniques to fully utilize the FPGA's superiority over microprocessors and GPUs in random addressing of memory locations. The libraries are intended for applications that include image processing, national security, medical electronics and industrial signal processing.
The FFT libraries are used as callable blocks from C code. This allows software developers to more easily invoke a specific hardware library function, modify parameters, and intermix the library element with other code to form a larger system design that may include C, Verilog and VHDL.
The Impulse tools accept all of these forms of design description. The Impulse design flow supports verification using standard C tools such as Visual Studio and Eclipse. The Impulse tools facilitate the partitioning of code between hardware and processing elements of the system. Applications remain device independent through most of the development process. After functional verification, application developers specify a target FPGA or platforms, and the design portions to be executed in the FPGA are exported to Xilinx ISE, Altera Quartus, or Synplicity Synplify to be compiled to the FPGA.
Available Fixed and Floating Point FFT libraries include:
- 1D/2D transforms
- Data Flow: Burst or Continuous
- Radix Kernels: Powers of a prime
- Fixed-Point Precision: 12-24 bits (higher bit widths available on request)
- Floating-Point Precision: Single Precision IEEE-754 compatible (32 bits)
- Dimension Sizes: D1 and D1xD2, where D1 and D2 range from 12-1296 in powers of 2^a, 3^b, and 5^c, where a<=7, b<=4, c<=2
- C/Matlab micro architectural models are available, which are Root Mean Square (RMS) error accurate
- Netlist: Vendor independent Synthesizable VHDL or Verilog (ask about other formats)
- Size/Performance: Highly Competitive. Minimum Multiplies. Based on Prime Factor, Winograd, and Number Theoretic Transform Kernel technology
By remaining ANSI C compliant, Impulse has been able to work with a range of library providers. This FFT library from OptNgn is an example of well-executed, compact, and high-quality code that can save a user weeks or months of engineering effort.