The iDEA DSP Block-Based Soft Processor for FPGAs

DSP blocks in modern FPGAs can be used for a wide range of arithmetic functions, offering increased performance while saving logic resources for other uses. They have evolved to better support a plethora of signal processing tasks, meaning that in other application domains they may be underutilised. The DSP48E1 primitives in new Xilinx devices support dynamic programmability that can help extend their usefulness; the specific function of a DSP block can be modified on a cycle-by-cycle basis. However, the standard synthesis flow does not leverage this flexibility in the vast majority of cases. The lean DSP Extension Architecture (iDEA) presented in this article builds around the dynamic programmability of a single DSP48E1 primitive, with minimal additional logic to create a general-purpose processor supporting a full instruction-set architecture. The result is a very compact, fast processor that can execute a full gamut of general machine instructions. We show a number of simple applications compiled using an MIPS compiler and translated to the iDEA instruction set, comparing with a Xilinx MicroBlaze to show estimated performance figures. Being based on the DSP48E1, this processor can be deployed across next-generation Xilinx Artix-7, Kintex-7, Virtex-7, and Zynq families.

[1]  Jonathan Rose,et al.  VESPA: portable, scalable, and flexible FPGA-based vector processors , 2008, CASES '08.

[2]  Guy Lemieux,et al.  Vector processing as a soft-core CPU accelerator , 2008, FPGA '08.

[3]  Florent de Dinechin,et al.  Designing Custom Arithmetic Data Paths with FloPoCo , 2011, IEEE Design & Test of Computers.

[4]  René van Leuken,et al.  MB-LITE: A robust, light-weight soft-core implementation of the MicroBlaze architecture , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[5]  J. Gregory Steffan,et al.  OCTAVO: an FPGA-centric processor family , 2012, FPGA '12.

[6]  Stephen Dean Brown,et al.  Experiences with soft-core processor design , 2005, 19th IEEE International Parallel and Distributed Processing Symposium.

[7]  Suhaib A. Fahmy,et al.  Iterative floating point computation using FPGA DSP blocks , 2013, 2013 23rd International Conference on Field programmable Logic and Applications.

[8]  J. Gregory Steffan,et al.  Efficient multi-ported memories for FPGAs , 2010, FPGA '10.

[9]  I. Xilinx,et al.  Virtex-II Pro and Virtex-II Pro X Platform FPGAs: Complete data sheet , 2004 .

[10]  Wayne Luk,et al.  CUSTARD - a customisable threaded FPGA soft processor and tools , 2005, International Conference on Field Programmable Logic and Applications, 2005..

[11]  Yong Dou,et al.  VPFPAP: A Special-Purpose VLIW Processor for Variable-Precision Floating-Point Arithmetic , 2011, 2011 21st International Conference on Field Programmable Logic and Applications.

[12]  Douglas L. Maskell,et al.  A lean FPGA soft processor built using a DSP block , 2012, FPGA '12.

[13]  John McAllister,et al.  An ultra-fine processor for FPGA DSP chip multiprocessors , 2009, 2009 Conference Record of the Forty-Third Asilomar Conference on Signals, Systems and Computers.

[14]  Linda Doyle,et al.  Development Framework for Implementing FPGA-Based Cognitive Network Nodes , 2009, GLOBECOM 2009 - 2009 IEEE Global Telecommunications Conference.

[15]  Kizheppatt Vipin,et al.  A high speed open source controller for FPGA Partial Reconfiguration , 2012, 2012 International Conference on Field-Programmable Technology.

[16]  Jakub Botwicz,et al.  Lightweight Multi-threaded Network Processor Core in FPGA , 2007, 2007 IEEE Design and Diagnostics of Electronic Circuits and Systems.

[17]  Ian Vince McLoughlin,et al.  Square-rich fixed point polynomial evaluation on FPGAs , 2014, FPGA.

[18]  Pascal Benoit,et al.  The SecretBlaze: A Configurable and Cost-Effective Open-Source Soft-Core Processor , 2011, 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and Phd Forum.

[19]  Suhaib A. Fahmy,et al.  Evaluating the efficiency of DSP Block synthesis inference from flow graphs , 2012, 22nd International Conference on Field Programmable Logic and Applications (FPL).

[20]  John McAllister,et al.  FPGA based soft-core SIMD processing: A MIMO-OFDM Fixed-Complexity Sphere Decoder case study , 2010, 2010 International Conference on Field-Programmable Technology.

[21]  Guy Lemieux,et al.  VEGAS: soft vector processor with scratchpad memory , 2011, FPGA '11.

[22]  Douglas L. Maskell,et al.  iDEA: A DSP block based FPGA soft processor , 2012, 2012 International Conference on Field-Programmable Technology.

[23]  Guy Lemieux,et al.  VENICE: A Compact Vector Processor for FPGA Applications , 2012, 2012 IEEE 20th International Symposium on Field-Programmable Custom Computing Machines.

[24]  Miriam Leeser,et al.  An Autonomous Vector/Scalar Floating Point Coprocessor for FPGAs , 2011, 2011 IEEE 19th Annual International Symposium on Field-Programmable Custom Computing Machines.