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,...
Gespeichert in:
Veröffentlicht in: | ACM transactions on embedded computing systems 2024-08, Vol.23 (5), p.1-26, Article 73 |
---|---|
Hauptverfasser: | , |
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 |