This paper proposes bambu, a semi-automatic open-source framework to assist the designer during HLS, aiming at supporting most of the C constructs and directly interfacing with commercial tools for the synthesis to take technology aspects into account. Our framework receives as input the C description of the specification to be implemented and an XML configuration file, as shown in Figure 1. As output, it produces the HDL description of the corresponding hardware implementation and the scripts for the synthesis with the desired synthesis flow. At the moment, it is possible to support most of the C constructs, such as: • function calls and sharing of the corresponding modules; • pointer arithmetic and dynamic resolution of the memory addresses; • accesses to arrays/structs and any combination of them; • variables and structs passed either by reference or copy to the functions; • floating point arithmetic (single/double precision) and data types with different bit-width.
[1]
Gianluca Palermo,et al.
Improving evolutionary exploration to area-time optimization of FPGA designs
,
2008,
J. Syst. Archit..
[2]
Daniele Loiacono,et al.
A Multi-objective Genetic Algorithm for Design Space Exploration in High-Level Synthesis
,
2008,
2008 IEEE Computer Society Annual Symposium on VLSI.
[3]
Pier Luca Lanzi,et al.
Ant Colony Heuristic for Mapping and Scheduling Tasks and Communications on Heterogeneous Embedded Systems
,
2010,
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.
[4]
Fabrizio Ferrandi,et al.
A design methodology to implement memory accesses in High-Level Synthesis
,
2011,
2011 Proceedings of the Ninth IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).