Are HLS Tools Healthy? The C-Cubed Project

The increasing complexity of Application Specific Integrated Circuits (ASICs) and Systems-on-Chip (SoCs) that incorporate custom and standard embedded core IP blocks dictates the need for a new generation of automated and formal system EDA tools and methodologies. High-Level Synthesis (HLS) plays a critical role in the required Electronic System Level (ESL) methodologies. However, most of the available academic and commercial High-Level Synthesis (HLS) tools still do not play an established role in the system and hardware engineering teams. This is true for a number of practical reasons, analyzed and discussed in this work. The present article is a practical perspective of the required fully automated and formal tools, which are needed to constitute integral parts in Electronic Design Automation (EDA) flows. In addition, this article is a useful guide to the system engineer who wants to familiarize with HLS tools and to select the appropriate tool for the everyday engineering practice. The advanced HLS toolset that is analyzed in this paper is developed by the first author, its C-frontend by the second author, and they are both based on formal methods and fully automated techniques, thus they guarantee the correctness of the synthesized hardware implementations. This paper completes with a number of experiments that were executed using the author’s methodology and they are used to evaluate the specific HLS tools. Consequently, a number of conclusions are drawn as well as suggestions for the future directions of HLS technology. In this way, what is practically needed by the hardware systems engineering community is outlined at the end of the paper.

[1]  Ulf Nilsson,et al.  Logic, programming and Prolog , 1990 .

[2]  Patrice Quinton,et al.  Polyhedral Bubble Insertion: A Method to Improve Nested Loop Pipelining for High-Level Synthesis , 2013, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[3]  Chittaranjan A. Mandal,et al.  Verification of Code Motion Techniques Using Value Propagation , 2014, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[4]  Nikil D. Dutt,et al.  Coordinated parallelizing compiler optimizations and high-level synthesis , 2004, TODE.

[5]  Vittorio Zaccaria,et al.  SPIRIT: Spectral-Aware Pareto Iterative Refinement Optimization for Supervised High-Level Synthesis , 2015, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[6]  Pierre G. Paulin,et al.  Force-directed scheduling for the behavioral synthesis of ASICs , 1989, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[7]  Robert A. Walker,et al.  Introduction to the Scheduling Problem , 1995, IEEE Des. Test Comput..

[8]  Bertrand Le Gal,et al.  Dynamic Memory Access Management for High-Performance DSP Applications Using High-Level Synthesis , 2008, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[9]  Apostolos A. Kountouris,et al.  Efficient scheduling of conditional behaviors for high-level synthesis , 2002, TODE.

[10]  Gabriel Caffarena,et al.  A Formal Method for Optimal High-Level Casting of Heterogeneous Fixed-Point Adders and Subtractors , 2015, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[11]  O. Sarbishei,et al.  On the Fixed-Point Accuracy Analysis and Optimization of Polynomial Specifications , 2013, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[12]  Román Hermida,et al.  Multispeculative Addition Applied to Datapath Synthesis , 2012, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.