Two FPGA Case Studies Comparing High Level Synthesis and Manual HDL for HEP applications

Tétrault Marc-André
DOI: https://doi.org/10.48550/arXiv.1806.10672
2018-06-24
Instrumentation and Detectors
Abstract:Real time data acquisition systems in nuclear science often rely on high-speed logic designs to reach the fast data rate requirements. They are mostly coded in a hardware description language (HDL). However, in recent years, high level synthesis (HLS) compilers have appeared, with the notable advantage that they rely on the widespread C/C++ syntax. This paper's aim is to outline differences between HDL and C/C++ HLS based designs for two real-time data acquisition modules used in nuclear science. The first module is a real-time crystal identification module, and the second is a compact event timestamp sorting module. This evaluation was done by an experienced VHDL programmer with no prior HLS training. For the crystal identification module, both HDL and HLS versions have the same event processing interval, and the HLS implementation consumes twice as many lookup tables and flip flops as the HDL version. On the other hand, the HLS version took half the time to write and debug. For the sorter module, the HLS version requires about 3 to 4 times more logic resources, with a slightly longer processing interval. It was also completed in half the time compared to the original HDL code. While different compiler directives can still be explored to improve source code clarity, resource usage and timing closure in these designs, this trial shows that HLS is a compelling alternative to custom HDL implementations for real time systems in nuclear and plasma science.
What problem does this paper attempt to address?