Floating-Point DSP Block Architecture for FPGAs

This work describes the architecture of a new FPGA DSP block supporting both fixed and floating point arithmetic. Each DSP block can be configured to provide one single precision IEEE-754 floating multiplier and one IEEE-754 floating point adder, or when configured in fixed point mode, the block is completely backwards compatible with current FPGA DSP blocks. The DSP block operating frequency is similar in both modes, in the region of 500MHz, offering up to 2 GMACs fixed point and 1 GFLOPs performance per block. In floating point mode, support for multi-block vector modes are provided, where multiple blocks can be seamlessly assembled into any size real or complex dot products. By efficient reuse of the fixed point arithmetic modules, as well as the fixed point routing, the floating point features have only minimal power and area impact. We show how these blocks are implemented in a modern Arria 10 FPGA family, offering over 1 TFLOPs using only embedded structures, and how scaling to multiple TFLOPs densities is possible for planned devices.

[1]  Sri Parameswaran,et al.  Configurable Multimode Embedded Floating-Point Units for FPGAs , 2011, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[2]  Florent de Dinechin,et al.  When FPGAs are better at floating-point than microprocessors , 2008, FPGA '08.

[3]  Florent de Dinechin,et al.  Floating-point exponential functions for DSP-enabled FPGAs , 2010, 2010 International Conference on Field-Programmable Technology.

[4]  Martin Langhammer,et al.  Design and Implementation of an Embedded FPGA Floating Point DSP Block , 2015, 2015 IEEE 22nd Symposium on Computer Arithmetic.

[5]  Wayne Luk,et al.  Domain-Specific Hybrid FPGA: Architecture and Floating Point Applications , 2007, 2007 International Conference on Field Programmable Logic and Applications.

[6]  An Independent Analysis of Altera ’ s FPGA Floating-point DSP Design Flow , 2011 .

[7]  Zhishun A. Liu Berkeley Elementary Functions Test Suite , 1988 .

[8]  Wayne Luk,et al.  Virtual Embedded Blocks: A Methodology for Evaluating Embedded Elements in FPGAs , 2006, 2006 14th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[9]  James Demmel,et al.  IEEE Standard for Floating-Point Arithmetic , 2008 .

[10]  Guido D. Salvucci,et al.  Ieee standard for binary floating-point arithmetic , 1985 .

[11]  Peter-Michael Seidel,et al.  On the design of fast IEEE floating-point adders , 2001, Proceedings 15th IEEE Symposium on Computer Arithmetic. ARITH-15 2001.

[12]  Martin Langhammer Floating point datapath synthesis for FPGAs , 2008, 2008 International Conference on Field Programmable Logic and Applications.

[13]  Brent E. Nelson,et al.  Novel Optimizations for Hardware Floating-Point Units in a Modern FPGA Architecture , 2002, FPL.

[14]  Tomasz S. Czajkowski Silicon Verification using High-Level Design Tools (Abstract Only) , 2015, FPGA.

[15]  Karl S. Hemmert,et al.  Architectural Modifications to Enhance the Floating-Point Performance of FPGAs , 2008, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[16]  Peter-Michael Seidel,et al.  Delay-optimized implementation of IEEE floating-point addition , 2004, IEEE Transactions on Computers.

[17]  Paul Michael Farmwald,et al.  On the design of high performance digital arithmetic units , 1981 .

[18]  Keith D. Underwood,et al.  FPGAs vs. CPUs: trends in peak floating-point performance , 2004, FPGA '04.

[19]  Jerome Toby Coonen Contributions to a proposed standard for binary floating-point arithmetic (computer arithmetic) , 1984 .

[20]  Martin Langhammer,et al.  Cholesky decomposition using fused datapath synthesis , 2009, FPGA '09.