{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,29]],"date-time":"2025-09-29T12:00:00Z","timestamp":1759147200716,"version":"3.41.0"},"reference-count":32,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2015,6,24]],"date-time":"2015-06-24T00:00:00Z","timestamp":1435104000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"EC co-funded SMAC","award":["FP7-ICT-288827"],"award-info":[{"award-number":["FP7-ICT-288827"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Des. Autom. Electron. Syst."],"published-print":{"date-parts":[[2015,6,24]]},"abstract":"<jats:p>With the advent of heterogeneous multiprocessor system-on-chips (MPSoCs), hardware\/software partitioning is again on the rise both in research and in product development. In this new scenario, implementing intellectual-property (IP) blocks as SW applications rather than dedicated HW is an increasing trend to fully exploit the computation power provided by the MPSoC CPUs. On the other hand, whole libraries of IP blocks are available as RTL descriptions, most of them without a corresponding high-level SW implementation. In this context, this article presents a methodology to automatically generate SW applications in C++, by starting from existing RTL IPs implemented in hardware description language (HDL). The methodology exploits an abstraction algorithm to eliminate implementation details typical of HW descriptions (such as cycle-accurate functionality and data types) to guarantee relevant performance of the generated code. The experimental results show that, in many cases, the C++ code automatically generated in a few seconds with the proposed methodology is as efficient as the corresponding code manually implemented from scratch.<\/jats:p>","DOI":"10.1145\/2720019","type":"journal-article","created":{"date-parts":[[2015,6,25]],"date-time":"2015-06-25T14:36:19Z","timestamp":1435242979000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":5,"title":["A Methodology to Recover RTL IP Functionality for Automatic Generation of SW Applications"],"prefix":"10.1145","volume":"20","author":[{"given":"Nicola","family":"Bombieri","sequence":"first","affiliation":[{"name":"Universit\u00e0 di Verona"}]},{"given":"Franco","family":"Fummi","sequence":"additional","affiliation":[{"name":"EDALab s.r.l., Italy"}]},{"given":"Sara","family":"Vinco","sequence":"additional","affiliation":[{"name":"Politecnico di Torino"}]}],"member":"320","published-online":{"date-parts":[[2015,6,24]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"http:\/\/aldec.com","author":"ALDEC.","year":"2014","unstructured":"ALDEC. 2014. HES-DVM. http:\/\/aldec.com ( 2014 ). ALDEC. 2014. HES-DVM. http:\/\/aldec.com (2014)."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.5555\/2485288.2485437"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1837274.1837283"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/MEMCOD.2007.371236"},{"key":"e_1_2_1_5_1","unstructured":"Carbon Design Systems. 2014. Carbon Model Studio. http:\/\/carbondesignsystems.com\/.  Carbon Design Systems. 2014. Carbon Model Studio. http:\/\/carbondesignsystems.com\/."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/225871.225880"},{"key":"e_1_2_1_7_1","unstructured":"DIE.NET. 2014. FreeHDL-V2CC. http:\/\/linux.die.net\/man\/1\/freehdl-v2cc.  DIE.NET. 2014. FreeHDL-V2CC. http:\/\/linux.die.net\/man\/1\/freehdl-v2cc."},{"key":"e_1_2_1_8_1","volume-title":"Proceedings of the ACM\/IEEE Conference on Design, Automation and Test in Europe (DATE'07)","author":"Ecker Wolfgang","year":"2007","unstructured":"Wolfgang Ecker , Volkan Esen , Lars Sch\u00f6nberg , Thomas Steininger , Michael Velten , and Michael Hull . 2007 . Interactive presentation: Impact of description language, abstraction layer, and value representation on simulation performance . In Proceedings of the ACM\/IEEE Conference on Design, Automation and Test in Europe (DATE'07) . 767--772. Wolfgang Ecker, Volkan Esen, Lars Sch\u00f6nberg, Thomas Steininger, Michael Velten, and Michael Hull. 2007. Interactive presentation: Impact of description language, abstraction layer, and value representation on simulation performance. In Proceedings of the ACM\/IEEE Conference on Design, Automation and Test in Europe (DATE'07). 767--772."},{"key":"e_1_2_1_9_1","unstructured":"EDALAB. 2014. HIFSuite: Tools for HDL code conversion and manipulation. http:\/\/hifsuite.edalab.it.  EDALAB. 2014. HIFSuite: Tools for HDL code conversion and manipulation. http:\/\/hifsuite.edalab.it."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/762488.762489"},{"key":"e_1_2_1_11_1","unstructured":"Freescale. 2009. Embedded multicore: An introduction. http:\/\/www.freescale.com\/files\/32bit\/doc\/ref_manual\/EMBMCRM.pdf.  Freescale. 2009. Embedded multicore: An introduction. http:\/\/www.freescale.com\/files\/32bit\/doc\/ref_manual\/EMBMCRM.pdf."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/217474.217522"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1108768.1123073"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.5555\/285730.285853"},{"volume-title":"Proceedings of the ACM\/IEEE Conference on Design, Automation and Test in Europe (DATE'03)","author":"Herrera F.","key":"e_1_2_1_15_1","unstructured":"F. Herrera , H. Posadas , P. Sanchez , and E. Villar . 2003. Systematic embedded software generation from SystemC . In Proceedings of the ACM\/IEEE Conference on Design, Automation and Test in Europe (DATE'03) . 142--147. F. Herrera, H. Posadas, P. Sanchez, and E. Villar. 2003. Systematic embedded software generation from SystemC. In Proceedings of the ACM\/IEEE Conference on Design, Automation and Test in Europe (DATE'03). 142--147."},{"key":"e_1_2_1_16_1","unstructured":"Icarus. 2014. Icarus Verilog. http:\/\/iverilog.icarus.com.  Icarus. 2014. Icarus Verilog. http:\/\/iverilog.icarus.com."},{"key":"e_1_2_1_17_1","volume-title":"International Technology Roadmap for Semiconductors","author":"ITRS.","year":"2011","unstructured":"ITRS. 2011. International Technology Roadmap for Semiconductors : 2011 . http:\/\/www.itrs.net\/Links\/2011ITRS\/2011Chapters\/2011SysDrivers.pdf. ITRS. 2011. International Technology Roadmap for Semiconductors: 2011. http:\/\/www.itrs.net\/Links\/2011ITRS\/2011Chapters\/2011SysDrivers.pdf."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/337292.337771"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/CACSD.1999.808702"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1146909.1146980"},{"key":"e_1_2_1_21_1","unstructured":"Mentor Graphics. 1994. Introduction to VHDL. http:\/\/pages.cs.wisc.edu\/sohi\/cs552\/Handouts\/MentorDocs\/mentor_graphics_introduction_to_VHDL.pdf.  Mentor Graphics. 1994. Introduction to VHDL. http:\/\/pages.cs.wisc.edu\/sohi\/cs552\/Handouts\/MentorDocs\/mentor_graphics_introduction_to_VHDL.pdf."},{"key":"e_1_2_1_22_1","unstructured":"OSCI. 2002. Functional specification for SystemC 2.0. http:\/\/www.systemc.org.  OSCI. 2002. Functional specification for SystemC 2.0. http:\/\/www.systemc.org."},{"key":"e_1_2_1_23_1","unstructured":"OSTATIC. 2014. VHDLC. http:\/\/ostatic.com.  OSTATIC. 2014. VHDLC. http:\/\/ostatic.com."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2390191.2390201"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1049\/ess:20030104"},{"key":"e_1_2_1_26_1","unstructured":"SystemC. 2006. Standard SystemC Language Reference Manual. http:\/\/\/ieeexplore.ieee.org.  SystemC. 2006. Standard SystemC Language Reference Manual. http:\/\/\/ieeexplore.ieee.org."},{"key":"e_1_2_1_27_1","unstructured":"ToucHMore. 2013. Automatic customizable tool-chain for heterogeneous multicore platform software development (FP7 ICT-288166). http:\/\/www.touchmore-project.eu.  ToucHMore. 2013. Automatic customizable tool-chain for heterogeneous multicore platform software development (FP7 ICT-288166). http:\/\/www.touchmore-project.eu."},{"key":"e_1_2_1_28_1","unstructured":"VERILATOR. 2014. Verilator - Convert Verilog code to C++\/SystemC. http:\/\/www.veripool.org\/wiki\/verilator.  VERILATOR. 2014. Verilator - Convert Verilog code to C++\/SystemC. http:\/\/www.veripool.org\/wiki\/verilator."},{"key":"e_1_2_1_29_1","unstructured":"Verilog. 2006. Standard for Verilog Hardware Description Language. http:\/\/\/ieeexplore.ieee.org.  Verilog. 2006. Standard for Verilog Hardware Description Language. http:\/\/\/ieeexplore.ieee.org."},{"key":"e_1_2_1_30_1","unstructured":"VHDL. 1994. Standard VHDL Language Reference Manual. http:\/\/\/ieeexplore.ieee.org.  VHDL. 1994. Standard VHDL Language Reference Manual. http:\/\/\/ieeexplore.ieee.org."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2008.923415"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.3844\/jcssp.2006.63.71"}],"container-title":["ACM Transactions on Design Automation of Electronic Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2720019","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2720019","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T06:13:27Z","timestamp":1750227207000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2720019"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2015,6,24]]},"references-count":32,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2015,6,24]]}},"alternative-id":["10.1145\/2720019"],"URL":"https:\/\/doi.org\/10.1145\/2720019","relation":{},"ISSN":["1084-4309","1557-7309"],"issn-type":[{"type":"print","value":"1084-4309"},{"type":"electronic","value":"1557-7309"}],"subject":[],"published":{"date-parts":[[2015,6,24]]},"assertion":[{"value":"2014-03-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2015-01-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2015-06-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}