Module-per-Object: a Human-Driven Methodology for C++-based High-Level Synthesis Design
Jeferson Santiago da Silva, Fran\c{c}ois-Raymond Boyer, J.M. Pierre, Langlois

TL;DR
The paper introduces Module-per-Object (MpO), a human-driven C++ methodology for high-level FPGA design that enhances code quality, modularity, and hardware efficiency, making FPGA programming more accessible to software developers.
Contribution
It presents a novel MpO methodology leveraging modern C++ features to improve FPGA HLS design, combining high abstraction with efficient hardware generation for both hardware and software developers.
Findings
MpO achieves FPGA designs comparable to hand-written VHDL.
MpO improves resource utilization and performance over traditional C-based HLS.
MpO enhances code readability, modularity, and reduces code duplication.
Abstract
High-Level Synthesis (HLS) brings FPGAs to audiences previously unfamiliar to hardware design. However, achieving the highest Quality-of-Results (QoR) with HLS is still unattainable for most programmers. This requires detailed knowledge of FPGA architecture and hardware design in order to produce FPGA-friendly codes. Moreover, these codes are normally in conflict with best coding practices, which favor code reuse, modularity, and conciseness. To overcome these limitations, we propose Module-per-Object (MpO), a human-driven HLS design methodology intended for both hardware designers and software developers with limited FPGA expertise. MpO exploits modern C++ to raise the abstraction level while improving QoR, code readability and modularity. To guide HLS designers, we present the five characteristics of MpO classes. Each characteristic exploits the power of HLS-supported modern C++…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsEmbedded Systems Design Techniques · Parallel Computing and Optimization Techniques · Interconnection Networks and Systems
