Floating-point exponential functions for DSP-enabled FPGAs

This article presents a generator of floating-point exponential operators targeting recent FPGAs with embedded memories and DSP blocks. A single-precision operator consumes just one DSP block, 18Kbits of dual-port memory, and 392 slices on Virtex-4. For larger precisions, a generic approach based on polynomial approximation is used and proves more resource-efficient than the literature. For instance a double-precision operator consumes 5 BlockRAM and 12 DSP48 blocks on Virtex-5, or 10 M9k and 22 18×18 multipliers on Stratix III. This approach is flexible and is demonstrated to scale up to quadruple-precision, while enabling frequencies close to the FPGA's nominal frequency. All the proposed architectures are last-bit accurate for all the floating-point range. They are available in the open-source FloPoCo framework.

[1]  Marisa Lopez-Vallejo,et al.  An FPGA Implementation of the Powering Function with Single Precision Floating-Point Arithmetic ⁄ , 2006 .

[2]  Florent de Dinechin,et al.  A parameterized floating-point exponential function for FPGAs , 2005, Proceedings. 2005 IEEE International Conference on Field-Programmable Technology, 2005..

[3]  Wayne Luk,et al.  An FPGA run-time parameterisable Log-Normal Random Number Generator , 2008, ARC.

[4]  Maciej Wielgosz,et al.  Highly efficient structure of 64-bit exponential function implemented in FPGAs , 2008, ARC.

[5]  Weng-Fai Wong,et al.  Fast Hardware-Based Algorithms for Elementary Function Computations Using Rectangular Multipliers , 1994, IEEE Trans. Computers.

[6]  E. Swartzlander,et al.  Truncated multiplication with correction constant [for DSP] , 1993, Proceedings of IEEE Workshop on VLSI Signal Processing.

[7]  Maciej Wielgosz,et al.  Accelerating Calculations on the RASC Platform: A Case Study of the Exponential Function , 2009, ARC.

[8]  Florent de Dinechin,et al.  Multipliers for floating-point double precision and beyond on FPGAs , 2011, CARN.

[9]  Javier D. Bruguera,et al.  Algorithm and architecture for logarithm, exponential, and powering computation , 2004, IEEE Transactions on Computers.

[10]  Florent de Dinechin,et al.  Return of the hardware floating-point elementary function , 2007, 18th IEEE Symposium on Computer Arithmetic (ARITH '07).

[11]  Florent de Dinechin,et al.  Automatic generation of polynomial-based hardware architectures for function evaluation , 2010, ASAP 2010 - 21st IEEE International Conference on Application-specific Systems, Architectures and Processors.

[12]  Robin Pottathuparambil,et al.  A parallel/vectorized double-precision exponential core to accelerate computational science applications , 2009, FPGA '09.

[13]  Christopher C. Doss,et al.  FPGA-based implementation of a robust IEEE-754 exponential unit , 2004, 12th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[14]  Nachiket Kapre,et al.  Accelerating SPICE Model-Evaluation using FPGAs , 2009, 2009 17th IEEE Symposium on Field Programmable Custom Computing Machines.

[15]  Florent de Dinechin,et al.  Pipelined FPGA Adders , 2010, 2010 International Conference on Field Programmable Logic and Applications.

[16]  Álvaro Vázquez,et al.  Implementation of the Exponential Function in a Floating-Point Unit , 2003, J. VLSI Signal Process..

[17]  Florent de Dinechin,et al.  Generating high-performance custom floating-point pipelines , 2009, 2009 International Conference on Field Programmable Logic and Applications.

[18]  Milos D. Ercegovac Radix-16 Evaluation of Certain Elementary Functions , 1973, IEEE Transactions on Computers.

[19]  Maciej Wielgosz,et al.  Implementacja w układach FPGA operacji eksponenty dla liczb w standardzie IEEE-754 o podwójnej precyzji , 2007 .