A Ruby-Based Hardware/Software Co-Design Environment with Functional Reactive Programming: Mulvery

Daichi TERUYA  Hironori NAKAJO  

IEICE TRANSACTIONS on Information and Systems   Vol.E103-D   No.9   pp.1929-1938
Publication Date: 2020/09/01
Online ISSN: 1745-1361
DOI: 10.1587/transinf.2019EDP7233
Type of Manuscript: PAPER
Category: Computer System
SoC FPGA,  HLS,  functional reactive programming,  

Full Text: PDF>>
Buy this Article

Computation methods using custom circuits are frequently employed to improve the throughput and power efficiency of computing systems. Hardware development, however, can incur significant development costs because designs at the register-transfer level (RTL) with a hardware description language (HDL) are time-consuming. This paper proposes a hardware and software co-design environment, named Mulvery, which is designed for non-professional hardware designer We focus on the similarities between functional reactive programming (FRP) and dataflow in computation. This study provides an idea to design hardware with a dynamic typing language, such as Ruby, using FRP and provides the proof-of-concept of the method. Mulvery, which is a hardware and software co-design tool based on our method, reduces development costs. Mulvery exhibited high performance compared with software processing techniques not equipped with hardware knowledge. According to the experiment, the method allows us to design hardware without degradation of performance. The sample application applied a Laplacian filter to an image with a size of 128×128 and processed a convolution operation within one clock.