{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,20]],"date-time":"2026-06-20T16:32:28Z","timestamp":1781973148834,"version":"3.54.5"},"reference-count":41,"publisher":"Association for Computing Machinery (ACM)","issue":"5","license":[{"start":{"date-parts":[[2024,8,14]],"date-time":"2024-08-14T00:00:00Z","timestamp":1723593600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"Japanese Grants-in-Aid for Scientific Research","award":["18K11284, and 22K11965"],"award-info":[{"award-number":["18K11284, and 22K11965"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Embed. Comput. Syst."],"published-print":{"date-parts":[[2024,9,30]]},"abstract":"<jats:p>HDLRuby is a new hardware description language defined as an extension of the Ruby programming language aiming to improve circuit design productivity. HDLRuby allows to model digital circuits at the register transfer level while supporting high-level paradigms comprising object-oriented programming, genericity, metaprogramming, and reflection. By construction, HDLRuby can also execute any code in Ruby and supports all of its libraries. Yet, even if high-level features are beneficial for design productivity, such advantages can be negated if the design tools are not efficient enough for producing in reasonable time quality hardware. This article investigates this issue by presenting the techniques used for compiling HDLRuby descriptions and by evaluating their performance. In detail, it explains how the language has been implemented and how it is translated to synthesizable Verilog HDL. Experiments are then presented for confirming the productivity gain of using HDLRuby and for evaluating the performance of the translation, the size of the resulting code, and the time required by a commercially available synthesis tool to produce an FPGA configuration from it. The HDLRuby descriptions used for the experiments include a set of repetitive designs for single construct evaluations and the implementation of generic convolution neural networks for real-life applications. For these evaluations, the translation time proves to be more than 10 times shorter than the synthesis time.<\/jats:p>","DOI":"10.1145\/3581757","type":"journal-article","created":{"date-parts":[[2023,2,1]],"date-time":"2023-02-01T12:48:12Z","timestamp":1675255692000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["HDLRuby: A Ruby Extension for Hardware Description and Its Translation to Synthesizable Verilog HDL"],"prefix":"10.1145","volume":"23","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-6914-115X","authenticated-orcid":false,"given":"Lovic","family":"Gauthier","sequence":"first","affiliation":[{"name":"Information System Course, National Institute of Technology, Ariake College, Omuta, Japan"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3888-035X","authenticated-orcid":false,"given":"Yohei","family":"Ishikawa","sequence":"additional","affiliation":[{"name":"Information System Course, National Institute of Technology, Ariake College, Omuta, Japan"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2024,8,14]]},"reference":[{"key":"e_1_3_1_2_2","doi-asserted-by":"publisher","unstructured":"IEEE Std 1364-2005 (Revision of IEEE Std 1364-2001). 2006. IEEE Standard for Verilog Hardware Description Language. 1--590. Retrieved from 10.1109\/IEEESTD.2006.99495","DOI":"10.1109\/IEEESTD.2006.99495"},{"key":"e_1_3_1_3_2","doi-asserted-by":"publisher","DOI":"10.1007\/0-387-36495-1"},{"key":"e_1_3_1_4_2","first-page":"1","volume-title":"IEEE P1076\/D13","year":"2019","unstructured":"2019. IEEE Draft Standard for VHDL Language Reference Manual. In IEEE P1076\/D13, July 2019 , vol., no., 1\u2013796."},{"key":"e_1_3_1_5_2","unstructured":"Lovic Gauthier. 2018. HDLRuby Source Code and Documentation. Retrieved from https:\/\/github.com\/civol\/HDLRuby (source code). Documentation: https:\/\/github.com\/civol\/HDLRuby\/blob\/master\/README.md (Documentation)."},{"key":"e_1_3_1_6_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICBIR.2018.8391195"},{"key":"e_1_3_1_7_2","volume-title":"The Ruby Programming Language","author":"Matsumoto Yukihiro","year":"2002","unstructured":"Yukihiro Matsumoto and Kiju Ishituka. 2002. The Ruby Programming Language. Addison Wesley."},{"key":"e_1_3_1_8_2","doi-asserted-by":"crossref","unstructured":"Louis Hafer and Alice C. Parker. 1983. A formal method for the specification analysis and design of register-transfer level digital logic. IEEE Trans. Comput.-aid. Des. Integ. Circ. Syst. 2 1 (1983) 4\u201318.","DOI":"10.1109\/TCAD.1983.1270016"},{"key":"e_1_3_1_9_2","doi-asserted-by":"crossref","unstructured":"Pierre Paulin and John P. Knight. 1989. Force-directed scheduling for the behavioral synthesis of ASICs. IEEE Trans. Comput.-aid. Des. Integ. Circ. Syst. 8 6 (1989) 661\u2013679.","DOI":"10.1109\/43.31522"},{"key":"e_1_3_1_10_2","unstructured":"Michael Meredith and Steve Svoboda. 2012. The next IC design methodology transition is long overdue. Retrieved from https:\/\/workspace.accellera.org\/resources\/articles\/icdesigntrans."},{"key":"e_1_3_1_11_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4020-8588-8"},{"key":"e_1_3_1_12_2","doi-asserted-by":"crossref","unstructured":"Grant Martin and Gary Smith. 2009. High-level Synthesis: Past present and future. Des. Test Comput. 26 4 (2009) 18\u201325.","DOI":"10.1109\/MDT.2009.83"},{"key":"e_1_3_1_13_2","unstructured":"Ruizhe Zhao and Jianyi Cheng. 2021. Phism: Polyhedral high-level synthesis in MLIR. In Workshop on Languages Tools and Techniques for Accelerator Design."},{"key":"e_1_3_1_14_2","first-page":"7","volume-title":"4th International Forum on ASIC and Transducer Technology (ASICTT)","author":"Nomura R.","year":"1991","unstructured":"R. Nomura, K. Oguri, Y. Nakamura, and A. Nagoya. 1991. The strategy for reliable ASIC design in PARTHENON. 4th International Forum on ASIC and Transducer Technology (ASICTT). 7\u201312."},{"key":"e_1_3_1_15_2","doi-asserted-by":"crossref","first-page":"714","DOI":"10.1109\/DSD.2010.21","volume-title":"13th Euromicro Conference on Digital System Design: Architectures, Methods and Tools","author":"Christiaan Baaij","year":"2010","unstructured":"Baaij Christiaan, Matthijs Kooijman, Jan Kuper, Arjan Boeijink, and Marco Gerards. 2010. C\u03bbaSH: Structural descriptions of synchronous hardware using Haskell. In 13th Euromicro Conference on Digital System Design: Architectures, Methods and Tools. 714\u2013721."},{"key":"e_1_3_1_16_2","unstructured":"MathWorks\u00ae. 1994. Hardware Design with MATLAB and Simulink. Retrieved from https:\/\/www.mathworks.com\/discovery\/hardware-design.html."},{"key":"e_1_3_1_17_2","unstructured":"IEEE Std 1666-2011. 2012. IEEE Standard for Standard SystemC Language Reference Manual. Retrieved from https:\/\/standards.ieee.org\/ieee\/1666\/4814\/."},{"key":"e_1_3_1_18_2","volume-title":"SPECC: Specification Language and Methodology","author":"Gajski Daniel D.","year":"2012","unstructured":"Daniel D. Gajski, Jianwen Zhu, Rainer D\u00f6mer, Andreas Gerstlauer, and Shuqing Zhao. 2012. SPECC: Specification Language and Methodology. Springer Science & Business Media."},{"key":"e_1_3_1_19_2","doi-asserted-by":"crossref","unstructured":"Aledo David Benjamin Carrion Schafer and F\u00e9lix Moreno. 2019. VHDL vs. SystemC: Design of highly parameterizable artificial neural networks. IEICE Trans. Inf. Syst. 102 3 (2019) 512\u2013521.","DOI":"10.1587\/transinf.2018EDP7142"},{"key":"e_1_3_1_20_2","unstructured":"Xilinx: Vivado Design Suite Quick Reference Guide. 2019. Retrieved from https:\/\/docs.xilinx.com\/v\/u\/en-US\/ug975-vivado-quick-reference."},{"key":"e_1_3_1_21_2","unstructured":"Cadence. Stratus High-level Synthesis. Retrieved from https:\/\/www.cadence.com\/en_US\/home\/tools\/digital-design-and-signoff\/synthesis\/stratus-high-level-synthesis.html."},{"key":"e_1_3_1_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/1146909.1146937"},{"key":"e_1_3_1_23_2","doi-asserted-by":"crossref","unstructured":"Gerstlauer Andreas Christian Haubelt Andy D. Pimentel Todor P. Stefanov Daniel D. Gajski and J\u00fcrgen Teich. 2009. Electronic system-level synthesis methodologies. IEEE Trans. Comput.-aid. Des. Integ. Circ. Syst. 28 10 (2009) 1517\u20131530.","DOI":"10.1109\/TCAD.2009.2026356"},{"key":"e_1_3_1_24_2","doi-asserted-by":"crossref","unstructured":"Goli Mehran Jannis Stoppe and Rolf Drechsler. 2018. Automated nonintrusive analysis of electronic system level designs. IEEE Trans. Comput.-aid. Des. Integ. Circ. Syst. 39 2 (2018) 492\u2013505.","DOI":"10.1109\/TCAD.2018.2889665"},{"key":"e_1_3_1_25_2","unstructured":"Larry Doolittle. Vhdl2vl. 2017. Retrieved from https:\/\/github.com\/ldoolitt\/vhd2vl (source code) https:\/\/github.com\/ldoolitt\/vhd2vl\/blob\/master\/README.md (documentation)."},{"key":"e_1_3_1_26_2","unstructured":"Phil Tomson. RHDL -- Ruby Hardware Description Language. 2006. Retrieved from https:\/\/github.com\/philtomson\/RHDL (source code) https:\/\/github.com\/philtomson\/RHDL\/blob\/master\/README (documentation)."},{"key":"e_1_3_1_27_2","unstructured":"University of California Berkeley. 2021. Chisel\/FIRRTL Hardware Compiler Framework. Retrieved from https:\/\/github.com\/chipsalliance\/chisel3 (source code) https:\/\/github.com\/chipsalliance\/chisel3\/blob\/master\/README.md (documentation)."},{"key":"e_1_3_1_28_2","doi-asserted-by":"publisher","DOI":"10.12792\/iciae2022.026"},{"key":"e_1_3_1_29_2","doi-asserted-by":"crossref","unstructured":"Haotong Qin Ruihao Gong Xianglong Liu Xiao Bai Jingkuan Song and Nicu Sebe. 2020. Binary neural networks: A survey. Pattern Recog. 105 (2020).","DOI":"10.1016\/j.patcog.2020.107281"},{"key":"e_1_3_1_30_2","unstructured":"Yann LeCun Corinna Cortes and Christopher J. C. Burges. The MNIST database. Retrieved from http:\/\/yann.lecun.com\/exdb\/mnist\/."},{"key":"e_1_3_1_31_2","first-page":"69","volume-title":"2nd ACM and IEEE International Conference on Formal Methods and Models for Co-Design (MEMOCODE\u201904)","author":"Nikhil Rishiyur","year":"2004","unstructured":"Rishiyur Nikhil. 2004. Bluespec System Verilog: Efficient, correct RTL from high level specifications. In 2nd ACM and IEEE International Conference on Formal Methods and Models for Co-Design (MEMOCODE\u201904). IEEE, 69\u201370."},{"key":"e_1_3_1_32_2","doi-asserted-by":"crossref","unstructured":"Jason Cong Jason Lau Gai Liu Stephen Neuendorffer Peichen Pan Kees Vissers and Zhiru Zhang. 2022. FPGA HLS today: Successes challenges and opportunities. ACM Trans. Reconfig. Technol. Syst. 15 4 (2022) 1\u201342.","DOI":"10.1145\/3530775"},{"key":"e_1_3_1_33_2","doi-asserted-by":"crossref","unstructured":"Razvan Nane Vlad-Mihai Sima Christian Pilato Jongsok Choi Blair Fort Andrew Canis Yu Ting Chen et al. 2015. A survey and evaluation of FPGA high-level synthesis tools. IEEE Trans. Comput.-aid. Des. Integ. Circ. Syst. 35 10 (2015) 1591\u20131604.","DOI":"10.1109\/TCAD.2015.2513673"},{"key":"e_1_3_1_34_2","doi-asserted-by":"crossref","unstructured":"Mostafa W. Numan Braden J. Phillips Gavin S. Puddy and Katrina Falkner. 2020. Towards automatic high-level code deployment on reconfigurable platforms: A survey of high-level synthesis tools and toolchains. IEEE Access 8 (2020) 174692\u2013174722.","DOI":"10.1109\/ACCESS.2020.3024098"},{"key":"e_1_3_1_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/3174243.3174264"},{"key":"e_1_3_1_36_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-26408-0_8"},{"key":"e_1_3_1_37_2","doi-asserted-by":"crossref","unstructured":"Johannes de Fine Licht Maciej Besta Simon Meierhans and Torsten Hoefler. 2020. Transformations of high-level synthesis codes for high-performance computing. IEEE Trans. Parallel Distrib. Syst. 32 5 (2020) 1014\u20131029.","DOI":"10.1109\/TPDS.2020.3039409"},{"key":"e_1_3_1_38_2","doi-asserted-by":"crossref","unstructured":"Fahad Bin Muslim Liang Ma Mehdi Roozmeh and Luciano Lavagno. 2017. Efficient FPGA implementation of OpenCL high-performance computing applications via high-level synthesis. IEEE Access 5 (2017) 2747\u20132762.","DOI":"10.1109\/ACCESS.2017.2671881"},{"key":"e_1_3_1_39_2","doi-asserted-by":"publisher","DOI":"10.1145\/3431920.3439292"},{"key":"e_1_3_1_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/3431920.3439290"},{"key":"e_1_3_1_41_2","first-page":"183","volume-title":"ACM\/SIGDA International Symposium on Field-Programmable Gate Arrays","author":"Meng Yuan","year":"2021","unstructured":"Yuan Meng, Sanmukh Kuppannagari, Rajgopal Kannan, and Viktor Prasanna. 2021. DYNAMAP: Dynamic algorithm mapping framework for low latency CNN inference. In ACM\/SIGDA International Symposium on Field-Programmable Gate Arrays. 183\u2013193."},{"key":"e_1_3_1_42_2","doi-asserted-by":"crossref","unstructured":"Robert Stewart Kirsty Duncan Greg Michaelson Paulo Garcia Deepayan Bhowmik and Andrew Wallace. 2018. RIPL: A parallel image processing language for FPGAs. ACM Trans. Reconfig. Technol. Syst. 11 1 (2018) 1\u201324.","DOI":"10.1145\/3180481"}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3581757","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3581757","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T18:08:38Z","timestamp":1750183718000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3581757"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,8,14]]},"references-count":41,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2024,9,30]]}},"alternative-id":["10.1145\/3581757"],"URL":"https:\/\/doi.org\/10.1145\/3581757","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"value":"1539-9087","type":"print"},{"value":"1558-3465","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,8,14]]},"assertion":[{"value":"2022-01-15","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-01-04","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-08-14","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}