Automated Synthesis of Streaming Transfer Level Hardware Designs

As modern field-programmable gate arrays (FPGA) enable high computing performance and efficiency, their programming with low-level hardware description languages is time-consuming and remains a major obstacle to their adoption. High-level synthesis compilers are able to produce register-transfer-level (RTL) designs from C/C++ algorithmic descriptions, but despite allowing significant design-time improvements, these tools are not always able to generate hardware designs that compare to handmade RTL designs. In this article, we consider synthesis from an intermediate-level (IL) language that allows the description of algorithmic state machines handling connections between streaming sources and sinks. However, the interconnection of streaming sources and sinks can lead to cyclic combinational relations, resulting in undesirable behaviors or un-synthesizable designs. We propose a functional-level methodology to automate the resolution of such cyclic relations into acyclic combinational functions. The proposed IL synthesis methodology has been applied to the design of pipelined floating-point cores. The results obtained show how the proposed IL methodology can simplify the description of pipelined architectures while enabling performances that are close to those achievable through an RTL design methodology.

[1]  George A. Constantinides,et al.  Separation Logic for High-Level Synthesis , 2015, ACM Trans. Reconfigurable Technol. Syst..

[2]  Daniel Gajski,et al.  Introduction to high-level synthesis , 1994, IEEE Design & Test of Computers.

[3]  Mário P. Véstias,et al.  Double-precision Gauss-Jordan Algorithm with Partial Pivoting on FPGAs , 2009, 2009 12th Euromicro Conference on Digital System Design, Architectures, Methods and Tools.

[4]  Mateo Valero,et al.  Moving from petaflops to petadata , 2013, CACM.

[5]  Laurie J. Hendren,et al.  SableCC, an object-oriented compiler framework , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[6]  Michael J. Flynn,et al.  Beyond Traditional Microprocessors for Geoscience High-Performance Computing Applications , 2011, IEEE Micro.

[7]  Jason Helge Anderson,et al.  The Effect of Compiler Optimizations on High-Level Synthesis-Generated Hardware , 2015, TRETS.

[8]  Arvind,et al.  Modular compilation of guarded atomic actions , 2013, 2013 Eleventh ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE 2013).

[9]  Jordi Cortadella,et al.  Synthesis of synchronous elastic architectures , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[10]  Robert K. Brayton,et al.  On breakable cyclic definitions , 2004, ICCAD 2004.

[11]  Jean-Pierre David,et al.  Intermediate-Level Synthesis of a Gauss-Jordan Elimination Linear Solver , 2015, 2015 IEEE International Parallel and Distributed Processing Symposium Workshop.

[12]  Jean-Pierre David,et al.  Raising the abstraction level of HDL for control-dominant applications , 2012, 22nd International Conference on Field Programmable Logic and Applications (FPL).

[13]  Habib Hamam,et al.  FPGA implementation of floating-point complex matrix inversion based on GAUSS-JORDAN elimination , 2013, 2013 26th IEEE Canadian Conference on Electrical and Computer Engineering (CCECE).

[14]  Hiren D. Patel,et al.  Abstract state machines as an intermediate representation for high-level synthesis , 2011, 2011 Design, Automation & Test in Europe.

[15]  Jean-Pierre David,et al.  High-Level Description and Synthesis of Floating-Point Accumulators on FPGA , 2013, 2013 IEEE 21st Annual International Symposium on Field-Programmable Custom Computing Machines.

[16]  Rishiyur S. Nikhil,et al.  Composable Guarded Atomic Actions: a Bridging Model for SoC Design , 2007, Seventh International Conference on Application of Concurrency to System Design (ACSD 2007).

[17]  L. Stok,et al.  False loops through resource sharing (logic CAD) , 1992, 1992 IEEE/ACM International Conference on Computer-Aided Design.

[18]  Marc Feeley,et al.  High level synthesis for data-driven applications , 2005, 16th IEEE International Workshop on Rapid System Prototyping (RSP'05).

[19]  Etienne Bergeron,et al.  An Intermediate Level HDL for System Level Design , 2004, FDL.

[20]  H.C. Neto,et al.  Memory Optimized Architecture for Efficient Gauss-Jordan Matrix Inversion , 2007, 2007 3rd Southern Conference on Programmable Logic.

[21]  Susan J. Eggers,et al.  CHiMPS: A C-level compilation flow for hybrid CPU-FPGA architectures , 2008, FPL.

[22]  Arvind,et al.  A Comparative Evaluation of High-Level Hardware Synthesis Using Reed–Solomon Decoder , 2010, IEEE Embedded Systems Letters.

[23]  Santiago De Pablo,et al.  A proposal for ASM++ diagrams , 2007, 2007 IEEE Design and Diagnostics of Electronic Circuits and Systems.

[24]  Chuck House A Paradigm Shift Was Happening All Around Us , 2012, IEEE Solid-State Circuits Magazine.

[25]  Jason Helge Anderson,et al.  LegUp: An open-source high-level synthesis tool for FPGA-based processor/accelerator systems , 2013, TECS.

[26]  Yu Ting Chen,et al.  A Survey and Evaluation of FPGA High-Level Synthesis Tools , 2016, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[27]  Jean-Pierre David,et al.  Fast description and synthesis of control-dominant circuits , 2014, Comput. Electr. Eng..

[28]  Carlos H. Llanos,et al.  FPGA implementation of large-scale matrix inversion using single, double and custom floating-point precision , 2012, 2012 VIII Southern Conference on Programmable Logic.