High-Level Synthesis from C vs. a DSL-Based Approach

Field-Programmable Gate Arrays (FPGAs) are able to provide hardware accelerators still maintaining the required programmability. However, the advantages of using FPGAs still depend on the expertise of developers and their knowledge of Hardware Description Languages (HDLs). Although High-level Synthesis (HLS) tools have been developed in order to minimize this problem, they commonly present solutions considered many times inefficient when compared to the ones achieved by a specialized hardware designer. Domain-specific languages (DSLs) can provide alternative solutions to program FPGAs. They can provide higher abstraction levels than HDLs and they may allow the programmer to tune implementations whenever HLS tools are unable to generate efficient designs. In this paper we compare a DSL, named LALP (Language for Aggressive Loop Pipelining), with two typical HLS approaches and show the experimental results achieved in each case. The results show that the use of LALP provides superior performance than the achieved by the HLS tools in most cases.

[1]  Marcel Gort,et al.  From software to accelerators with LegUp high-level synthesis , 2013, 2013 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES).

[2]  Christian B. Spear,et al.  SystemVerilog for Verification: A Guide to Learning the Testbench Language Features , 2007 .

[3]  SOCIETY , 2008, Society.

[4]  Jason Helge Anderson,et al.  LegUp: high-level synthesis for FPGA-based processor/accelerator systems , 2011, FPGA '11.

[5]  Tom Feist,et al.  Vivado Design Suite , 2012 .

[6]  João M. P. Cardoso,et al.  Aggressive Loop Pipelining for Reconfigurable Architectures , 2007, 2007 International Conference on Field Programmable Logic and Applications.

[7]  João M. P. Cardoso,et al.  LALP: A Language to Program Custom FPGA-Based Acceleration Engines , 2011, International Journal of Parallel Programming.

[8]  Ricardo Menotti,et al.  On using LALP to map an audio encoder/decoder on FPGAs , 2010, 2010 IEEE International Symposium on Industrial Electronics.

[9]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[10]  Thorsten Grotker,et al.  System Design with SystemC , 2002 .

[11]  Adrian Park,et al.  Designing Modular Hardware Accelerators in C with ROCCC 2.0 , 2010, 2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines.

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