Future Field Programmable Gate Array (FPGA) Design Methodologies and Tool Flows

Abstract : Interest is growing in the use of FPGA devices for high-performance, efficient parallel computation. The large amount of programmable logic, internal routing, and memory can be used to perform a wide variety of high-performance computation more efficiently than traditional microprocessor-based computing architectures. The productivity of FPGA design, however, is very low. FPGA design is very time consuming and requires low-level hardware design skills. This study investigated this FPGA design productivity problem and identified potential solutions that will provide revolutionary improvements in design productivity. Three research areas that must be addressed to achieve such improvements are significant improvement in reuse of FPGA circuits, identification and deployment of higher level design abstractions, and increasing the number of turns per day to significantly increase the number of design iterations. The results of this study suggest that with adequate advancement in each of these areas, FPGA design productivity can be increased by 25X over current practice.

[1]  Barry W. Boehm,et al.  Managing Software Productivity and Reuse , 1999, Computer.

[2]  Mark A. Richards,et al.  The Morphware Stable Interface: A Software Framework for Polymorphous Computing Architectures , 2004 .

[3]  Brent E. Nelson,et al.  Using general-purpose programming languages for FPGA design , 2000, Proceedings 37th Design Automation Conference.

[4]  John E. Gaffney,et al.  A general economics model of software reuse , 1992, International Conference on Software Engineering.

[5]  Peter J. Ashenden,et al.  Programming models for hybrid CPU/FPGA chips , 2004, Computer.

[6]  Brent E. Nelson,et al.  Design Productivity for Configurable Computing , 2008, ERSA.

[7]  Oscar Nierstrasz,et al.  The Effect of Object-Oriented Frameworks on Developer Productivity , 1996, Computer.

[8]  William J. Tracz,et al.  Confessions of a Used Program Salesman: In-stitutionalizing Software Reuse , 1995 .

[9]  Scott Hauck,et al.  Reconfigurable Computing: The Theory and Practice of FPGA-Based Computation , 2007 .

[10]  P. Kidwell,et al.  The mythical man-month: Essays on software engineering , 1996, IEEE Annals of the History of Computing.

[11]  Richard W. Selby,et al.  Enabling reuse-based software development of large-scale systems , 2005, IEEE Transactions on Software Engineering.

[12]  K. Kavi,et al.  Software Tools Assessment , 1996, IEEE Software.

[13]  Stephen A. Edwards,et al.  The Challenges of Synthesizing Hardware from C-Like Languages , 2006, IEEE Design & Test of Computers.

[14]  Georgi Kuzmanov,et al.  OpenFPGA CoreLib core library interoperability effort , 2008, Parallel Comput..

[15]  Ivar Jacobson,et al.  Software Reuse: Architecture, Process And Organization For Business Success , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).