A design methodology to implement memory accesses in High-Level Synthesis

Nowadays, the memory synthesis is becoming the main bottleneck for the generation of efficient hardware accelerators. This paper presents a design methodology to efficiently and automatically implement memory accesses in High-Level Synthesis. In particular, the approach starts from a behavioral specification (in pure C language) and a set of design constraints, such as the memory addresses where some of the data are stored. The methodology classifies which variables can be internally or externally allocated to the different modules to generate the proper architecture, fully supporting a wide range of C constructs, such as pointer arithmetic, function calls and array accesses. Moreover it allows to parallelize the accesses when the memory address is known at compile time, resulting in an efficient execution of the specification.

[1]  Erik Brockmeyer,et al.  Data and memory optimization techniques for embedded systems , 2001, TODE.

[2]  Nikil D. Dutt,et al.  Architectural exploration and optimization of local memory in embedded systems , 1997, Proceedings. Tenth International Symposium on System Synthesis (Cat. No.97TB100114).

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

[4]  Guang R. Gao,et al.  Designing the McCAT Compiler Based on a Family of Structured Intermediate Representations , 1992, LCPC.

[5]  Nikil D. Dutt,et al.  SPARK: a high-level synthesis framework for applying parallelizing compiler transformations , 2003, 16th International Conference on VLSI Design, 2003. Proceedings..

[6]  Srivaths Ravi,et al.  Generation of distributed logic-memory architectures through high-level synthesis , 2005, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[7]  Giovanni De Micheli,et al.  Synthesis and Optimization of Digital Circuits , 1994 .

[8]  Giovanni De Micheli,et al.  Resolution, optimization, and encoding of pointer variables for thebehavioral synthesis from C , 2001, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[9]  Hugo De Man,et al.  High-level address optimization and synthesis techniques for data-transfer-intensive applications , 1998, IEEE Trans. Very Large Scale Integr. Syst..

[10]  Andreas Koch,et al.  MARC II: A parametrized speculative multi-ported memory subsystem for reconfigurable computers , 2011, 2011 Design, Automation & Test in Europe.

[11]  Hiroyuki Tomiyama,et al.  Proposal and Quantitative Analysis of the CHStone Benchmark Program Suite for Practical C-based High-level Synthesis , 2009, J. Inf. Process..

[12]  Nikil D. Dutt,et al.  Exploiting off-chip memory access modes in high-level synthesis , 1997, 1997 Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[13]  Jianwen Zhu,et al.  A unified formal model of ISA and FSMD , 1999, CODES '99.