2019 IEEE 27th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM) 2019
DOI: 10.1109/fccm.2019.00037
|View full text |Cite
|
Sign up to set email alerts
|

Module-per-Object: A Human-Driven Methodology for C++-Based High-Level Synthesis Design

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 … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1

Citation Types

0
3
0

Year Published

2019
2019
2023
2023

Publication Types

Select...
5
1

Relationship

0
6

Authors

Journals

citations
Cited by 6 publications
(3 citation statements)
references
References 27 publications
(40 reference statements)
0
3
0
Order By: Relevance
“…While HLS tools take kernel code in C or C++, a developer must perform a substantial amount of manual refactoring to make it synthesizable and efficient on an FPGA chip. Such refactoring is error-prone and time-consuming since certain language constructs for readability and expressiveness in C/C++ are not allowed in HLS [25]. A developer must have interdisciplinary expert knowledge in both hardware and software and know obscure platform-dependent details [15].…”
Section: Refactoring For High-level Synthesismentioning
confidence: 99%
“…While HLS tools take kernel code in C or C++, a developer must perform a substantial amount of manual refactoring to make it synthesizable and efficient on an FPGA chip. Such refactoring is error-prone and time-consuming since certain language constructs for readability and expressiveness in C/C++ are not allowed in HLS [25]. A developer must have interdisciplinary expert knowledge in both hardware and software and know obscure platform-dependent details [15].…”
Section: Refactoring For High-level Synthesismentioning
confidence: 99%
“…This problem with HLS has been only very rarely discussed in prior research articles. da Silva et al [16] proposed a C++11 This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see https://creativecommons.org/licenses/by/4.0/ driven methodology for HLS using Xilinx Vivado HLS, but to the best of our knowledge, no other studies have widely experimented with modern C++ language features in HLS.…”
Section: Introductionmentioning
confidence: 99%
“…HLS dialect languages are a strict subset of C/C++ and certain constructs or coding styles are unsupported [50]. A developer must manually restructure the program to make the computation logic synthesizable at the hardware level.…”
Section: Introductionmentioning
confidence: 99%