Compiler-Based High-Level Synthesis of Application-Specific Processors on FPGAs

In order to meet tight performance and/or energy constraints of embedded systems, the implementation of applications in hardware is often a must. However, mapping of algorithms to platforms, as for example Field-Programmable Gate Arrays (FPGAs), still requires comprehensive hardware knowledge and sometimes long design cycles. Modern High-Level Synthesis (HLS) offers a means to ease the generation of hardware implementations from a software specification of an application. Although these tools have improved greatly in recent years, they often do not provide full coverage of important programming constructs and are therefore of limited use when used with existing or automatically generated code. Soft-core processors implemented with FPGA-logic can circumvent this limitation. However, these come with drawbacks in terms of performance and resource requirements as a general-purpose architecture is used to implement the application in software rather than as a highly specialized circuit. As a remedy, our work presents a novel compiler-based synthesis methodology that generates networks of Application-Specific Instruction Set Processors (ASIPs) from unmodified C/C++ algorithms. We thereby bridge the gap between traditional soft-core processors and HLS. To show the practicability of our approach, we present a case study of a JPEG decoder application while investigating design objectives like resource costs and performance. Apart from the generality of the compiler-based approach, our approach also shows better results in terms of required hardware resources and execution times compared to Instruction Set Architecture (ISA)-fixed commercial Xilinx MicroBlaze soft-cores.

[1]  Jason Cong,et al.  Application-specific instruction generation for configurable processor architectures , 2004, FPGA '04.

[2]  Trevor Mudge,et al.  MiBench: A free, commercially representative embedded benchmark suite , 2001 .

[3]  George A. Constantinides,et al.  High-level synthesis of dynamic data structures: A case study using Vivado HLS , 2013, 2013 International Conference on Field-Programmable Technology (FPT).

[4]  Jonathan Rose,et al.  Exploration and Customization of FPGA-Based Soft Processors , 2007, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[5]  Darin Petkov,et al.  Automatic generation of application specific processors , 2003, CASES '03.

[6]  R. Kumar,et al.  Application-Specific Customization of Parameterized FPGA Soft-Core Processors , 2006, 2006 IEEE/ACM International Conference on Computer Aided Design.

[7]  Jürgen Teich,et al.  High-Level Synthesis for Hardware/Software Co-Design of Distributed Smart Camera Systems , 2017, ICDSC.

[8]  Paolo Ienne,et al.  A high-level synthesis flow for custom instruction set extensions for application-specific processors , 2010, 2010 15th Asia and South Pacific Design Automation Conference (ASP-DAC).

[9]  Heinrich Meyr,et al.  A novel methodology for the design of application-specificinstruction-set processors (ASIPs) using a machine description language , 2001, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

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

[11]  Jürgen Teich,et al.  Symbolic system-level design methodology for multi-mode reconfigurable systems , 2013, Des. Autom. Embed. Syst..

[12]  Jürgen Teich,et al.  Model-Based Design Automation of Hardware/Software Co-Designs for Xilinx Zynq PSoCs , 2018, 2018 International Conference on ReConFigurable Computing and FPGAs (ReConFig).