HDLRuby: A Ruby Extension for Hardware Description and Its Translation to Synthesizable Verilog HDL

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,...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:ACM transactions on embedded computing systems 2024-08, Vol.23 (5), p.1-26, Article 73
Hauptverfasser: Gauthier, Lovic, Ishikawa, Yohei
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 26
container_issue 5
container_start_page 1
container_title ACM transactions on embedded computing systems
container_volume 23
creator Gauthier, Lovic
Ishikawa, Yohei
description 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.
doi_str_mv 10.1145/3581757
format Article
fullrecord <record><control><sourceid>acm_cross</sourceid><recordid>TN_cdi_crossref_primary_10_1145_3581757</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>3581757</sourcerecordid><originalsourceid>FETCH-LOGICAL-a235t-c512a12cfa6b83cff1db7f837c9382a695b87a2a0d4fe073eaefc68eac1d478e3</originalsourceid><addsrcrecordid>eNo9kDFPwzAUhC0EEqUgdiZvTAE7jmOHrWoLqVQJCQpr9OI8Q1CaVLYRDb-ehhamO919uuEIueTshvNE3gqpuZLqiIy4lDoSSSqPBy-yKGNanZIz7z8Y4ypO5IiYfLZ8-iz7Ozqhg9L5NmDr666ltnM0B1d9gUM6Q29cvQlDAW1FF8HTlYPWN_CbhY4-9214R19_Q9kgfUVXN90b3e2fkxMLjceLg47Jy_18Nc2j5ePDYjpZRhALGSIjeQw8NhbSUgtjLa9KZbVQJhM6hjSTpVYQA6sSi0wJBLQm1QiGV4nSKMbker9rXOe9Q1tsXL0G1xecFcM3xeGbHXm1J8Gs_6G_8gfU519_</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>HDLRuby: A Ruby Extension for Hardware Description and Its Translation to Synthesizable Verilog HDL</title><source>Access via ACM Digital Library</source><creator>Gauthier, Lovic ; Ishikawa, Yohei</creator><creatorcontrib>Gauthier, Lovic ; Ishikawa, Yohei</creatorcontrib><description>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.</description><identifier>ISSN: 1539-9087</identifier><identifier>EISSN: 1558-3465</identifier><identifier>DOI: 10.1145/3581757</identifier><language>eng</language><publisher>New York, NY: ACM</publisher><subject>Hardware ; Hardware description languages and compilation</subject><ispartof>ACM transactions on embedded computing systems, 2024-08, Vol.23 (5), p.1-26, Article 73</ispartof><rights>Copyright held by the owner/author(s).</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><cites>FETCH-LOGICAL-a235t-c512a12cfa6b83cff1db7f837c9382a695b87a2a0d4fe073eaefc68eac1d478e3</cites><orcidid>0000-0001-6914-115X ; 0000-0003-3888-035X</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://dl.acm.org/doi/pdf/10.1145/3581757$$EPDF$$P50$$Gacm$$Hfree_for_read</linktopdf><link.rule.ids>315,781,785,2283,27929,27930,40201,76233</link.rule.ids></links><search><creatorcontrib>Gauthier, Lovic</creatorcontrib><creatorcontrib>Ishikawa, Yohei</creatorcontrib><title>HDLRuby: A Ruby Extension for Hardware Description and Its Translation to Synthesizable Verilog HDL</title><title>ACM transactions on embedded computing systems</title><addtitle>ACM TECS</addtitle><description>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.</description><subject>Hardware</subject><subject>Hardware description languages and compilation</subject><issn>1539-9087</issn><issn>1558-3465</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2024</creationdate><recordtype>article</recordtype><recordid>eNo9kDFPwzAUhC0EEqUgdiZvTAE7jmOHrWoLqVQJCQpr9OI8Q1CaVLYRDb-ehhamO919uuEIueTshvNE3gqpuZLqiIy4lDoSSSqPBy-yKGNanZIz7z8Y4ypO5IiYfLZ8-iz7Ozqhg9L5NmDr666ltnM0B1d9gUM6Q29cvQlDAW1FF8HTlYPWN_CbhY4-9214R19_Q9kgfUVXN90b3e2fkxMLjceLg47Jy_18Nc2j5ePDYjpZRhALGSIjeQw8NhbSUgtjLa9KZbVQJhM6hjSTpVYQA6sSi0wJBLQm1QiGV4nSKMbker9rXOe9Q1tsXL0G1xecFcM3xeGbHXm1J8Gs_6G_8gfU519_</recordid><startdate>20240814</startdate><enddate>20240814</enddate><creator>Gauthier, Lovic</creator><creator>Ishikawa, Yohei</creator><general>ACM</general><scope>AAYXX</scope><scope>CITATION</scope><orcidid>https://orcid.org/0000-0001-6914-115X</orcidid><orcidid>https://orcid.org/0000-0003-3888-035X</orcidid></search><sort><creationdate>20240814</creationdate><title>HDLRuby: A Ruby Extension for Hardware Description and Its Translation to Synthesizable Verilog HDL</title><author>Gauthier, Lovic ; Ishikawa, Yohei</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a235t-c512a12cfa6b83cff1db7f837c9382a695b87a2a0d4fe073eaefc68eac1d478e3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2024</creationdate><topic>Hardware</topic><topic>Hardware description languages and compilation</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Gauthier, Lovic</creatorcontrib><creatorcontrib>Ishikawa, Yohei</creatorcontrib><collection>CrossRef</collection><jtitle>ACM transactions on embedded computing systems</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Gauthier, Lovic</au><au>Ishikawa, Yohei</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>HDLRuby: A Ruby Extension for Hardware Description and Its Translation to Synthesizable Verilog HDL</atitle><jtitle>ACM transactions on embedded computing systems</jtitle><stitle>ACM TECS</stitle><date>2024-08-14</date><risdate>2024</risdate><volume>23</volume><issue>5</issue><spage>1</spage><epage>26</epage><pages>1-26</pages><artnum>73</artnum><issn>1539-9087</issn><eissn>1558-3465</eissn><abstract>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.</abstract><cop>New York, NY</cop><pub>ACM</pub><doi>10.1145/3581757</doi><tpages>26</tpages><orcidid>https://orcid.org/0000-0001-6914-115X</orcidid><orcidid>https://orcid.org/0000-0003-3888-035X</orcidid><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 1539-9087
ispartof ACM transactions on embedded computing systems, 2024-08, Vol.23 (5), p.1-26, Article 73
issn 1539-9087
1558-3465
language eng
recordid cdi_crossref_primary_10_1145_3581757
source Access via ACM Digital Library
subjects Hardware
Hardware description languages and compilation
title HDLRuby: A Ruby Extension for Hardware Description and Its Translation to Synthesizable Verilog HDL
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-12T14%3A55%3A29IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-acm_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=HDLRuby:%20A%20Ruby%20Extension%20for%20Hardware%20Description%20and%20Its%20Translation%20to%20Synthesizable%20Verilog%20HDL&rft.jtitle=ACM%20transactions%20on%20embedded%20computing%20systems&rft.au=Gauthier,%20Lovic&rft.date=2024-08-14&rft.volume=23&rft.issue=5&rft.spage=1&rft.epage=26&rft.pages=1-26&rft.artnum=73&rft.issn=1539-9087&rft.eissn=1558-3465&rft_id=info:doi/10.1145/3581757&rft_dat=%3Cacm_cross%3E3581757%3C/acm_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true