Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3445814.3446720acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article
Open access

Effective simulation and debugging for a high-level hardware language using software compilers

Published: 17 April 2021 Publication History

Abstract

Rule-based hardware-design languages (RHDLs) promise to enhance developer productivity by offering convenient abstractions. Advanced compiler technology keeps the cost of these abstractions low, generating circuits with excellent area and timing properties.
Unfortunately, comparatively little effort has been spent on building simulators and debuggers for these languages, so users often simulate and debug their designs at the RTL level. This is problematic because generated circuits typically suffer from poor readability, as compiler optimizations can break high-level abstractions. Worse, optimizations that operate under the assumption that concurrency is essentially free yield faster circuits but often actively hurt simulation performance on platforms with limited concurrency, like desktop computers or servers.
This paper demonstrates the benefits of completely separating the simulation and synthesis pipelines. We propose a new approach, yielding the first compiler designed for effective simulation and debugging of a language in the Bluespec family. We generate cycle-accurate C++ models that are readable, compatible with a wide range of traditional software-debugging tools, and fast (often two to three times faster than circuit-level simulation). We achieve these results by optimizing for sequential performance and using static analysis to minimize redundant work. The result is a vastly improved hardware-design experience, which we demonstrate on embedded processor designs and DSP building blocks using performance benchmarks and debugging case studies.

References

[1]
Jonathan Bachrach, Huy Vo, Brian C. Richards, Yunsup Lee, Andrew Waterman, Rimas Avizienis, John Wawrzynek, and Krste Asanovic. 2012. Chisel: constructing hardware in a Scala embedded language. In The 49th Annual Design Automation Conference 2012, DAC '12, San Francisco, CA, USA, June 3-7, 2012. 1216?1225. https://doi.org/10.1145/2228360.2228584
[2]
Nathan Binkert, Bradford Beckmann, Gabriel Black, Steven K. Reinhardt, Ali Saidi, Arkaprava Basu, Joel Hestness, Derek R. Hower, Tushar Krishna, Somayeh Sardashti, Rathijit Sen, Korey Sewell, Muhammad Shoaib, Nilay Vaish, Mark D. Hill, and David A. Wood. 2011. The Gem5 Simulator. SIGARCH Comput. Archit. News 39, 2 (Aug. 2011), 1?7. issn:0163-5964 https://doi.org/10.1145/2024716.2024718
[3]
Thomas Bourgeat, Cl\'ement Pit-Claudel, Adam Chlipala, and Arvind. 2020. The Essence of Bluespec: A Core Language for Rule-Based Hardware Design. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (London, UK) (PLDI 2020). Association for Computing Machinery, New York, NY, USA, 243?257. isbn:9781450376136 https://doi.org/10.1145/3385412.3385965
[4]
Andrew Canis, Jongsok Choi, Mark Aldham, Victor Zhang, Ahmed Kammoona, Jason Helge Anderson, Stephen Dean Brown, and Tomasz S. Czajkowski. 2011. LegUp: high-level synthesis for FPGA-based processor/accelerator systems. In Proceedings of the ACM/SIGDA 19th International Symposium on Field Programmable Gate Arrays, FPGA 2011, Monterey, California, USA, February 27, March 1, 2011. 33?36. https://doi.org/10.1145/1950413.1950423
[5]
Yuze Chi, Young-kyu Choi, Jason Cong, and Jie Wang. 2019. Rapid Cycle-Accurate Simulator for High-Level Synthesis. In Proceedings of the 2019 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays (Seaside, CA, USA) (FPGA '19). Association for Computing Machinery, New York, NY, USA, 178?183. isbn:9781450361378 https://doi.org/10.1145/3289602.3293918
[6]
Joonwon Choi, Muralidaran Vijayaraghavan, Benjamin Sherman, Adam Chlipala, and Arvind. 2017. Kami: A Platform for High-Level Parametric Hardware Specification and Its Modular Verification. Proc. ACM Program. Lang. 1, ICFP, Article 24 (Aug. 2017), 30 pages. https://doi.org/10.1145/3110268
[7]
The MyHDL community. [n.d.]. MyHDL. http://www.myhdl.org/.
[8]
Jason Cong, Bin Liu, Stephen Neuendorffer, Juanjo Noguera, Kees A. Vissers, and Zhiru Zhang. 2011. High-Level Synthesis for FPGAs: From Prototyping to Deployment. IEEE Trans. on CAD of Integrated Circuits and Systems 30, 4 (2011), 473?491. https://doi.org/10.1109/TCAD.2011.2110592
[9]
George Economakos, Petros Oikonomakos, Ioannis Panagopoulos, Ioannis Poulakis, and George K. Papakonstantinou. 2001. Behavioral synthesis with systemC. In Proceedings of the Conference on Design, Automation and Test in Europe, DATE 2001, Munich, Germany, March 12-16, 2001. 21?25. https://doi.org/10.1109/DATE.2001.914995
[10]
Conal Elliott. 2017. Compiling to categories. PACMPL 1, ICFP (2017), 27:1?27:27. https://doi.org/10.1145/3110271
[11]
Jakob Engblom. 2012. A review of reverse debugging\balance. In Proceedings of the 2012 System, Software, SoC and Silicon Debug Conference. IEEE, 1?6.
[12]
Daniel D. Gajski. 2001. SpecC Design Environment. System Design (2001), 217?235. isbn:9781461514817 https://doi.org/10.1007/978-1-4615-1481-7_5
[13]
Abhijit Ghosh, Joachim Kunkel, and Stan Y. Liao. 1999. Hardware Synthesis from C/C++. In 1999 Design, Automation and Test in Europe (DATE '99), 9-12 March 1999, Munich, Germany. 387?389. https://doi.org/10.1109/DATE.1999.761152
[14]
Mentor Graphics. [n.d.]. Handle-C. https://www.mentor.com/products/fpga/handel-c/.
[15]
D. J. Greaves. 2000. A Verilog to C compiler. In Proceedings 11th International Workshop on Rapid System Prototyping. RSP 2000. Shortening the Path from Specification to Prototype (Cat. No.PR00668). 122?127. https://doi.org/10.1109/IWRSP.2000.855208
[16]
David J. Greaves. 2019. Further sub-cycle and multi-cycle schedulling support for Bluespec Verilog. In Proceedings of the 17th ACM-IEEE International Conference on Formal Methods and Models for System Design, MEMOCODE 2019, La Jolla, CA, USA, October 9-11, 2019. 2:1?2:11. https://doi.org/10.1145/3359986.3361199
[17]
Sumit Gupta, Nikil D. Dutt, Rajesh Gupta, and Alexandru Nicolau. 2004. Loop Shifting and Compaction for the High-Level Synthesis of Designs with Complex Control Flow. In 2004 Design, Automation and Test in Europe Conference and Exposition (DATE 2004), 16-20 February 2004, Paris, France. 114?121. https://doi.org/10.1109/DATE.2004.1268836
[18]
Sagar Karandikar, Howard Mao, Donggyu Kim, David Biancolin, Alon Amid, Dayeol Lee, Nathan Pemberton, Emmanuel Amaro, Colin Schmidt, Aditya Chopra, Qijing Huang, Kyle Kovacs, Borivoje Nikolic, Randy Katz, Jonathan Bachrach, and Krste Asanovi\'c. 2018. FireSim: FPGA-accelerated Cycle-exact Scale-out System Simulation in the Public Cloud. In Proceedings of the 45th Annual International Symposium on Computer Architecture (Los Angeles, California) (ISCA '18). IEEE Press, Piscataway, NJ, USA, 29?42. isbn:978-1-5386-5984-7 https://doi.org/10.1109/ISCA.2018.00014
[19]
D. Kim, C. Celio, S. Karandikar, D. Biancolin, J. Bachrach, and K. Asanovi?. 2018. DESSERT: Debugging RTL Effectively with State Snapshotting for Error Replays across Trillions of Cycles. In 2018 28th International Conference on Field Programmable Logic and Applications (FPL). 76?764. https://doi.org/10.1109/FPL.2018.00021
[20]
Zainalabedin Navabi. 1997. VHDL: Analysis and modeling of digital systems. McGraw-Hill, Inc. isbn:9780070464728
[21]
Rishiyur Nikhil. 2004. Bluespec System Verilog: efficient, correct RTL from high level specifications. In Proceedings of the Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE'04. IEEE, 69?70. https://doi.org/10.1109/MEMCOD.2004.1459818
[22]
Michael Pellauer, Muralidaran Vijayaraghavan, Michael Adler, Arvind, and Joel S. Emer. 2009. A-Port Networks: Preserving the Timed Behavior of Synchronous Systems for Modeling on FPGAs. ACM Trans. Reconfigurable Technol. Syst. 2, 3 (2009), 16:1?16:26. https://doi.org/10.1145/1575774.1575775
[23]
QBayLogic. [n.d.]. Clash: A modern, functional, hardware description language. https://clash-lang.org/.
[24]
Daniel Sanchez and Christos Kozyrakis. 2013. ZSim: Fast and Accurate Microarchitectural Simulation of Thousand-Core Systems. In Proceedings of the 40th Annual International Symposium on Computer Architecture (Tel-Aviv, Israel) (ISCA '13). Association for Computing Machinery, New York, NY, USA, 475?486. isbn:9781450320795 https://doi.org/10.1145/2485922.2485963
[25]
Jane Street. [n.d.]. Hardcaml. https://github.com/janestreet/hardcaml.
[26]
The Coq Development Team. 2020. The Coq Proof Assistant, version 8.11.0. https://doi.org/10.5281/zenodo.3744225
[27]
Donald E. Thomas and Philip Moorby. 1996. The Verilog hardware description language (3. ed.). Kluwer. isbn:978-0-7923-9723-6 https://doi.org/10.1007/978-1-4615-3992-6
[28]
Veripool. [n.d.]. Verilator. https://www.veripool.org/wiki/verilator.
[29]
Muralidaran Vijayaraghavan and Arvind. 2009. Bounded Dataflow Networks and Latency-Insensitive circuits. In 7th ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE 2009), July 13-15, 2009, Cambridge, Massachusetts, USA. IEEE, 171?180. https://doi.org/10.1109/MEMCOD.2009.5185393
[30]
Stephen Williams. [n.d.]. Icarus Verilog. http://iverilog.icarus.com/.
[31]
Xilinx. [n.d.]. Vivado HLS. https://www.xilinx.com/products/design-tools/vivado/integration/esl-design.html.
[32]
Matt Yourst. 2007. PTLsim: A Cycle Accurate Full System x86-64 Microarchitectural Simulator. ISPASS 2007: IEEE International Symposium on Performance Analysis of Systems and Software, 23?34. https://doi.org/10.1109/ISPASS.2007.363733

Cited By

View all
  • (2024)Specification and Verification of Strong Timing Isolation of Hardware EnclavesProceedings of the 2024 on ACM SIGSAC Conference on Computer and Communications Security10.1145/3658644.3690203(1121-1135)Online publication date: 2-Dec-2024
  • (2024)Application-level Validation of Accelerator Designs Using a Formal Software/Hardware InterfaceACM Transactions on Design Automation of Electronic Systems10.1145/363905129:2(1-25)Online publication date: 14-Feb-2024
  • (2023)Stepwise Debugging for Hardware AcceleratorsProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3575693.3575717(778-790)Online publication date: 27-Jan-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASPLOS '21: Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems
April 2021
1090 pages
ISBN:9781450383172
DOI:10.1145/3445814
This work is licensed under a Creative Commons Attribution International 4.0 License.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 April 2021

Check for updates

Badges

Author Tags

  1. Hardware simulation
  2. compilation
  3. hardware debugging

Qualifiers

  • Research-article

Funding Sources

Conference

ASPLOS '21
Sponsor:

Acceptance Rates

Overall Acceptance Rate 535 of 2,713 submissions, 20%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)363
  • Downloads (Last 6 weeks)42
Reflects downloads up to 26 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Specification and Verification of Strong Timing Isolation of Hardware EnclavesProceedings of the 2024 on ACM SIGSAC Conference on Computer and Communications Security10.1145/3658644.3690203(1121-1135)Online publication date: 2-Dec-2024
  • (2024)Application-level Validation of Accelerator Designs Using a Formal Software/Hardware InterfaceACM Transactions on Design Automation of Electronic Systems10.1145/363905129:2(1-25)Online publication date: 14-Feb-2024
  • (2023)Stepwise Debugging for Hardware AcceleratorsProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3575693.3575717(778-790)Online publication date: 27-Jan-2023
  • (2022)Debugging in the brave new world of reconfigurable hardwareProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507701(946-962)Online publication date: 28-Feb-2022

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media